WdfDeviceWdmDispatchIrpToIoQueue 함수(wdfdevice.h)
[KMDF 및 UMDF에 적용]
WdfDeviceWdmDispatchIrpToIoQueue 메서드는 IRP를 지정된 I/O 큐로 전달합니다.
구문
NTSTATUS WdfDeviceWdmDispatchIrpToIoQueue(
[in] WDFDEVICE Device,
[in] PIRP Irp,
[in] WDFQUEUE Queue,
[in] ULONG Flags
);
매개 변수
[in] Device
프레임워크 디바이스 개체에 대한 핸들입니다.
[in] Irp
IRP 구조체에 대한 포인터입니다.
[in] Queue
프레임워크 큐 개체에 대한 핸들입니다.
[in] Flags
WDF_DISPATCH_IRP_TO_IO_QUEUE_FLAGS 형식 플래그의 비트 OR입니다.
반환 값
WdfDeviceWdmDispatchIrpToIoQueue 메서드는 IRP 처리의 결과로 프레임워크 또는 드라이버가 제공하는 NTSTATUS 값을 반환합니다. 드라이버는 이 반환 값을 EvtDeviceWdmIrpDispatch 또는 WdfDeviceWdmDispatchIrpToIoQueue라고 하는 EvtDeviceWdmIrpPreprocess 콜백 함수의 반환 값으로 사용해야 합니다.
KMDF 드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다. UMDF 드라이버가 잘못된 핸들을 제공하면 드라이버 호스트 프로세스가 종료됩니다.
설명
드라이버는 WdfDeviceWdmDispatchIrpToIoQueue 를 호출하여 들어오는 IRP에 대한 대상 큐를 지정합니다.
드라이버는 EvtDeviceWdmIrpPreprocess 콜백 루틴 또는 EvtDeviceWdmIrpDispatch 콜백에서 이 메서드를 호출할 수 있습니다.
드라이버가 EvtDeviceWdmIrpPreprocess 콜백 함수 내에서 WdfDeviceWdmDispToIoQueue를 호출하는 경우 드라이버는 WdfDeviceWdmDispatchIrpToQueue를 호출하기 전에 IoSkipCurrentIrpStackLocation 또는 IoCopyCurrentIrpStackLocationToNext를 호출해야 합니다.
IRP가 도착할 때 큐를 지정하는 방법에 대한 자세한 내용은 I/O 큐에 IRP 디스패치를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
최소 KMDF 버전 | 1.11 |
최소 UMDF 버전 | 2.17 |
머리글 | wdfdevice.h(Wdf.h 포함) |
라이브러리 | Wdf01000.sys(KMDF); WUDFx02000.dll(UMDF) |
IRQL | <= DISPATCH_LEVEL |
DDI 규정 준수 규칙 | DriverCreate(kmdf), FwdIrpToIoQueueValid(kmdf) |