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