PopAcquireCoolingInterface

NTSTATUS __stdcall PopAcquireCoolingInterface(POP_COOLING_EXTENSION *CoolingExtension){
  POP_COOLING_EXTENSION *v1; 
  _IRP *Irp; 
  _IRP *v3; 
  _IO_STACK_LOCATION *CurrentStackLocation; 
  NTSTATUS v5; 

  v1 = CoolingExtension;
  LOBYTE(CoolingExtension) = *(_BYTE *)(*((_QWORD *)CoolingExtension + 6) + 76i64);
  Irp = (_IRP *)IoAllocateIrp((INT64)CoolingExtension, 0);
  v3 = Irp;
  if( !Irp )
    return -1073741670;
  CurrentStackLocation = Irp->Tail.CurrentStackLocation;
  *(_QWORD *)&CurrentStackLocation[-1].Parameters.EaLength = 0i64;
  CurrentStackLocation[-1].Parameters.SecurityContext = (_IO_SECURITY_CONTEXT *)&GUID_THERMAL_COOLING_INTERFACE;
  *(_QWORD *)&CurrentStackLocation[-1].Parameters.FileAttributes = v1 + 22;
  *(_WORD *)&CurrentStackLocation[-1].MajorFunction = 2075;
  CurrentStackLocation[-1].Parameters.Options = 65592;
  Irp->IoStatus.Status = -1073741637;
  v5 = IoSynchronousCallDriver(*((PDEVICE_OBJECT *)v1 + 6), Irp);
  IoFreeIrp(v3);
  return v5;
}

Referenced by:

PopAssociateThermalRequest
PopCoolingExtensionPnpNotification