/*++

Copyright (c) 1998  Microsoft Corporation

Module Name:

    csrdlini.c

Abstract:

    This module implements functions that are used by the Win32 Initialization
    File APIs to communicate with csrss.

Author:

    Michael Zoran (mzoran) 21-Jun-1998

Revision History:

--*/

#include "basedll.h"

NTSTATUS
CsrBasepRefreshIniFileMapping(
    PUNICODE_STRING BaseFileName
    )
{       
    
#if defined(BUILD_WOW6432)
    return NtWow64CsrBasepRefreshIniFileMapping(BaseFileName); 
#else

    NTSTATUS Status;

    BASE_API_MSG m;
    PBASE_REFRESHINIFILEMAPPING_MSG ap = &m.u.RefreshIniFileMapping;
    PCSR_CAPTURE_HEADER CaptureBuffer;
    CaptureBuffer = NULL;

    if (BaseFileName->Length > (MAX_PATH * sizeof( WCHAR ))) {
        return STATUS_INVALID_PARAMETER;
    }

    CaptureBuffer = CsrAllocateCaptureBuffer( 1,
                                              BaseFileName->MaximumLength
                                            );
    if (CaptureBuffer == NULL) {
        return STATUS_NO_MEMORY;
    }
    
    CsrCaptureMessageString( CaptureBuffer,
                             (PCHAR)BaseFileName->Buffer,
                             BaseFileName->Length,
                             BaseFileName->MaximumLength,
                             (PSTRING)&ap->IniFileName
                          );

   CsrClientCallServer( (PCSR_API_MSG)&m,
                        CaptureBuffer,
                        CSR_MAKE_API_NUMBER( BASESRV_SERVERDLL_INDEX,
                                             BasepRefreshIniFileMapping
                                           ),
                        sizeof( *ap )
                     );

   Status = (NTSTATUS)m.ReturnValue;

   CsrFreeCaptureBuffer( CaptureBuffer );
   return Status;

#endif
   
}


