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。 其他傳回值包括:
傳回碼 | Description |
---|---|
|
輸入參數無效。 |
|
可用的記憶體數量太低。 |
|
驅動程式已將佇列指派給指定的要求類型。 |
方法可能會傳回其他 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;
}
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最低 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) |