ReactOS  0.4.15-dev-3291-gea4c1a0
wdfio.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _WDF_IO_QUEUE_CONFIG
 
struct  _WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY_SETTINGS
 
struct  _WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY
 

Macros

#define WDF_EXTERN_C
 
#define WDF_EXTERN_C_START
 
#define WDF_EXTERN_C_END
 

Typedefs

typedef WDF_EXTERN_C_START enum _WDF_IO_QUEUE_DISPATCH_TYPE WDF_IO_QUEUE_DISPATCH_TYPE
 
typedef enum _WDF_IO_QUEUE_STATE WDF_IO_QUEUE_STATE
 
typedef _In_ WDFREQUEST Request
 
typedef EVT_WDF_IO_QUEUE_IO_DEFAULT * PFN_WDF_IO_QUEUE_IO_DEFAULT
 
typedef _In_ WDFREQUEST _In_ ULONG ActionFlags
 
typedef EVT_WDF_IO_QUEUE_IO_STOP * PFN_WDF_IO_QUEUE_IO_STOP
 
typedef EVT_WDF_IO_QUEUE_IO_RESUME * PFN_WDF_IO_QUEUE_IO_RESUME
 
typedef _In_ WDFREQUEST _In_ size_t Length
 
typedef EVT_WDF_IO_QUEUE_IO_READ * PFN_WDF_IO_QUEUE_IO_READ
 
typedef EVT_WDF_IO_QUEUE_IO_WRITE * PFN_WDF_IO_QUEUE_IO_WRITE
 
typedef _In_ WDFREQUEST _In_ size_t OutputBufferLength
 
typedef _In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
 
typedef _In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
 
typedef EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL * PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL
 
typedef EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL * PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL
 
typedef EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE * PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE
 
typedef _In_ WDFCONTEXT Context
 
typedef EVT_WDF_IO_QUEUE_STATE * PFN_WDF_IO_QUEUE_STATE
 
typedef struct _WDF_IO_QUEUE_CONFIG WDF_IO_QUEUE_CONFIG
 
typedef struct _WDF_IO_QUEUE_CONFIGPWDF_IO_QUEUE_CONFIG
 
typedef enum _WDF_IO_FORWARD_PROGRESS_ACTION WDF_IO_FORWARD_PROGRESS_ACTION
 
typedef enum _WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY
 
typedef EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST * PFN_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST
 
typedef EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES * PFN_WDF_IO_ALLOCATE_REQUEST_RESOURCES
 
typedef _In_ PIRP Irp
 
typedef EVT_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS * PFN_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS
 
typedef struct _WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY_SETTINGS WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY_SETTINGS
 
typedef struct _WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY
 
typedef struct _WDF_IO_QUEUE_FORWARD_PROGRESS_POLICYPWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY
 
typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFIOQUEUECREATE) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
typedef _Must_inspect_result_ _In_ WDFDEVICE Device
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG Config
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES QueueAttributes
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFQUEUE * Queue
 
typedef _In_ WDFQUEUE _Out_opt_ PULONG QueueRequests
 
typedef _In_ WDFQUEUE _Out_opt_ PULONG _Out_opt_ PULONG DriverRequests
 
typedef _In_ WDFQUEUE _When_(Context !=0, _In_) _When_(Context == 0
 
typedef _In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE StopComplete
 
typedef _Must_inspect_result_ _In_ WDFQUEUE _Out_ WDFREQUEST * OutRequest
 
typedef _Must_inspect_result_ _In_ WDFQUEUE _In_ WDFFILEOBJECT FileObject
 
typedef _Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST FoundRequest
 
typedef _Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
 
typedef _In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE DrainComplete
 
typedef _In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE PurgeComplete
 
typedef _Must_inspect_result_ _In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE QueueReady
 
typedef _Must_inspect_result_ _In_ WDFQUEUE _In_ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY ForwardProgressPolicy
 
typedef _In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE StopAndPurgeComplete
 

Enumerations

enum  _WDF_IO_QUEUE_DISPATCH_TYPE {
  WdfIoQueueDispatchInvalid = 0, WdfIoQueueDispatchSequential, WdfIoQueueDispatchParallel, WdfIoQueueDispatchManual,
  WdfIoQueueDispatchMax
}
 
enum  _WDF_IO_QUEUE_STATE {
  WdfIoQueueAcceptRequests = 0x01, WdfIoQueueDispatchRequests = 0x02, WdfIoQueueNoRequests = 0x04, WdfIoQueueDriverNoRequests = 0x08,
  WdfIoQueuePnpHeld = 0x10
}
 
enum  _WDF_IO_FORWARD_PROGRESS_ACTION { WdfIoForwardProgressActionInvalid = 0x0, WdfIoForwardProgressActionFailRequest, WdfIoForwardProgressActionUseReservedRequest }
 
enum  _WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY { WdfIoForwardProgressInvalidPolicy =0x0, WdfIoForwardProgressReservedPolicyAlwaysUseReservedRequest, WdfIoForwardProgressReservedPolicyUseExamine, WdfIoForwardProgressReservedPolicyPagingIO }
 

Functions

FORCEINLINE BOOLEAN WDF_IO_QUEUE_IDLE (_In_ WDF_IO_QUEUE_STATE State)
 
FORCEINLINE BOOLEAN WDF_IO_QUEUE_READY (_In_ WDF_IO_QUEUE_STATE State)
 
FORCEINLINE BOOLEAN WDF_IO_QUEUE_STOPPED (_In_ WDF_IO_QUEUE_STATE State)
 
FORCEINLINE BOOLEAN WDF_IO_QUEUE_DRAINED (_In_ WDF_IO_QUEUE_STATE State)
 
FORCEINLINE BOOLEAN WDF_IO_QUEUE_PURGED (_In_ WDF_IO_QUEUE_STATE State)
 
typedef _Function_class_ (EVT_WDF_IO_QUEUE_IO_DEFAULT) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_IO_QUEUE_IO_DEFAULT(_In_ WDFQUEUE Queue
 
typedef _Function_class_ (EVT_WDF_IO_QUEUE_IO_STOP) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_IO_QUEUE_IO_STOP(_In_ WDFQUEUE Queue
 
typedef _Function_class_ (EVT_WDF_IO_QUEUE_IO_RESUME) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_IO_QUEUE_IO_RESUME(_In_ WDFQUEUE Queue
 
typedef _Function_class_ (EVT_WDF_IO_QUEUE_IO_READ) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_IO_QUEUE_IO_READ(_In_ WDFQUEUE Queue
 
typedef _Function_class_ (EVT_WDF_IO_QUEUE_IO_WRITE) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_IO_QUEUE_IO_WRITE(_In_ WDFQUEUE Queue
 
typedef _Function_class_ (EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL(_In_ WDFQUEUE Queue
 
typedef _Function_class_ (EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL(_In_ WDFQUEUE Queue
 
typedef _Function_class_ (EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE(_In_ WDFQUEUE Queue
 
typedef _Function_class_ (EVT_WDF_IO_QUEUE_STATE) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_IO_QUEUE_STATE(_In_ WDFQUEUE Queue
 
FORCEINLINE VOID WDF_IO_QUEUE_CONFIG_INIT (_Out_ PWDF_IO_QUEUE_CONFIG Config, _In_ WDF_IO_QUEUE_DISPATCH_TYPE DispatchType)
 
FORCEINLINE VOID WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE (_Out_ PWDF_IO_QUEUE_CONFIG Config, _In_ WDF_IO_QUEUE_DISPATCH_TYPE DispatchType)
 
typedef _Function_class_ (EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS STDCALL EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST(_In_ WDFQUEUE Queue
 
typedef _Function_class_ (EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS STDCALL EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES(_In_ WDFQUEUE Queue
 
typedef _Function_class_ (EVT_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) WDF_IO_FORWARD_PROGRESS_ACTION STDCALL EVT_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS(_In_ WDFQUEUE Queue
 
FORCEINLINE VOID WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_DEFAULT_INIT (_Out_ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY Policy, _In_ ULONG TotalForwardProgressRequests)
 
FORCEINLINE VOID WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT (_Out_ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY Policy, _In_ ULONG TotalForwardProgressRequests, _In_ PFN_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS EvtIoWdmIrpForForwardProgress)
 
FORCEINLINE VOID WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_PAGINGIO_INIT (_Out_ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY Policy, _In_ ULONG TotalForwardProgressRequests)
 
_Must_inspect_result_ _IRQL_requires_max_ (DISPATCH_LEVEL) FORCEINLINE NTSTATUS WdfIoQueueCreate(_In_ WDFDEVICE Device
 
 _When_ (Context !=0, _In_) _When_(Context
 
_In_opt_ PFN_WDF_IO_QUEUE_STATE _When_ (StopComplete !=0, _In_) _When_(StopComplete
 
typedef _IRQL_requires_max_ (PASSIVE_LEVEL) WDFAPI VOID(STDCALL *PFN_WDFIOQUEUESTOPSYNCHRONOUSLY)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 Queries information details about a security descriptor. More...
 

Macro Definition Documentation

◆ WDF_EXTERN_C

#define WDF_EXTERN_C

Definition at line 40 of file wdfio.h.

◆ WDF_EXTERN_C_END

#define WDF_EXTERN_C_END

Definition at line 42 of file wdfio.h.

◆ WDF_EXTERN_C_START

#define WDF_EXTERN_C_START

Definition at line 41 of file wdfio.h.

Typedef Documentation

◆ _IRQL_requires_max_

typedef _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFIOQUEUEASSIGNFORWARDPROGRESSPOLICY)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals

Definition at line 606 of file wdfio.h.

◆ _When_

Definition at line 710 of file wdfio.h.

◆ ActionFlags

typedef _In_ WDFREQUEST _In_ ULONG ActionFlags

Definition at line 252 of file wdfio.h.

◆ Config

◆ Context

Initial value:
{
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFQUEUE * Queue
Definition: wdfio.h:613
_In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE StopComplete
Definition: wdfio.h:712
_In_ WDFCONTEXT Context
Definition: wdfio.h:378
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

Definition at line 378 of file wdfio.h.

◆ Device

typedef _Must_inspect_result_ _In_ WDFDEVICE Device

Definition at line 613 of file wdfio.h.

◆ DrainComplete

◆ DriverRequests

Initial value:
{
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFQUEUE * Queue
Definition: wdfio.h:613
_In_ WDFQUEUE _Out_opt_ PULONG _Out_opt_ PULONG DriverRequests
Definition: wdfio.h:651
#define WdfFunctions
Definition: wdf.h:66
_In_ WDFQUEUE _Out_opt_ PULONG QueueRequests
Definition: wdfio.h:651
PWDF_DRIVER_GLOBALS WdfDriverGlobals

Definition at line 651 of file wdfio.h.

◆ FileObject

Definition at line 828 of file wdfio.h.

◆ ForwardProgressPolicy

Initial value:
{
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFQUEUE * Queue
Definition: wdfio.h:613
_Must_inspect_result_ _In_ WDFQUEUE _In_ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY ForwardProgressPolicy
Definition: wdfio.h:1100
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

Definition at line 1100 of file wdfio.h.

◆ FoundRequest

Definition at line 863 of file wdfio.h.

◆ InputBufferLength

◆ IoControlCode

Definition at line 318 of file wdfio.h.

◆ Irp

typedef _In_ PIRP Irp

Definition at line 513 of file wdfio.h.

◆ Length

typedef _In_ WDFREQUEST _In_ size_t Length

Definition at line 284 of file wdfio.h.

◆ OutputBufferLength

◆ OutRequest

_Must_inspect_result_ _In_ WDFQUEUE _In_ WDFREQUEST _Out_ WDFREQUEST * OutRequest
Initial value:
{
_Must_inspect_result_ _In_ WDFQUEUE _Out_ WDFREQUEST * OutRequest
Definition: wdfio.h:797
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFQUEUE * Queue
Definition: wdfio.h:613
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

Definition at line 797 of file wdfio.h.

◆ Parameters

Initial value:
{
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfio.h:863
_In_ WDFREQUEST Request
Definition: wdfio.h:237
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

Definition at line 863 of file wdfio.h.

◆ PFN_WDF_IO_ALLOCATE_REQUEST_RESOURCES

typedef EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES* PFN_WDF_IO_ALLOCATE_REQUEST_RESOURCES

Definition at line 500 of file wdfio.h.

◆ PFN_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST

typedef EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST* PFN_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST

Definition at line 485 of file wdfio.h.

◆ PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE

typedef EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE* PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE

Definition at line 364 of file wdfio.h.

◆ PFN_WDF_IO_QUEUE_IO_DEFAULT

typedef EVT_WDF_IO_QUEUE_IO_DEFAULT* PFN_WDF_IO_QUEUE_IO_DEFAULT

Definition at line 239 of file wdfio.h.

◆ PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL

typedef EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL* PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL

Definition at line 327 of file wdfio.h.

◆ PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL

typedef EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL* PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL

Definition at line 348 of file wdfio.h.

◆ PFN_WDF_IO_QUEUE_IO_READ

typedef EVT_WDF_IO_QUEUE_IO_READ* PFN_WDF_IO_QUEUE_IO_READ

Definition at line 289 of file wdfio.h.

◆ PFN_WDF_IO_QUEUE_IO_RESUME

typedef EVT_WDF_IO_QUEUE_IO_RESUME* PFN_WDF_IO_QUEUE_IO_RESUME

Definition at line 272 of file wdfio.h.

◆ PFN_WDF_IO_QUEUE_IO_STOP

typedef EVT_WDF_IO_QUEUE_IO_STOP* PFN_WDF_IO_QUEUE_IO_STOP

Definition at line 257 of file wdfio.h.

◆ PFN_WDF_IO_QUEUE_IO_WRITE

typedef EVT_WDF_IO_QUEUE_IO_WRITE* PFN_WDF_IO_QUEUE_IO_WRITE

Definition at line 306 of file wdfio.h.

◆ PFN_WDF_IO_QUEUE_STATE

typedef EVT_WDF_IO_QUEUE_STATE* PFN_WDF_IO_QUEUE_STATE

Definition at line 380 of file wdfio.h.

◆ PFN_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS

typedef EVT_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS* PFN_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS

Definition at line 515 of file wdfio.h.

◆ PurgeComplete

◆ PWDF_IO_QUEUE_CONFIG

◆ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY

◆ Queue

typedef _In_ WDFQUEUE Queue
Initial value:
{
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES QueueAttributes
Definition: wdfio.h:613
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFQUEUE * Queue
Definition: wdfio.h:613
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG Config
Definition: wdfio.h:613
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfio.h:613
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

Definition at line 613 of file wdfio.h.

◆ QueueAttributes

◆ QueueReady

◆ QueueRequests

Definition at line 651 of file wdfio.h.

◆ Request

typedef _In_ WDFREQUEST Request

Definition at line 237 of file wdfio.h.

◆ StopAndPurgeComplete

◆ StopComplete

◆ WDF_IO_FORWARD_PROGRESS_ACTION

◆ WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY

◆ WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY_SETTINGS

◆ WDF_IO_QUEUE_CONFIG

◆ WDF_IO_QUEUE_DISPATCH_TYPE

◆ WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY

◆ WDF_IO_QUEUE_STATE

Enumeration Type Documentation

◆ _WDF_IO_FORWARD_PROGRESS_ACTION

Enumerator
WdfIoForwardProgressActionInvalid 
WdfIoForwardProgressActionFailRequest 
WdfIoForwardProgressActionUseReservedRequest 

Definition at line 459 of file wdfio.h.

◆ _WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY

Enumerator
WdfIoForwardProgressInvalidPolicy 
WdfIoForwardProgressReservedPolicyAlwaysUseReservedRequest 
WdfIoForwardProgressReservedPolicyUseExamine 
WdfIoForwardProgressReservedPolicyPagingIO 

Definition at line 465 of file wdfio.h.

◆ _WDF_IO_QUEUE_DISPATCH_TYPE

Enumerator
WdfIoQueueDispatchInvalid 
WdfIoQueueDispatchSequential 
WdfIoQueueDispatchParallel 
WdfIoQueueDispatchManual 
WdfIoQueueDispatchMax 

Definition at line 76 of file wdfio.h.

◆ _WDF_IO_QUEUE_STATE

Enumerator
WdfIoQueueAcceptRequests 
WdfIoQueueDispatchRequests 
WdfIoQueueNoRequests 
WdfIoQueueDriverNoRequests 
WdfIoQueuePnpHeld 

Definition at line 124 of file wdfio.h.

Function Documentation

◆ _Function_class_() [1/12]

typedef _Function_class_ ( EVT_WDF_IO_QUEUE_IO_DEFAULT  )

◆ _Function_class_() [2/12]

typedef _Function_class_ ( EVT_WDF_IO_QUEUE_IO_STOP  )

◆ _Function_class_() [3/12]

typedef _Function_class_ ( EVT_WDF_IO_QUEUE_IO_RESUME  )

◆ _Function_class_() [4/12]

typedef _Function_class_ ( EVT_WDF_IO_QUEUE_IO_READ  )

◆ _Function_class_() [5/12]

typedef _Function_class_ ( EVT_WDF_IO_QUEUE_IO_WRITE  )

◆ _Function_class_() [6/12]

typedef _Function_class_ ( EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL  )

◆ _Function_class_() [7/12]

typedef _Function_class_ ( EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL  )

◆ _Function_class_() [8/12]

typedef _Function_class_ ( EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE  )

◆ _Function_class_() [9/12]

typedef _Function_class_ ( EVT_WDF_IO_QUEUE_STATE  )

◆ _Function_class_() [10/12]

typedef _Function_class_ ( EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST  )

◆ _Function_class_() [11/12]

typedef _Function_class_ ( EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES  )

◆ _Function_class_() [12/12]

typedef _Function_class_ ( EVT_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS  )

◆ _IRQL_requires_max_() [1/2]

_Must_inspect_result_ _IRQL_requires_max_ ( DISPATCH_LEVEL  )

Definition at line 687 of file wdfio.h.

694 {
696 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFQUEUE * Queue
Definition: wdfio.h:613
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ _IRQL_requires_max_() [2/2]

typedef _IRQL_requires_max_ ( PASSIVE_LEVEL  )

Queries information details about a security descriptor.

Computes the quota size of a security descriptor.

Assigns a security descriptor for a new object.

An extended function that assigns a security descriptor for a new object.

Frees a security descriptor.

An extended function that sets new information data to a security descriptor.

Modifies some information data about a security descriptor.

Parameters
[in]SecurityInformationSecurity information details to be queried from a security descriptor.
[out]SecurityDescriptorThe returned security descriptor with security information data.
[in,out]LengthThe returned length of a security descriptor.
[in,out]ObjectsSecurityDescriptorThe returned object security descriptor.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the specific information about the security descriptor has been queried. STATUS_BUFFER_TOO_SMALL is returned if the buffer size is too small to contain the queried info about the security descriptor.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
See SeSetSecurityDescriptorInfoEx.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]AutoInheritFlagsFlags bitmask inheritation, influencing how the security descriptor can be inherited and if it can be in the first place.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
Returns STATUS_SUCCESS if the operations have been completed without problems and that new info has been set to the security descriptor. STATUS_NO_SECURITY_ON_OBJECT is returned if the object does not have a security descriptor. STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the new security descriptor with new info set has failed.
Parameters
[in]SecurityDescriptorA security descriptor to be freed from memory.
Returns
Returns STATUS_SUCCESS.
Parameters
[in]_ParentDescriptorA security descriptor of the parent object that is being created.
[in]_ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]ObjectTypeThe type of the new object.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]AutoInheritFlagsAutomatic inheritance flags that influence how access control entries within ACLs from security descriptors are inherited.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the security descriptor has been assigned to the new object. STATUS_NO_TOKEN is returned if the caller hasn't supplied a valid argument to a security subject context. STATUS_INVALID_OWNER is returned if the caller hasn't supplied a parent descriptor that belongs to the main user (owner). STATUS_INVALID_PRIMARY_GROUP is returned by the same reason as with the previous NTSTATUS code. The two NTSTATUS codes are returned if the calling thread stated that the owner and/or group is defaulted to the parent descriptor (SEF_DEFAULT_OWNER_FROM_PARENT and/or SEF_DEFAULT_GROUP_FROM_PARENT respectively). STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the descriptor buffer has failed. A failure NTSTATUS is returned otherwise.
Parameters
[in]ParentDescriptorA security descriptor of the parent object that is being created.
[in]ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
See SeAssignSecurityEx.
Parameters
[in]SecurityDescriptorA security descriptor.
[out]QuotaInfoSizeThe returned quota size of the given security descriptor to the caller. The function may return 0 to this parameter if the descriptor doesn't have a group or a discretionary access control list (DACL) even.
Returns
Returns STATUS_SUCCESS if the quota size of a security descriptor has been computed successfully. STATUS_UNKNOWN_REVISION is returned if the security descriptor has an invalid revision.

Definition at line 749 of file wdfio.h.

756 {
757  ((PFN_WDFIOQUEUESTOPSYNCHRONOUSLY) WdfFunctions[WdfIoQueueStopSynchronouslyTableIndex])(WdfDriverGlobals, Queue);
758 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFQUEUE * Queue
Definition: wdfio.h:613
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ _When_() [1/2]

_When_ ( Context = 0,
_In_   
)

◆ _When_() [2/2]

◆ WDF_IO_QUEUE_CONFIG_INIT()

FORCEINLINE VOID WDF_IO_QUEUE_CONFIG_INIT ( _Out_ PWDF_IO_QUEUE_CONFIG  Config,
_In_ WDF_IO_QUEUE_DISPATCH_TYPE  DispatchType 
)

Definition at line 426 of file wdfio.h.

430 {
432 
433  Config->Size = sizeof(WDF_IO_QUEUE_CONFIG);
434  Config->PowerManaged = WdfUseDefault;
435  Config->DispatchType = DispatchType;
436  if (Config->DispatchType == WdfIoQueueDispatchParallel) {
437  Config->Settings.Parallel.NumberOfPresentedRequests = (ULONG)-1;
438  }
439 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:474
unsigned int ULONG
Definition: retypes.h:1
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
struct _WDF_IO_QUEUE_CONFIG WDF_IO_QUEUE_CONFIG

Referenced by DriverEvtDeviceAdd(), and FxPkgGeneral::PostCreateDeviceInitialize().

◆ WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE()

FORCEINLINE VOID WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE ( _Out_ PWDF_IO_QUEUE_CONFIG  Config,
_In_ WDF_IO_QUEUE_DISPATCH_TYPE  DispatchType 
)

Definition at line 443 of file wdfio.h.

447 {
449 
450  Config->Size = sizeof(WDF_IO_QUEUE_CONFIG);
451  Config->PowerManaged = WdfUseDefault;
452  Config->DefaultQueue = TRUE;
453  Config->DispatchType = DispatchType;
454  if (Config->DispatchType == WdfIoQueueDispatchParallel) {
455  Config->Settings.Parallel.NumberOfPresentedRequests = (ULONG)-1;
456  }
457 }
#define TRUE
Definition: types.h:120
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:474
unsigned int ULONG
Definition: retypes.h:1
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
struct _WDF_IO_QUEUE_CONFIG WDF_IO_QUEUE_CONFIG

Referenced by DriverEvtDeviceAdd().

◆ WDF_IO_QUEUE_DRAINED()

FORCEINLINE BOOLEAN WDF_IO_QUEUE_DRAINED ( _In_ WDF_IO_QUEUE_STATE  State)

Definition at line 194 of file wdfio.h.

197 {
198  return ( ((State & WdfIoQueueAcceptRequests)==0) &&
202 
203 }
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117

◆ WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_DEFAULT_INIT()

FORCEINLINE VOID WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_DEFAULT_INIT ( _Out_ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY  Policy,
_In_ ULONG  TotalForwardProgressRequests 
)

Definition at line 556 of file wdfio.h.

560 {
562 
564  Policy->TotalForwardProgressRequests = TotalForwardProgressRequests;
566 }
struct _WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY Policy
Definition: wdfinterrupt.h:651

◆ WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT()

FORCEINLINE VOID WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT ( _Out_ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY  Policy,
_In_ ULONG  TotalForwardProgressRequests,
_In_ PFN_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS  EvtIoWdmIrpForForwardProgress 
)

Definition at line 571 of file wdfio.h.

576 {
578 
580  Policy->TotalForwardProgressRequests = TotalForwardProgressRequests;
581  Policy->ForwardProgressReservedPolicy = WdfIoForwardProgressReservedPolicyUseExamine;
582  Policy->ForwardProgressReservePolicySettings.Policy.ExaminePolicy.EvtIoWdmIrpForForwardProgress =
583  EvtIoWdmIrpForForwardProgress;
584 }
struct _WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY Policy
Definition: wdfinterrupt.h:651

◆ WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_PAGINGIO_INIT()

FORCEINLINE VOID WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_PAGINGIO_INIT ( _Out_ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY  Policy,
_In_ ULONG  TotalForwardProgressRequests 
)

Definition at line 588 of file wdfio.h.

592 {
594 
596  Policy->TotalForwardProgressRequests = TotalForwardProgressRequests;
597  Policy->ForwardProgressReservedPolicy = WdfIoForwardProgressReservedPolicyPagingIO;
598 }
struct _WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY Policy
Definition: wdfinterrupt.h:651

◆ WDF_IO_QUEUE_IDLE()

FORCEINLINE BOOLEAN WDF_IO_QUEUE_IDLE ( _In_ WDF_IO_QUEUE_STATE  State)

Definition at line 146 of file wdfio.h.

149 {
150  return ((State & WdfIoQueueNoRequests) &&
152 }
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117

◆ WDF_IO_QUEUE_PURGED()

FORCEINLINE BOOLEAN WDF_IO_QUEUE_PURGED ( _In_ WDF_IO_QUEUE_STATE  State)

Definition at line 212 of file wdfio.h.

215 {
216  return ( ((State & WdfIoQueueAcceptRequests)==0) &&
219 
220 }
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117

◆ WDF_IO_QUEUE_READY()

FORCEINLINE BOOLEAN WDF_IO_QUEUE_READY ( _In_ WDF_IO_QUEUE_STATE  State)

Definition at line 160 of file wdfio.h.

163 {
164  return ((State & WdfIoQueueDispatchRequests) &&
166  ((State & WdfIoQueuePnpHeld)==0)) ? TRUE: FALSE;
167 }
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117

◆ WDF_IO_QUEUE_STOPPED()

FORCEINLINE BOOLEAN WDF_IO_QUEUE_STOPPED ( _In_ WDF_IO_QUEUE_STATE  State)

Definition at line 176 of file wdfio.h.

179 {
180  return (((State & WdfIoQueueDispatchRequests) == 0) &&
183 
184 }
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117