HalpCallWakeAlarmDriver
NTSTATUS __stdcall HalpCallWakeAlarmDriver(DEVICE_OBJECT *DeviceObject, INT64 AcAlarm, INT64 Timer, UINT64 Seconds){
char v4;
IRP *v6;
NTSTATUS result;
int InputBuffer[2];
struct _IO_STATUS_BLOCK IoStatusBlock;
struct _KEVENT Object;
v4 = Timer;
memset(&Object, 0, sizeof(Object));
InputBuffer[0] = (_BYTE)AcAlarm == 0;
InputBuffer[1] = Seconds;
IoStatusBlock = 0i64;
KeInitializeEvent(&Object, NotificationEvent, 0);
v6 = IoBuildDeviceIoControlRequest(
v4 != 0 ? 2720256 : 2720260,
DeviceObject,
InputBuffer,
8u,
0i64,
0,
0,
&Object,
&IoStatusBlock);
if( !v6 )
return -1073741670;
result = IofCallDriver(DeviceObject, v6);
if( result == 259 )
{
KeWaitForSingleObject(&Object, Suspended, 0, 0, 0i64);
return IoStatusBlock.Status;
}
return result;
}Referenced by:
HalpArmAcpiWakeAlarm