BcdInitializeBcdSyncMutant
VOID __stdcall BcdInitializeBcdSyncMutant(){
struct _OBJECT_ATTRIBUTES ObjectAttributes;
void *MutantHandle;
MutantHandle = 0i64;
*(&ObjectAttributes.Length + 1) = 0;
*(&ObjectAttributes.Attributes + 1) = 0;
ObjectAttributes.RootDirectory = 0i64;
ObjectAttributes.SecurityQualityOfService = 0i64;
ObjectAttributes.ObjectName = (_UNICODE_STRING *)L"8:";
ObjectAttributes.SecurityDescriptor = BiBcdMutantDescriptor;
ObjectAttributes.Length = 48;
ObjectAttributes.Attributes = 592;
if( ZwCreateMutant(&MutantHandle, 0x1F0001ui64, &ObjectAttributes, 0) >= 0 )
{
if( _InterlockedCompareExchange64((volatile signed __int64 *)&BcdMutantHandle, (signed __int64)MutantHandle, 0i64) )
ZwClose(MutantHandle);
}
}Referenced by:
Phase1InitializationDiscard