HaliInitPowerManagement
NTSTATUS __stdcall HaliInitPowerManagement(
PM_DISPATCH_TABLE *PmDriverDispatchTable,
PM_DISPATCH_TABLE **PmHalDispatchTable){
NTSTATUS result;
_LOADER_PARAMETER_BLOCK *v5;
VOID *FacsMapping;
_UNICODE_STRING DestinationString;
_OBJECT_ATTRIBUTES ObjectAttributes;
PCALLBACK_OBJECT CallbackObject;
*(&ObjectAttributes.Length + 1) = 0;
*(&ObjectAttributes.Attributes + 1) = 0;
DestinationString = 0i64;
RtlInitUnicodeString(&DestinationString, L"\\Callback\\PowerState");
HalpPiix4Detect(1);
HalpPutAcpiHacksInRegistry();
ObjectAttributes.RootDirectory = 0i64;
CallbackObject = 0i64;
*PmHalDispatchTable = (PM_DISPATCH_TABLE *)&HalAcpiDispatchTable;
qword_140C507B0 = (__int64)PmDriverDispatchTable;
off_140C005C0 = (__int64(__fastcall *)())HaliSetWakeAlarm;
ObjectAttributes.Length = 48;
qword_140C009F0 = (__int64)HaliInitializePlatformDebugTriggers;
ObjectAttributes.Attributes = 80;
qword_140C009F8 = (__int64)HaliRunPlatformDebugTriggers;
ObjectAttributes.ObjectName = &DestinationString;
*(_OWORD *)&ObjectAttributes.SecurityDescriptor = 0i64;
result = ExCreateCallback(&CallbackObject, &ObjectAttributes, 0, 1u);
if( result >= 0 )
{
ExRegisterCallback(CallbackObject, HalpPowerStateCallback, 0i64);
FacsMapping = HalpAcpiGetFacsMapping(v5);
if( FacsMapping )
qword_140C49D38 = (__int64)FacsMapping + 12;
return 0;
}
return result;
}Referenced by:
No references.