// wdfio.h
typedef enum _WDF_IO_QUEUE_STATE {
WdfIoQueueAcceptRequests = 0x01,
WdfIoQueueDispatchRequests = 0x02,
WdfIoQueueNoRequests = 0x04,
WdfIoQueueDriverNoRequests = 0x08,
WdfIoQueuePnpHeld = 0x10
} WDF_IO_QUEUE_STATE;
View the official Windows Driver Kit DDI reference// wudfddi_types.h
typedef enum _WDF_IO_QUEUE_STATE {
WdfIoQueueAcceptRequests,
WdfIoQueueDispatchRequests,
WdfIoQueueNoRequests,
WdfIoQueueDriverNoRequests,
WdfIoQueuePnpHeld
} WDF_IO_QUEUE_STATE, *PWDF_IO_QUEUE_STATE;
View the official Windows Driver Kit DDI referenceNo description available.
[Applies to KMDF and UMDF]
The WDF_IO_QUEUE_STATE enumeration type identifies the status of a framework queue object. The enumerators are used as bit masks.
WdfIoQueueAcceptRequests:0x01If set, the I/O queue can accept new I/O requests from the I/O manager and requests that are forwarded by the WdfDeviceConfigureRequestDispatching and WdfRequestForwardToIoQueue (or WdfRequestForwardToParentDeviceIoQueue) methods.
If not set, the framework cancels requests from the I/O manager and WdfDeviceConfigureRequestDispatching and fails requests from WdfRequestForwardToIoQueue (or WdfRequestForwardToParentDeviceIoQueue) with STATUS_WDF_BUSY.
WdfIoQueueDispatchRequests:0x02If set, the framework delivers the queue's requests to the driver (unless the WdfIoQueuePnpHeld bit is also set). If not set, the driver cannot obtain requests from the queue.
WdfIoQueueNoRequests:0x04If set, the I/O queue is empty.
WdfIoQueueDriverNoRequests:0x08If set, all requests that have been delivered to the driver have been completed.
WdfIoQueuePnpHeld:0x10If set, the framework has stopped delivering requests to the driver because the underlying device is not in its working (D0) state.
The WDF_IO_QUEUE_STATE enumeration type is used as the return value for the WdfIoQueueGetState method.
The following functions are defined in wdfio.h:
[Warning: UMDF 2 is the latest version of UMDF and supersedes UMDF 1. All new UMDF drivers should be written using UMDF 2. No new features are being added to UMDF 1 and there is limited support for UMDF 1 on newer versions of Windows 10. Universal Windows drivers must use UMDF 2. For more info, see Getting Started with UMDF.]
The WDF_IO_QUEUE_STATE enumeration contains values that identify the state of an I/O queue.
WdfIoQueueAcceptRequestsIf this value is set to 1, the queue accepts requests by automatically forwarding them through the setting of the IWDFIoQueue::ConfigureRequestDispatching method or by manually forwarding each request through a call to the IWDFIoRequest::ForwardToIoQueue method.
If this value is set to 0, the queue completes any automatically forwarded requests with "status canceled" or fails IWDFIoRequest::ForwardToIoQueue with "status busy".
WdfIoQueueDispatchRequestsIf this value is set to 1, the queue automatically presents requests to the driver, unless the queue is a WdfIoQueueDispatchManual type (see WDF_IO_QUEUE_DISPATCH_TYPE).
If this value is set to 0, the queue does not automatically dispatch requests to the driver. The setting of this status does not prevent the driver from calling the IWDFIoQueue::RetrieveNextRequest method to manually retrieve a request from the queue.
WdfIoQueueNoRequestsIf this value is set to 1, no requests are in the queue, even requests that can be presented to the driver and that can be returned from IWDFIoQueue::RetrieveNextRequest.
WdfIoQueueDriverNoRequestsIf this value is set to 1, there are no requests that the driver currently operates on that it received from the queue.
WdfIoQueuePnpHeldIf this value is set to 1, an event from the Plug and Play (PnP) subsystem suspended the queue from processing requests.
IWDFIoQueue::ConfigureRequestDispatching
IWDFIoQueue::RetrieveNextRequest
IWDFIoRequest::ForwardToIoQueue