ReactOS  0.4.15-dev-1647-g91fceab
wdfrequest.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_REQUEST_PARAMETERS
 
struct  _WDF_REQUEST_COMPLETION_PARAMS
 
struct  _WDF_REQUEST_REUSE_PARAMS
 
struct  _WDF_REQUEST_SEND_OPTIONS
 
struct  _WDF_REQUEST_FORWARD_OPTIONS
 

Macros

#define WDF_EXTERN_C
 
#define WDF_EXTERN_C_START
 
#define WDF_EXTERN_C_END
 

Typedefs

typedef WDF_EXTERN_C_START enum _WDF_REQUEST_REUSE_FLAGS WDF_REQUEST_REUSE_FLAGS
 
typedef enum _WDF_REQUEST_STOP_ACTION_FLAGS WDF_REQUEST_STOP_ACTION_FLAGS
 
typedef enum _WDF_REQUEST_SEND_OPTIONS_FLAGS WDF_REQUEST_SEND_OPTIONS_FLAGS
 
typedef EVT_WDF_REQUEST_CANCEL * PFN_WDF_REQUEST_CANCEL
 
typedef struct _WDF_REQUEST_PARAMETERS WDF_REQUEST_PARAMETERS
 
typedef struct _WDF_REQUEST_PARAMETERSPWDF_REQUEST_PARAMETERS
 
typedef struct _WDF_USB_REQUEST_COMPLETION_PARAMSPWDF_USB_REQUEST_COMPLETION_PARAMS
 
typedef struct _WDF_REQUEST_COMPLETION_PARAMS WDF_REQUEST_COMPLETION_PARAMS
 
typedef struct _WDF_REQUEST_COMPLETION_PARAMSPWDF_REQUEST_COMPLETION_PARAMS
 
typedef _In_ WDFIOTARGET Target
 
typedef _In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
 
typedef _In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS _In_ WDFCONTEXT Context
 
typedef EVT_WDF_REQUEST_COMPLETION_ROUTINE * PFN_WDF_REQUEST_COMPLETION_ROUTINE
 
typedef struct _WDF_REQUEST_REUSE_PARAMS WDF_REQUEST_REUSE_PARAMS
 
typedef struct _WDF_REQUEST_REUSE_PARAMSPWDF_REQUEST_REUSE_PARAMS
 
typedef struct _WDF_REQUEST_SEND_OPTIONS WDF_REQUEST_SEND_OPTIONS
 
typedef struct _WDF_REQUEST_SEND_OPTIONSPWDF_REQUEST_SEND_OPTIONS
 
typedef enum _WDF_REQUEST_FORWARD_OPTIONS_FLAGS WDF_REQUEST_FORWARD_OPTIONS_FLAGS
 
typedef struct _WDF_REQUEST_FORWARD_OPTIONS WDF_REQUEST_FORWARD_OPTIONS
 
typedef struct _WDF_REQUEST_FORWARD_OPTIONSPWDF_REQUEST_FORWARD_OPTIONS
 
typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFREQUESTCREATE) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
typedef _Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES RequestAttributes
 
typedef _Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET IoTarget
 
typedef _Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
 
typedef _Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PIRP Irp
 
typedef _Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PIRP _In_ BOOLEAN RequestFreesIrp
 
typedef _In_ WDFREQUEST _In_ PWDF_REQUEST_REUSE_PARAMS ReuseParams
 
typedef _In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
 
typedef _Must_inspect_result_ WDFAPI BOOLEAN(STDCALLPFN_WDFREQUESTSEND) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ WDFIOTARGET Target, _In_opt_ PWDF_REQUEST_SEND_OPTIONS Options)
 
typedef _In_ WDFREQUEST _In_ PFN_WDF_REQUEST_CANCEL EvtRequestCancel
 
typedef _In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine = CompletionRoutine
 
typedef _In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
 
typedef _In_ WDFREQUEST _In_ NTSTATUS Status
 
typedef _In_ WDFREQUEST _In_ NTSTATUS _In_ CCHAR PriorityBoost
 
typedef _In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
 
typedef _In_ WDFREQUEST _Out_ PWDF_REQUEST_PARAMETERS Parameters
 
typedef _Must_inspect_result_ _In_ WDFREQUEST _Out_ WDFMEMORY * Memory
 
typedef _Must_inspect_result_ _In_ WDFREQUEST _In_ size_t MinimumRequiredLength
 
typedef _Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_ Length PVOIDBuffer
 
typedef _Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_ Length PVOID _Out_opt_ size_tLength
 
typedef _Must_inspect_result_ _In_ WDFREQUEST _In_ size_t MinimumRequiredSize
 
typedef _Must_inspect_result_ _In_ WDFREQUEST _Outptr_ PMDLMdl
 
typedef _Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_maybenull_ Length PVOIDInputBuffer
 
typedef _Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_maybenull_ Length PVOIDOutputBuffer
 
typedef _Must_inspect_result_ _In_ WDFREQUEST _In_reads_bytes_(Length) PVOID Buffer
 
typedef _Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Out_ WDFMEMORY * MemoryObject
 
typedef _Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE DestinationQueue
 
typedef _In_ WDFREQUEST _In_ BOOLEAN Requeue
 
typedef _Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE ParentDeviceQueue
 
typedef _Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE _In_ PWDF_REQUEST_FORWARD_OPTIONS ForwardOptions
 

Enumerations

enum  _WDF_REQUEST_REUSE_FLAGS { WDF_REQUEST_REUSE_NO_FLAGS = 0x00000000, WDF_REQUEST_REUSE_SET_NEW_IRP = 0x00000001 }
 
enum  _WDF_REQUEST_STOP_ACTION_FLAGS { WdfRequestStopActionInvalid = 0, WdfRequestStopActionSuspend = 0x01, WdfRequestStopActionPurge = 0x2, WdfRequestStopRequestCancelable = 0x10000000 }
 
enum  _WDF_REQUEST_SEND_OPTIONS_FLAGS {
  WDF_REQUEST_SEND_OPTION_TIMEOUT = 0x00000001, WDF_REQUEST_SEND_OPTION_SYNCHRONOUS = 0x00000002, WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE = 0x00000004, WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET = 0x00000008,
  WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT = 0x00010000, WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE = 0x00020000
}
 
enum  _WDF_REQUEST_FORWARD_OPTIONS_FLAGS { WDF_REQUEST_FORWARD_OPTION_SEND_AND_FORGET = 0x00000001 }
 

Functions

typedef _Function_class_ (EVT_WDF_REQUEST_CANCEL) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_REQUEST_CANCEL(_In_ WDFREQUEST Request)
 
FORCEINLINE VOID WDF_REQUEST_PARAMETERS_INIT (_Out_ PWDF_REQUEST_PARAMETERS Parameters)
 
FORCEINLINE VOID WDF_REQUEST_COMPLETION_PARAMS_INIT (_Out_ PWDF_REQUEST_COMPLETION_PARAMS Params)
 
typedef _Function_class_ (EVT_WDF_REQUEST_COMPLETION_ROUTINE) _IRQL_requires_same_ VOID STDCALL EVT_WDF_REQUEST_COMPLETION_ROUTINE(_In_ WDFREQUEST Request
 
FORCEINLINE VOID WDF_REQUEST_REUSE_PARAMS_INIT (_Out_ PWDF_REQUEST_REUSE_PARAMS Params, _In_ ULONG Flags, _In_ NTSTATUS Status)
 
FORCEINLINE VOID WDF_REQUEST_REUSE_PARAMS_SET_NEW_IRP (_Inout_ PWDF_REQUEST_REUSE_PARAMS Params, _In_ PIRP NewIrp)
 
FORCEINLINE VOID WDF_REQUEST_SEND_OPTIONS_INIT (_Out_ PWDF_REQUEST_SEND_OPTIONS Options, _In_ ULONG Flags)
 
FORCEINLINE VOID WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT (_Inout_ PWDF_REQUEST_SEND_OPTIONS Options, _In_ LONGLONG Timeout)
 
FORCEINLINE VOID WDF_REQUEST_FORWARD_OPTIONS_INIT (_Out_ PWDF_REQUEST_FORWARD_OPTIONS ForwardOptions)
 
_Must_inspect_result_ _IRQL_requires_max_ (DISPATCH_LEVEL) FORCEINLINE NTSTATUS WdfRequestCreate(_In_opt_ PWDF_OBJECT_ATTRIBUTES RequestAttributes
 
_Must_inspect_result_ FORCEINLINE BOOLEAN WdfRequestSend (_In_ WDFREQUEST Request, _In_ WDFIOTARGET Target, _In_opt_ PWDF_REQUEST_SEND_OPTIONS Options)
 
_Must_inspect_result_ _IRQL_requires_max_ (APC_LEVEL) FORCEINLINE BOOLEAN WdfRequestIsFrom32BitProcess(_In_ WDFREQUEST Request)
 
_Must_inspect_result_ _IRQL_requires_max_ (PASSIVE_LEVEL) FORCEINLINE NTSTATUS WdfRequestRetrieveUnsafeUserInputBuffer(_In_ WDFREQUEST Request
 
_Must_inspect_result_ _In_reads_bytes_ (Length) PVOID Buffer
 

Macro Definition Documentation

◆ WDF_EXTERN_C

#define WDF_EXTERN_C

Definition at line 40 of file wdfrequest.h.

◆ WDF_EXTERN_C_END

#define WDF_EXTERN_C_END

Definition at line 42 of file wdfrequest.h.

◆ WDF_EXTERN_C_START

#define WDF_EXTERN_C_START

Definition at line 41 of file wdfrequest.h.

Typedef Documentation

◆ _In_reads_bytes_

typedef _Must_inspect_result_ _In_ WDFREQUEST _In_reads_bytes_(Length) PVOID Buffer

Definition at line 1467 of file wdfrequest.h.

◆ _IRQL_requires_max_

typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFREQUESTFORWARDTOPARENTDEVICEIOQUEUE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals

Definition at line 471 of file wdfrequest.h.

◆ Buffer

◆ CompletionContext

Initial value:
{
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
Definition: wdfrequest.h:893
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
Definition: wdfrequest.h:893
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 893 of file wdfrequest.h.

◆ CompletionRoutine

Definition at line 893 of file wdfrequest.h.

◆ Context

Definition at line 306 of file wdfrequest.h.

◆ DestinationQueue

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE DestinationQueue
Definition: wdfrequest.h:1569
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 1569 of file wdfrequest.h.

◆ EvtRequestCancel

Initial value:
{
_In_ WDFREQUEST _In_ PFN_WDF_REQUEST_CANCEL EvtRequestCancel
Definition: wdfrequest.h:727
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 727 of file wdfrequest.h.

◆ ForwardOptions

Initial value:
{
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE _In_ PWDF_REQUEST_FORWARD_OPTIONS ForwardOptions
Definition: wdfrequest.h:1731
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE ParentDeviceQueue
Definition: wdfrequest.h:1731
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 1731 of file wdfrequest.h.

◆ Information

Initial value:
{
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
Definition: wdfrequest.h:1044
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFREQUEST _In_ NTSTATUS Status
Definition: wdfrequest.h:982
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 1044 of file wdfrequest.h.

◆ InputBuffer

◆ IoTarget

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET IoTarget
Definition: wdfrequest.h:478
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 478 of file wdfrequest.h.

◆ Irp

Definition at line 513 of file wdfrequest.h.

◆ Length

Initial value:
{
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_ Length PVOID _Out_opt_ size_t * Length
Definition: wdfrequest.h:1172
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t MinimumRequiredLength
Definition: wdfrequest.h:1169
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_ Length PVOID * Buffer
Definition: wdfrequest.h:1172
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 1172 of file wdfrequest.h.

◆ Mdl

Initial value:
{
return ((PFN_WDFREQUESTRETRIEVEINPUTWDMMDL) WdfFunctions[WdfRequestRetrieveInputWdmMdlTableIndex])(WdfDriverGlobals, Request, Mdl)
_Must_inspect_result_ _In_ WDFREQUEST _Outptr_ PMDL * Mdl
Definition: wdfrequest.h:1247
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 1247 of file wdfrequest.h.

◆ Memory

Initial value:
{
return ((PFN_WDFREQUESTRETRIEVEINPUTMEMORY) WdfFunctions[WdfRequestRetrieveInputMemoryTableIndex])(WdfDriverGlobals, Request, Memory)
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478
_Must_inspect_result_ _In_ WDFREQUEST _Out_ WDFMEMORY * Memory
Definition: wdfrequest.h:1107

Definition at line 1107 of file wdfrequest.h.

◆ MemoryObject

Initial value:
{
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_ Length PVOID _Out_opt_ size_t * Length
Definition: wdfrequest.h:1172
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_ Length PVOID * Buffer
Definition: wdfrequest.h:1172
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Out_ WDFMEMORY * MemoryObject
Definition: wdfrequest.h:1470
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 1470 of file wdfrequest.h.

◆ MinimumRequiredLength

◆ MinimumRequiredSize

◆ OutputBuffer

◆ Parameters

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFREQUEST _Out_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfrequest.h:1077
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 1077 of file wdfrequest.h.

◆ Params

Initial value:
{
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
Definition: wdfrequest.h:306
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 306 of file wdfrequest.h.

◆ ParentDeviceQueue

Definition at line 1731 of file wdfrequest.h.

◆ PFN_WDF_REQUEST_CANCEL

typedef EVT_WDF_REQUEST_CANCEL* PFN_WDF_REQUEST_CANCEL

Definition at line 130 of file wdfrequest.h.

◆ PFN_WDF_REQUEST_COMPLETION_ROUTINE

typedef EVT_WDF_REQUEST_COMPLETION_ROUTINE* PFN_WDF_REQUEST_COMPLETION_ROUTINE

Definition at line 313 of file wdfrequest.h.

◆ PFN_WDFREQUESTSEND

Definition at line 662 of file wdfrequest.h.

◆ PriorityBoost

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
_In_ WDFREQUEST _In_ NTSTATUS _In_ CCHAR PriorityBoost
Definition: wdfrequest.h:1011
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFREQUEST _In_ NTSTATUS Status
Definition: wdfrequest.h:982
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 1011 of file wdfrequest.h.

◆ PWDF_REQUEST_COMPLETION_PARAMS

◆ PWDF_REQUEST_FORWARD_OPTIONS

◆ PWDF_REQUEST_PARAMETERS

◆ PWDF_REQUEST_REUSE_PARAMS

◆ PWDF_REQUEST_SEND_OPTIONS

◆ PWDF_USB_REQUEST_COMPLETION_PARAMS

◆ Request

typedef _Must_inspect_result_ _In_ WDFREQUEST Request
Initial value:
{
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES RequestAttributes
Definition: wdfrequest.h:478
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET IoTarget
Definition: wdfrequest.h:478
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 478 of file wdfrequest.h.

◆ RequestAttributes

◆ RequestFreesIrp

◆ Requeue

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFREQUEST _In_ BOOLEAN Requeue
Definition: wdfrequest.h:1651
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 1651 of file wdfrequest.h.

◆ ReuseParams

Initial value:
{
_In_ WDFREQUEST _In_ PWDF_REQUEST_REUSE_PARAMS ReuseParams
Definition: wdfrequest.h:551
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 551 of file wdfrequest.h.

◆ Stack

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
Definition: wdfrequest.h:636
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 636 of file wdfrequest.h.

◆ Status

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFREQUEST _In_ NTSTATUS Status
Definition: wdfrequest.h:982
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Definition at line 982 of file wdfrequest.h.

◆ Target

_Must_inspect_result_ __in WDFREQUEST __in WDFIOTARGET Target

Definition at line 306 of file wdfrequest.h.

◆ WDF_REQUEST_COMPLETION_PARAMS

◆ WDF_REQUEST_FORWARD_OPTIONS

◆ WDF_REQUEST_FORWARD_OPTIONS_FLAGS

◆ WDF_REQUEST_PARAMETERS

◆ WDF_REQUEST_REUSE_FLAGS

◆ WDF_REQUEST_REUSE_PARAMS

◆ WDF_REQUEST_SEND_OPTIONS

◆ WDF_REQUEST_SEND_OPTIONS_FLAGS

◆ WDF_REQUEST_STOP_ACTION_FLAGS

Enumeration Type Documentation

◆ _WDF_REQUEST_FORWARD_OPTIONS_FLAGS

Enumerator
WDF_REQUEST_FORWARD_OPTION_SEND_AND_FORGET 

Definition at line 430 of file wdfrequest.h.

430  {
enum _WDF_REQUEST_FORWARD_OPTIONS_FLAGS WDF_REQUEST_FORWARD_OPTIONS_FLAGS

◆ _WDF_REQUEST_REUSE_FLAGS

Enumerator
WDF_REQUEST_REUSE_NO_FLAGS 
WDF_REQUEST_REUSE_SET_NEW_IRP 

Definition at line 91 of file wdfrequest.h.

91  {
92  WDF_REQUEST_REUSE_NO_FLAGS = 0x00000000,
93  WDF_REQUEST_REUSE_SET_NEW_IRP = 0x00000001,
WDF_EXTERN_C_START enum _WDF_REQUEST_REUSE_FLAGS WDF_REQUEST_REUSE_FLAGS

◆ _WDF_REQUEST_SEND_OPTIONS_FLAGS

Enumerator
WDF_REQUEST_SEND_OPTION_TIMEOUT 
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS 
WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE 
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET 
WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT 
WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE 

Definition at line 107 of file wdfrequest.h.

◆ _WDF_REQUEST_STOP_ACTION_FLAGS

Enumerator
WdfRequestStopActionInvalid 
WdfRequestStopActionSuspend 
WdfRequestStopActionPurge 
WdfRequestStopRequestCancelable 

Definition at line 100 of file wdfrequest.h.

100  {
102  WdfRequestStopActionSuspend = 0x01, // Device is being suspended
103  WdfRequestStopActionPurge = 0x2, // Device/queue is being removed
104  WdfRequestStopRequestCancelable = 0x10000000, // This bit is set if the request is marked cancelable
enum _WDF_REQUEST_STOP_ACTION_FLAGS WDF_REQUEST_STOP_ACTION_FLAGS

Function Documentation

◆ _Function_class_() [1/2]

typedef _Function_class_ ( EVT_WDF_REQUEST_CANCEL  )

◆ _Function_class_() [2/2]

typedef _Function_class_ ( EVT_WDF_REQUEST_COMPLETION_ROUTINE  )

◆ _In_reads_bytes_()

_Must_inspect_result_ _In_reads_bytes_ ( Length  )

◆ _IRQL_requires_max_() [1/3]

_Must_inspect_result_ _IRQL_requires_max_ ( DISPATCH_LEVEL  )

Definition at line 614 of file wdfrequest.h.

621 {
622  ((PFN_WDFREQUESTFORMATREQUESTUSINGCURRENTTYPE) WdfFunctions[WdfRequestFormatRequestUsingCurrentTypeTableIndex])(WdfDriverGlobals, Request);
623 }
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

◆ _IRQL_requires_max_() [2/3]

_Must_inspect_result_ _IRQL_requires_max_ ( APC_LEVEL  )

Definition at line 871 of file wdfrequest.h.

878 {
879  return ((PFN_WDFREQUESTISFROM32BITPROCESS) WdfFunctions[WdfRequestIsFrom32BitProcessTableIndex])(WdfDriverGlobals, Request);
880 }
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

◆ _IRQL_requires_max_() [3/3]

_Must_inspect_result_ _IRQL_requires_max_ ( PASSIVE_LEVEL  )

Definition at line 64 of file Messaging.c.

75 {
76  PFLT_SERVER_PORT_OBJECT PortObject;
78 
79  /* The caller must allow at least one connection */
80  if (MaxConnections == 0)
81  {
83  }
84 
85  /* The request must be for a kernel handle */
86  if (!(ObjectAttributes->Attributes & OBJ_KERNEL_HANDLE))
87  {
89  }
90 
91  /*
92  * Get rundown protection on the target to stop the owner
93  * from unloading whilst this port object is open. It gets
94  * removed in the FltpServerPortClose callback
95  */
97  if (!NT_SUCCESS(Status))
98  {
99  return Status;
100  }
101 
102  /* Create the server port object for this filter */
106  KernelMode,
107  NULL,
108  sizeof(FLT_SERVER_PORT_OBJECT),
109  0,
110  0,
111  (PVOID *)&PortObject);
112  if (NT_SUCCESS(Status))
113  {
114  /* Zero out the struct */
115  RtlZeroMemory(PortObject, sizeof(FLT_SERVER_PORT_OBJECT));
116 
117  /* Increment the ref count on the target filter */
119 
120  /* Setup the filter port object */
121  PortObject->Filter = Filter;
122  PortObject->ConnectNotify = ConnectNotifyCallback;
124  PortObject->MessageNotify = MessageNotifyCallback;
125  PortObject->Cookie = ServerPortCookie;
126  PortObject->MaxConnections = MaxConnections;
127 
128  /* Insert the object */
129  Status = ObInsertObject(PortObject,
130  NULL,
132  0,
133  NULL,
135  if (NT_SUCCESS(Status))
136  {
137  /* Lock the connection list */
139 
140  /* Add the new port object to the connection list and increment the count */
143 
144  /* Unlock the connection list*/
146  }
147  }
148 
149  if (!NT_SUCCESS(Status))
150  {
151  /* Allow the filter to be cleaned up */
153  }
154 
155  return Status;
156 }
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:35
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
_Must_inspect_result_ _Outptr_ PFLT_PORT * ServerPort
Definition: fltkernel.h:1873
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
LONG NTSTATUS
Definition: precomp.h:26
#define InsertTailList(ListHead, Entry)
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
LIST_ENTRY mList
Definition: fltmgrint.h:56
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1802
#define FILE_READ_DATA
Definition: nt_native.h:628
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
Definition: oblife.c:952
Status
Definition: gdiplustypes.h:24
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1873
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1873
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
Definition: obhandle.c:2932
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1873
#define NULL
Definition: types.h:112
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY _In_ LONG MaxConnections
Definition: fltkernel.h:1873
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
Definition: fltkernel.h:1873
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121

◆ WDF_REQUEST_COMPLETION_PARAMS_INIT()

FORCEINLINE VOID WDF_REQUEST_COMPLETION_PARAMS_INIT ( _Out_ PWDF_REQUEST_COMPLETION_PARAMS  Params)

Definition at line 288 of file wdfrequest.h.

291 {
293  Params->Size = sizeof(WDF_REQUEST_COMPLETION_PARAMS);
295 }
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
Definition: wdfrequest.h:306
struct _WDF_REQUEST_COMPLETION_PARAMS WDF_REQUEST_COMPLETION_PARAMS
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262

Referenced by FxRequest::CopyCompletionParams(), and FxRequestContext::InitCompletionParams().

◆ WDF_REQUEST_FORWARD_OPTIONS_INIT()

FORCEINLINE VOID WDF_REQUEST_FORWARD_OPTIONS_INIT ( _Out_ PWDF_REQUEST_FORWARD_OPTIONS  ForwardOptions)

Definition at line 453 of file wdfrequest.h.

456 {
458 
461 }
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE _In_ PWDF_REQUEST_FORWARD_OPTIONS ForwardOptions
Definition: wdfrequest.h:1731
struct _WDF_REQUEST_FORWARD_OPTIONS WDF_REQUEST_FORWARD_OPTIONS
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262

◆ WDF_REQUEST_PARAMETERS_INIT()

FORCEINLINE VOID WDF_REQUEST_PARAMETERS_INIT ( _Out_ PWDF_REQUEST_PARAMETERS  Parameters)

Definition at line 211 of file wdfrequest.h.

214 {
216 
217  Parameters->Size = sizeof(WDF_REQUEST_PARAMETERS);
218 }
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfio.h:863
struct _WDF_REQUEST_PARAMETERS WDF_REQUEST_PARAMETERS
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262

Referenced by DeviceEvtIoInCallerContext(), ReadWriteWorkItemRoutine(), RequestCompletion(), RequestHandleQueryPropertyDeviceUniqueId(), RequestHandleQueryPropertyWriteCache(), RequestIsIoctlBlockedByExclusiveAccess(), RequestSynchronizeProcessWithSerialQueue(), SequentialQueueEvtIoDeviceControl(), and SequentialQueueEvtIoReadWrite().

◆ WDF_REQUEST_REUSE_PARAMS_INIT()

FORCEINLINE VOID WDF_REQUEST_REUSE_PARAMS_INIT ( _Out_ PWDF_REQUEST_REUSE_PARAMS  Params,
_In_ ULONG  Flags,
_In_ NTSTATUS  Status 
)

Definition at line 364 of file wdfrequest.h.

369 {
371 
372  Params->Size = sizeof(WDF_REQUEST_REUSE_PARAMS);
373  Params->Flags = Flags;
374  Params->Status = Status;
375 }
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
Definition: wdfrequest.h:306
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
struct _WDF_REQUEST_REUSE_PARAMS WDF_REQUEST_REUSE_PARAMS
_In_ WDFREQUEST _In_ NTSTATUS Status
Definition: wdfrequest.h:982
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262

Referenced by _IRQL_requires_max_(), DeviceReleaseQueueCompletion(), FxUsbPipeContinuousReader::FormatRepeater(), and ScratchBuffer_ResetItems().

◆ WDF_REQUEST_REUSE_PARAMS_SET_NEW_IRP()

FORCEINLINE VOID WDF_REQUEST_REUSE_PARAMS_SET_NEW_IRP ( _Inout_ PWDF_REQUEST_REUSE_PARAMS  Params,
_In_ PIRP  NewIrp 
)

Definition at line 379 of file wdfrequest.h.

383 {
385  Params->NewIrp = NewIrp;
386 }
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
Definition: wdfrequest.h:306

◆ WDF_REQUEST_SEND_OPTIONS_INIT()

FORCEINLINE VOID WDF_REQUEST_SEND_OPTIONS_INIT ( _Out_ PWDF_REQUEST_SEND_OPTIONS  Options,
_In_ ULONG  Flags 
)

Definition at line 409 of file wdfrequest.h.

413 {
415  Options->Size = sizeof(WDF_REQUEST_SEND_OPTIONS);
416  Options->Flags = Flags;
417 }
struct _WDF_REQUEST_SEND_OPTIONS WDF_REQUEST_SEND_OPTIONS
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3531
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262

Referenced by FxUsbDevice::Deconfig(), FxUsbDevice::GetPortStatus(), FxUsbDevice::GetString(), FxUsbDevice::InitDevice(), RequestSend(), FxUsbDevice::SelectConfig(), FxUsbInterface::SelectSetting(), FxUsbDevice::SendSyncRequest(), FxUsbDevice::SendSyncUmUrb(), and FxIoTarget::SubmitSyncRequestIgnoreTargetState().

◆ WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT()

FORCEINLINE VOID WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT ( _Inout_ PWDF_REQUEST_SEND_OPTIONS  Options,
_In_ LONGLONG  Timeout 
)

Definition at line 421 of file wdfrequest.h.

425 {
427  Options->Timeout = Timeout;
428 }
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3531
static ULONG Timeout
Definition: ping.c:61

Referenced by FxUsbDevice::GetString(), FxUsbDevice::InitDevice(), FxUsbDevice::SelectConfig(), FxUsbInterface::SelectSetting(), FxUsbDevice::SendSyncRequest(), and FxUsbDevice::SendSyncUmUrb().

◆ WdfRequestSend()

_Must_inspect_result_ FORCEINLINE BOOLEAN WdfRequestSend ( _In_ WDFREQUEST  Request,
_In_ WDFIOTARGET  Target,
_In_opt_ PWDF_REQUEST_SEND_OPTIONS  Options 
)

Definition at line 677 of file wdfrequest.h.

685 {
687 }
_Must_inspect_result_ WDFAPI BOOLEAN(STDCALL * PFN_WDFREQUESTSEND)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ WDFIOTARGET Target, _In_opt_ PWDF_REQUEST_SEND_OPTIONS Options)
Definition: wdfrequest.h:662
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3531
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:478

Referenced by RequestSend().