RtlpOpenBaseImageFileOptionsKey
NTSTATUS __stdcall RtlpOpenBaseImageFileOptionsKey(VOID **KeyHandle){
_ESERVERSILO_GLOBALS *CurrentServerSiloGlobals;
__int64 v3;
INT64 v4;
VOID *ImgFileExecOptions;
NTSTATUS result;
VOID *Handle;
CurrentServerSiloGlobals = PsGetCurrentServerSiloGlobals((_KSPIN_LOCK *)KeyHandle);
ImgFileExecOptions = CurrentServerSiloGlobals->ImgFileExecOptions;
Handle = ImgFileExecOptions;
if( !ImgFileExecOptions )
{
result = RtlpOpenBaseImageFileOptionsKeyEx(&Handle, 0i64, v3, v4);
if( result < 0 )
return result;
if( *(&stru_140CF2E80 + 1818)
|| !_InterlockedCompareExchange64(
(volatile signed __int64 *)&CurrentServerSiloGlobals->ImgFileExecOptions,
(signed __int64)Handle,
0i64) )
{
ImgFileExecOptions = Handle;
}
else
{
ZwClose((_HANDLE)Handle);
ImgFileExecOptions = CurrentServerSiloGlobals->ImgFileExecOptions;
}
}
*KeyHandle = ImgFileExecOptions;
return 0;
}Referenced by:
RtlQueryImageFileExecutionOptions
RtlpOpenImageFileOptionsKeyEx