WDF_REQUEST_TYPE - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// wdfrequest.h

typedef enum _WDF_REQUEST_TYPE {
  WdfRequestTypeCreate = 0x0,
  WdfRequestTypeCreateNamedPipe = 0x1,
  WdfRequestTypeClose = 0x2,
  WdfRequestTypeRead = 0x3,
  WdfRequestTypeWrite = 0x4,
  WdfRequestTypeQueryInformation = 0x5,
  WdfRequestTypeSetInformation = 0x6,
  WdfRequestTypeQueryEA = 0x7,
  WdfRequestTypeSetEA = 0x8,
  WdfRequestTypeFlushBuffers = 0x9,
  WdfRequestTypeQueryVolumeInformation = 0xa,
  WdfRequestTypeSetVolumeInformation = 0xb,
  WdfRequestTypeDirectoryControl = 0xc,
  WdfRequestTypeFileSystemControl = 0xd,
  WdfRequestTypeDeviceControl = 0xe,
  WdfRequestTypeDeviceControlInternal = 0xf,
  WdfRequestTypeShutdown = 0x10,
  WdfRequestTypeLockControl = 0x11,
  WdfRequestTypeCleanup = 0x12,
  WdfRequestTypeCreateMailSlot = 0x13,
  WdfRequestTypeQuerySecurity = 0x14,
  WdfRequestTypeSetSecurity = 0x15,
  WdfRequestTypePower = 0x16,
  WdfRequestTypeSystemControl = 0x17,
  WdfRequestTypeDeviceChange = 0x18,
  WdfRequestTypeQueryQuota = 0x19,
  WdfRequestTypeSetQuota = 0x1A,
  WdfRequestTypePnp = 0x1B,
  WdfRequestTypeOther = 0x1C,
  WdfRequestTypeUsb = 0x40,
  WdfRequestTypeNoFormat = 0xFF,
  WdfRequestTypeMax
} WDF_REQUEST_TYPE;

View the official Windows Driver Kit DDI reference
// wudfddi_types.h

typedef enum _WDF_REQUEST_TYPE {
  WdfRequestUndefined,
  WdfRequestCreate,
  WdfRequestCleanup,
  WdfRequestRead,
  WdfRequestWrite,
  WdfRequestDeviceIoControl,
  WdfRequestClose,
  WdfRequestUsb,
  WdfRequestOther,
  WdfRequestInternalIoctl,
  WdfRequestTypeNoFormat,
  WdfRequestFlushBuffers,
  WdfRequestQueryInformation,
  WdfRequestSetInformation,
  WdfRequestMaximum
} WDF_REQUEST_TYPE, *PWDF_REQUEST_TYPE;

View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ne-wdfrequest-_wdf_request_type)

_WDF_REQUEST_TYPE enumeration (wdfrequest.h)

Description

[Applies to KMDF and UMDF]

The WDF_REQUEST_TYPE enumeration type identifies types of requests that a framework request object might contain.

Constants

WdfRequestTypeCreate:0x0

The request object represents an IRP_MJ_CREATE request. The framework delivers this type of request to a driver's EvtDeviceFileCreate callback function.

WdfRequestTypeCreateNamedPipe:0x1

The request object represents an IRP_MJ_CREATE_NAMED_PIPE request. The framework does not handle this type of request.

WdfRequestTypeClose:0x2

The request object represents an IRP_MJ_CLOSE request. The framework delivers this type of request to a driver's EvtFileClose callback function.

WdfRequestTypeRead:0x3

The request object represents an IRP_MJ_READ request. The framework delivers this type of request to a driver's request handler.

WdfRequestTypeWrite:0x4

The request object represents an IRP_MJ_WRITE request. The framework delivers this type of request to a driver's request handler.

WdfRequestTypeQueryInformation:0x5

The request object represents an IRP_MJ_QUERY_INFORMATION request. The framework does not handle this type of request.

WdfRequestTypeSetInformation:0x6

The request object represents an IRP_MJ_SET_INFORMATION request. The framework does not handle this type of request.

WdfRequestTypeQueryEA:0x7

The request object represents an IRP_MJ_QUERY_EA request. The framework does not handle this type of request.

WdfRequestTypeSetEA:0x8

The request object represents an IRP_MJ_SET_EA request. The framework does not handle this type of request.

WdfRequestTypeFlushBuffers:0x9

The request object represents an IRP_MJ_FLUSH_BUFFERS request. The framework does not handle this type of request.

WdfRequestTypeQueryVolumeInformation:0xa

The request object represents an IRP_MJ_QUERY_VOLUME_INFORMATION request. The framework does not handle this type of request.

WdfRequestTypeSetVolumeInformation:0xb

The request object represents an IRP_MJ_SET_VOLUME_INFORMATION request. The framework does not handle this type of request.

WdfRequestTypeDirectoryControl:0xc

The request object represents an IRP_MJ_DIRECTORY_CONTROL request. The framework does not handle this type of request.

WdfRequestTypeFileSystemControl:0xd

The request object represents an IRP_MJ_FILE_SYSTEM_CONTROL request. The framework does not handle this type of request.

WdfRequestTypeDeviceControl:0xe

The request object represents an IRP_MJ_DEVICE_CONTROL request. The framework delivers this type of request to a driver's request handler.

WdfRequestTypeDeviceControlInternal:0xf

The request object represents an IRP_MJ_INTERNAL_DEVICE_CONTROL request. The framework delivers this type of request to a driver's request handler.

WdfRequestTypeShutdown:0x10

The request object represents an IRP_MJ_SHUTDOWN request. The framework handles this type of request for the driver, but the framework also calls the driver's EvtDeviceShutdownNotification callback function, if it exists.

WdfRequestTypeLockControl:0x11

The request object represents an IRP_MJ_LOCK_CONTROL request. The framework does not handle this type of request.

WdfRequestTypeCleanup:0x12

The request object represents an IRP_MJ_CLEANUP request. The framework delivers this type of request to a driver's EvtFileCleanup callback function.

WdfRequestTypeCreateMailSlot:0x13

The request object represents an IRP_MJ_CREATE_MAILSLOT request. The framework does not handle this type of request.

WdfRequestTypeQuerySecurity:0x14

The request object represents an IRP_MJ_QUERY_SECURITY request. The framework does not handle this type of request.

WdfRequestTypeSetSecurity:0x15

The request object represents an IRP_MJ_SET_SECURITY request. The framework does not handle this type of request.

WdfRequestTypePower:0x16

The request object represents an IRP_MJ_POWER request. The framework handles this type of request for the driver, but the framework also calls the driver's general, FDO, and PDO callback functions for Plug and Play (PnP) and power management, if the callback functions exist.

WdfRequestTypeSystemControl:0x17

The request object represents an IRP_MJ_SYSTEM_CONTROL request. The framework handles this type of request for the driver, if the driver supports Windows Management Instrumentation (WMI).

WdfRequestTypeDeviceChange:0x18

The request object represents an IRP_MJ_DEVICE_CHANGE request. The framework does not handle this type of request.

WdfRequestTypeQueryQuota:0x19

The request object represents an IRP_MJ_QUERY_QUOTA request. The framework does not handle this type of request.

WdfRequestTypeSetQuota:0x1A

The request object represents an IRP_MJ_SET_QUOTA request. The framework does not handle this type of request.

WdfRequestTypePnp:0x1B

The request object represents an IRP_MJ_PNP request. The framework handles this type of request for the driver, but the framework also calls the driver's general, FDO, and PDO callback functions for PnP and power management, if the callback functions exist.

WdfRequestTypeOther:0x1C

A driver receives this request type in its CompletionRoutine event callback function when requests formatted with WdfIoTargetFormatRequestForInternalIoctlOthers are completed.

WdfRequestTypeUsb:0x40

The target device is a USB device. (This value is used only in WDF_REQUEST_COMPLETION_PARAMS structures.)

WdfRequestTypeNoFormat:0xFF

The request object's type has not been specified.

WdfRequestTypeMax

The maximum value that has been assigned to a valid IRP major function code.

Remarks

The WDF_REQUEST_TYPE enumeration type is used in the WDF_REQUEST_PARAMETERS and WDF_REQUEST_COMPLETION_PARAMS structures.

For information about how a framework-based driver can handle request types that the framework does not support, see Handling an IRP that the Framework Does Not Support.

For the UMDF version of this enumeration, see WDF_REQUEST_TYPE (UMDF).

See also

EvtDeviceFileCreate

EvtDeviceShutdownNotification

EvtFileCleanup

EvtFileClose


Windows Driver Kit DDI reference (ne-wudfddi_types-_wdf_request_type)

_WDF_REQUEST_TYPE enumeration (wudfddi_types.h)

Description

[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_REQUEST_TYPE enumeration identifies the types of I/O requests that a UMDF request object can represent.

Constants

WdfRequestUndefined

The type of the request object is undefined.

WdfRequestCreate

The request object represents a file creation request. The driver receives this type of request object when an application opens a device by calling the Microsoft Win32 CreateFile function. The framework delivers this type of request, along with a newly created file object (IWDFFile), to the driver's IQueueCallbackCreate::OnCreateFile callback function. The new file object represents the HANDLE-typed file handle that the Win32 CreateFile returns.

WdfRequestCleanup

The request object represents a file cleanup request. The driver receives this type of request object after an application's call to the Win32 CloseHandle function closes the last handle to a file object, but possibly before all of the file's outstanding I/O requests have been completed or canceled. The framework delivers this type of request to the driver's IFileCallbackCleanup::OnCleanupFile callback function. (Also see WdfRequestClose.)

WdfRequestRead

The request object represents a read request. This driver receives this type of I/O request when an application calls the Win32 ReadFile or ReadFileEx function. The framework delivers this type of request to the driver's IQueueCallbackRead::OnRead callback function.

WdfRequestWrite

The request object represents a write request. This driver receives this type of I/O request when an application calls the Win32 WriteFile or WriteFileEx function. The framework delivers this type of request to the driver's IQueueCallbackWrite::OnWrite callback function.

WdfRequestDeviceIoControl

The request object represents a device I/O control request. This driver receives this type of I/O request when an application calls the Win32 DeviceIoControl function. The framework delivers this type of request to the driver's IQueueCallbackDeviceIoControl::OnDeviceIoControl callback function.

WdfRequestClose

The request object represents a file close request. The driver receives this type of request object after an application's call to the Win32 CloseHandle function closes the last handle to a file object, and after all of the file's outstanding I/O requests have been completed or canceled. The framework delivers this type of request to the driver's IFileCallbackClose::OnCloseFile callback function. (Also see WdfRequestCleanup.)

WdfRequestUsb

The request object was sent to a USB port. The IWDFRequestCompletionParams::GetCompletedRequestType method can return this value.

WdfRequestOther

This value is reserved for internal use only.

WdfRequestInternalIoctl

This value is reserved for internal use only.

WdfRequestTypeNoFormat

The request object's type has not been specified.

WdfRequestFlushBuffers

The request object represents a request to flush cached buffers. The framework delivers this type of request to the driver's IQueueCallbackDefaultIoHandler::OnDefaultIoHandler callback function.

WdfRequestQueryInformation

The request object represents a request to obtain information about a file. The framework delivers this type of request to the driver's IQueueCallbackDefaultIoHandler::OnDefaultIoHandler callback function.

WdfRequestSetInformation

The request object represents a request to set information about a file. The framework delivers this type of request to the driver's IQueueCallbackDefaultIoHandler::OnDefaultIoHandler callback function.

WdfRequestMaximum

The maximum value for the enumeration is exceeded.

Remarks

The WDF_REQUEST_TYPE enumeration is used as an input parameter of IWDFDevice::ConfigureRequestDispatching and IWDFIoQueue::ConfigureRequestDispatching. It is also used for the return value of IWDFIoRequest::GetType and IWDFRequestCompletionParams::GetCompletedRequestType.

For the KMDF version of this enumeration, see WDF_REQUEST_TYPE.

See also

IFileCallbackCleanup::OnCleanupFile

IFileCallbackClose::OnCloseFile

IQueueCallbackCreate::OnCreateFile

IQueueCallbackDeviceIoControl::OnDeviceIoControl

IQueueCallbackRead::OnRead

IQueueCallbackWrite::OnWrite

IWDFFile