Я занимаюсь разработкой драйвера устройства Windows, и мне нужно отложить выполнение выключения системы примерно на 10 секунд.Я использую следующий код внутри функции DispatchPower () моего драйвера:
NTSTATUS DispatchPower(
__in struct _DEVICE_OBJECT *DeviceObject,
__in struct _IRP *Irp
)
{
switch(stack->MinorFunction)
{
case IRP_MN_SET_POWER:
delay_time.QuadPart = WDF_REL_TIMEOUT_IN_SEC(10);
KeDelayExecutionThread(KernelMode, FALSE, &delay_time);
}
}
Но кажется, что KeDelayExecutionThread () возвращается немедленно, без ожидания?Есть предложения?
Спасибо,