WdfDeviceConfigureRequestDispatching 함수(wdfdevice.h)
[KMDF 및 UMDF에 적용]
WdfDeviceConfigureRequestDispatching 메서드를 사용하면 프레임워크가 지정된 형식의 I/O 요청을 지정된 I/O 큐에 큐에 대기하게 됩니다.
구문
NTSTATUS WdfDeviceConfigureRequestDispatching(
[in] WDFDEVICE Device,
[in] WDFQUEUE Queue,
[in] WDF_REQUEST_TYPE RequestType
);
매개 변수
[in] Device
프레임워크 디바이스 개체에 핸들을 제공합니다.
[in] Queue
프레임워크 큐 개체에 핸들을 제공합니다.
[in] RequestType
큐에 대기할 요청 유형을 식별하는 WDF_REQUEST_TYPE 형식의 열거자를 제공합니다. 유효한 열거자는 다음과 같습니다.
WdfRequestTypeCreate
WdfRequestTypeRead
WdfRequestTypeWrite
WdfRequestTypeDeviceControl
WdfRequestTypeDeviceControlInternal
반환 값
작업이 성공하면 메서드는 STATUS_SUCCESS 반환합니다. 추가 반환 값은 다음과 같습니다.
반환 코드 | 설명 |
---|---|
|
입력 매개 변수가 잘못되었습니다. |
|
사용 가능한 메모리 양이 너무 적습니다. |
|
드라이버가 이미 지정된 요청 유형에 큐를 할당했습니다. |
메서드는 다른 NTSTATUS 값을 반환할 수 있습니다.
드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.
설명
WdfDeviceConfigureRequestDispatching에 대한 각 호출은 하나의 요청 유형을 지정합니다. 단일 I/O 큐가 여러 유형의 요청(예: 읽기 및 쓰기 요청)을 수신하도록 하려는 경우 드라이버는 단일 I/O 큐에 대해 WdfDeviceConfigureRequestDispatching을 여러 번 호출할 수 있습니다.
WdfDeviceConfigureRequestDispatching에 대한 자세한 내용은 I/O 큐 만들기 및 I/O 큐관리를 참조하세요.
예제
다음 코드 예제에서는 WDF_IO_QUEUE_CONFIG 구조를 초기화하고, I/O 큐를 만든 다음, 쓰기 요청을 받도록 큐를 구성합니다.
WDF_IO_QUEUE_CONFIG queueConfig;
WDFQUEUE WriteQueue;
WDF_IO_QUEUE_CONFIG_INIT(
&queueConfig,
WdfIoQueueDispatchSequential
);
queueConfig.EvtIoWrite = MyEvtIoWrite;
status = WdfIoQueueCreate(
Device,
&queueConfig,
WDF_NO_OBJECT_ATTRIBUTES,
&WriteQueue
);
if(!NT_SUCCESS(status)) {
return status;
}
status = WdfDeviceConfigureRequestDispatching(
Device,
WriteQueue,
WdfRequestTypeWrite
);
if(!NT_SUCCESS(status)) {
return status;
}
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
최소 KMDF 버전 | 1.0 |
최소 UMDF 버전 | 2.0 |
머리글 | wdfdevice.h(Wdf.h 포함) |
라이브러리 | Wdf01000.sys(KMDF); WUDFx02000.dll(UMDF) |
IRQL | <= DISPATCH_LEVEL |
DDI 규정 준수 규칙 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |