Windows 장치 드라이버를 개발 중이며 약 10 초 동안 시스템 종료 실행을 지연해야합니다.IRP_MN_SET_POWER 지연 실행
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()을 기다리지 않고 즉시 반환 것 : 내 드라이버의 DispatchPower() 함수 내에서 다음 코드를 사용하고? 어떤 제안?
감사합니다,
STATUS_ALERTED 사람이 문서화되지 않은 ZwAlertThread API를 사용하여 스레드를 경고 것을 의미한다. STATUS_USER_APC는 APC가 Win32 API QueueUserApc와 같이 스레드에 대기 중임을 나타냅니다. – snoone
'ZwAlertThread' (못생긴 해킹 같은 소리)에 대해 몰랐습니다. APC가 실행 된 후 ** STATUS_USER_APC가 반환됩니다 **. 최소한 이것은 경고 가능한 사용자 모드 대기 상태에 있습니다. – valdo