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.