// wdfdevice.h
typedef enum _WDF_DEVICE_IO_TYPE {
WdfDeviceIoUndefined = 0,
WdfDeviceIoNeither,
WdfDeviceIoBuffered,
WdfDeviceIoDirect,
WdfDeviceIoBufferedOrDirect = 4,
WdfDeviceIoMaximum
} WDF_DEVICE_IO_TYPE, *PWDF_DEVICE_IO_TYPE;
View the official Windows Driver Kit DDI reference
// wudfddi_types.h
typedef enum _WDF_DEVICE_IO_TYPE {
WdfDeviceIoUndefined,
WdfDeviceIoNeither,
WdfDeviceIoBuffered,
WdfDeviceIoDirect,
WdfDeviceIoBufferedOrDirect,
WdfDeviceIoMaximum
} WDF_DEVICE_IO_TYPE, *PWDF_DEVICE_IO_TYPE;
View the official Windows Driver Kit DDI reference
No description available.
[Applies to KMDF and UMDF]
The WDF_DEVICE_IO_TYPE enumeration is used to specify a method for accessing data buffers.
WdfDeviceIoUndefined:0
Reserved for system use.
WdfDeviceIoNeither
UMDF This value is not used by UMDF drivers. A UMDF driver can access device I/O control requests that specify the METHOD_NEITHER buffer access method by setting the UmdfMethodNeitherAction INF directive and using WdfDeviceIoBuffered or WdfDeviceIoDirect. For more information, see Specifying WDF Directives in INF Files.
KMDF Neither buffered nor direct I/O will be used to access data buffers.
WdfDeviceIoBuffered
Buffered I/O will be used to access data buffers.
WdfDeviceIoDirect
Direct I/O will be used to access data buffers.
WdfDeviceIoBufferedOrDirect:4
This value is not used by KMDF drivers.
UMDF Buffered I/O or direct I/O will be used to access data buffers.
WdfDeviceIoMaximum
The WDF_DEVICE_IO_TYPE enumeration is used to specify buffer access method types in the WDF_IO_TYPE_CONFIG structure.
The WDF_IO_TYPE_CONFIG structure is used as input to WdfDeviceInitSetIoTypeEx and WdfDeviceInitSetIoType.
[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_DEVICE_IO_TYPE enumeration is used to specify a method for accessing data buffers.
WdfDeviceIoUndefined
Reserved for system use.
WdfDeviceIoNeither
Reserved for system use.
WdfDeviceIoBuffered
UMDF and the driver use buffered I/O to access data buffers.
WdfDeviceIoDirect
UMDF and the driver use direct I/O to access data buffers.
WdfDeviceIoBufferedOrDirect
UMDF and the driver can use either buffered I/O or direct I/O to access data buffers.
WdfDeviceIoMaximum
Reserved for system use.
The WDF_DEVICE_IO_TYPE enumeration is used as input to IWDFDeviceInitialize2::SetIoTypePreference and as output from IWDFIoRequest2::GetEffectiveIoType.
You should use the following guidelines when choosing an I/O type for your driver:
For more information about accessing an I/O request's data buffers, see Accessing Data Buffers in UMDF-Based Drivers.
For the KMDF version of this enumeration, see WDF_DEVICE_IO_TYPE.
IWDFDeviceInitialize2::SetIoTypePreference
IWDFIoRequest2::GetEffectiveIoType
WDF_DEVICE_IO_BUFFER_RETRIEVAL