WdfDeviceConfigureRequestDispatching method
[Applies to KMDF and UMDF]
The WdfDeviceConfigureRequestDispatching method causes the framework to queue a specified type of I/O requests to a specified I/O queue.
Syntax
NTSTATUS WdfDeviceConfigureRequestDispatching( [in] WDFDEVICE Device, [in] WDFQUEUE Queue, [in] WDF_REQUEST_TYPE RequestType );
Parameters
- Device [in]
-
Supplies a handle to a framework device object.
- Queue [in]
-
Supplies a handle to a framework queue object.
- RequestType [in]
-
Supplies a WDF_REQUEST_TYPE-typed enumerator that identifies the type of request to be queued. The only valid enumerators are:
-
WdfRequestTypeCreate
-
WdfRequestTypeRead
-
WdfRequestTypeWrite
-
WdfRequestTypeDeviceControl
-
WdfRequestTypeDeviceControlInternal
-
Return value
If the operation succeeds, the method returns STATUS_SUCCESS. Additional return values include:
Return code | Description |
---|---|
|
An input parameter is invalid. |
|
The amount of available memory is too low. |
|
The driver has already assigned a queue to the specified request type. |
The method might return other NTSTATUS values.
A bug check occurs if the driver supplies an invalid object handle.
Remarks
Each call to WdfDeviceConfigureRequestDispatching specifies one request type. If you want a single I/O queue to receive multiple types of requests (for example, read and write requests), your driver can call WdfDeviceConfigureRequestDispatching multiple times for a single I/O queue.
For more information about WdfDeviceConfigureRequestDispatching, see Creating I/O Queues and Managing I/O Queues.
Examples
The following code example initializes a WDF_IO_QUEUE_CONFIG structure, creates an I/O queue, and then configures the queue so that it receives write requests.
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; }
Requirements
Minimum KMDF version | 1.0 |
---|---|
Minimum UMDF version | 2.0 |
Header |
|
Library |
|
IRQL | <= DISPATCH_LEVEL |
DDI compliance rules | DriverCreate, KmdfIrql, KmdfIrql2 |
See also