windows-nt/Source/XPSP1/NT/base/win32/client/csrdlini.c
2020-09-26 16:20:57 +08:00

77 lines
1.7 KiB
C

/*++
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
}