WDF_IO_QUEUE_CONFIG 구조체(wdfio.h)
[KMDF 및 UMDF에 적용]
WDF_IO_QUEUE_CONFIG 구조에는 프레임워크 큐 개체에 대한 구성 정보가 포함됩니다.
구문
typedef struct _WDF_IO_QUEUE_CONFIG {
ULONG Size;
WDF_IO_QUEUE_DISPATCH_TYPE DispatchType;
WDF_TRI_STATE PowerManaged;
BOOLEAN AllowZeroLengthRequests;
BOOLEAN DefaultQueue;
PFN_WDF_IO_QUEUE_IO_DEFAULT EvtIoDefault;
PFN_WDF_IO_QUEUE_IO_READ EvtIoRead;
PFN_WDF_IO_QUEUE_IO_WRITE EvtIoWrite;
PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL EvtIoDeviceControl;
PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL EvtIoInternalDeviceControl;
PFN_WDF_IO_QUEUE_IO_STOP EvtIoStop;
PFN_WDF_IO_QUEUE_IO_RESUME EvtIoResume;
PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE EvtIoCanceledOnQueue;
union {
struct {
ULONG NumberOfPresentedRequests;
} Parallel;
} Settings;
WDFDRIVER Driver;
} WDF_IO_QUEUE_CONFIG, *PWDF_IO_QUEUE_CONFIG;
멤버
Size
이 구조체의 길이(바이트)입니다.
DispatchType
큐에 대한 요청 디스패치 유형을 식별하는 WDF_IO_QUEUE_DISPATCH_TYPE 열거자입니다.
PowerManaged
WdfTrue로 설정된 경우 프레임워크가 큐의 전원 관리를 처리한다는 것을 나타내는 WDF_TRI_STATE 형식의 값입니다.
WdfFalse로 설정된 경우 드라이버는 큐의 전원 관리를 처리해야 합니다.
WdfUseDefault로 설정된 경우 드라이버가 WdfFdoInitSetFilter를 호출하지 않는 한 프레임워크는 큐에 대한 전원 관리를 처리합니다.
드라이버 스택의 전원 정책 소유자 위에 있는 드라이버는 PowerManaged 멤버를 WdfTrue로 설정하면 안됩니다.
전원 관리 I/O 큐에 대한 자세한 내용은 I/O 큐에 대한 전원 관리를 참조하세요.
AllowZeroLengthRequests
TRUE인 경우 드라이버가 버퍼 길이가 0인 읽기 또는 쓰기 요청을 수신해야 하므로 프레임워크가 이러한 요청을 드라이버에 전달하도록 나타내는 부울 값입니다. FALSE인 경우 프레임워크는 이러한 요청을 드라이버에 전달하지 않습니다. 대신 STATUS_SUCCESS 완료 상태 완료합니다.
DefaultQueue
TRUE인 경우 큐가 디바이스의 기본 I/O 큐임을 나타내는 부울 값입니다. FALSE이면 큐가 디바이스의 기본 큐가 아닙니다.
EvtIoDefault
드라이버의 큐별 EvtIoDefault 콜백 함수 또는 NULL에 대한 포인터입니다.
EvtIoRead
드라이버의 큐별 EvtIoRead 콜백 함수 또는 NULL에 대한 포인터입니다.
EvtIoWrite
드라이버의 큐별 EvtIoWrite 콜백 함수 또는 NULL에 대한 포인터입니다.
EvtIoDeviceControl
드라이버의 큐별 EvtIoDeviceControl 콜백 함수 또는 NULL에 대한 포인터입니다.
EvtIoInternalDeviceControl
드라이버의 큐별 EvtIoInternalDeviceControl 콜백 함수 또는 NULL에 대한 포인터입니다.
EvtIoStop
드라이버의 큐별 EvtIoStop 콜백 함수 또는 NULL에 대한 포인터입니다.
EvtIoResume
드라이버의 큐별 EvtIoResume 콜백 함수 또는 NULL에 대한 포인터입니다.
EvtIoCanceledOnQueue
드라이버의 큐별 EvtIoCanceledOnQueue 콜백 함수 또는 NULL에 대한 포인터입니다.
Settings
Settings.Parallel
Settings.Parallel.NumberOfPresentedRequests
병렬 디스패치 메서드의 경우 프레임워크가 I/O 큐의 요청 처리기에 비동기적으로 제공하는 최대 I/O 요청 수입니다. 자세한 내용은 아래 설명 부분을 참조하십시오. 순차 및 수동 디스패치 메서드의 경우 이 멤버는 0이어야 합니다. 이 멤버는 1.9 버전 이상 버전의 KMDF에서 사용할 수 있습니다.
Driver
내부 전용입니다. NULL로 설정됨. 이 멤버는 KMDF 버전 1.11 이상에서 사용할 수 있습니다.
설명
드라이버는 WDF_IO_QUEUE_CONFIG_INIT 또는WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE 호출하여 WDF_IO_QUEUE_CONFIG 구조를 초기화해야 합니다.
WDF_IO_QUEUE_CONFIG 구조체는 WdfIoQueueCreate에 대한 입력 매개 변수로 사용됩니다.
KMDF 버전 1.9부터 드라이버는 NumberOfPresentedRequests 멤버를 사용하여 프레임워크가 병렬 I/O 큐의 요청 처리기에 비동기적으로 제공하는 최대 I/O 요청 수를 지정할 수 있습니다. 프레임워크가 지정된 수의 I/O 요청을 드라이버에 전달한 후에는 드라이버가 요청 중 하나 이상을 완료, 취소 또는 다시 큐 에 넣기 전까지 큐에서 더 많은 요청을 전달하지 않습니다.
병렬 큐의 경우 WDF_IO_QUEUE_CONFIG_INIT 및 WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUENumberOfPresentedRequests 멤버를 기본값(-1)으로 설정합니다. 이는 프레임워크가 드라이버에 무제한의 I/O 요청을 제공할 수 있음을 나타냅니다.
요구 사항
요구 사항 | 값 |
---|---|
최소 KMDF 버전 | 1.0 |
최소 UMDF 버전 | 2.0 |
머리글 | wdfio.h(Wdf.h 포함) |