36 #define WDF_EXTERN_C extern "C"
37 #define WDF_EXTERN_C_START extern "C" {
38 #define WDF_EXTERN_C_END }
41 #define WDF_EXTERN_C_START
42 #define WDF_EXTERN_C_END
50#if (NTDDI_VERSION >= NTDDI_WIN2K)
125EVT_WDF_REQUEST_CANCEL(
302EVT_WDF_REQUEST_COMPLETION_ROUTINE(
474(
STDCALL *PFN_WDFREQUESTCREATE)(
509(
STDCALL *PFN_WDFREQUESTCREATEFROMIRP)(
526WdfRequestCreateFromIrp(
577(
STDCALL *PFN_WDFREQUESTCHANGETARGET)(
590WdfRequestChangeTarget(
607(
STDCALL *PFN_WDFREQUESTFORMATREQUESTUSINGCURRENTTYPE)(
617WdfRequestFormatRequestUsingCurrentType(
632(
STDCALL *PFN_WDFREQUESTWDMFORMATUSINGSTACKLOCATION)(
644WdfRequestWdmFormatUsingStackLocation(
697(
STDCALL *PFN_WDFREQUESTGETSTATUS)(
723(
STDCALL *PFN_WDFREQUESTMARKCANCELABLE)(
735WdfRequestMarkCancelable(
753(
STDCALL *PFN_WDFREQUESTMARKCANCELABLEEX)(
766WdfRequestMarkCancelableEx(
784(
STDCALL *PFN_WDFREQUESTUNMARKCANCELABLE)(
795WdfRequestUnmarkCancelable(
811(
STDCALL *PFN_WDFREQUESTISCANCELED)(
837(
STDCALL *PFN_WDFREQUESTCANCELSENTREQUEST)(
847WdfRequestCancelSentRequest(
863(
STDCALL *PFN_WDFREQUESTISFROM32BITPROCESS)(
874WdfRequestIsFrom32BitProcess(
889(
STDCALL *PFN_WDFREQUESTSETCOMPLETIONROUTINE)(
903WdfRequestSetCompletionRoutine(
922(
STDCALL *PFN_WDFREQUESTGETCOMPLETIONPARAMS)(
934WdfRequestGetCompletionParams(
952(
STDCALL *PFN_WDFREQUESTALLOCATETIMER)(
963WdfRequestAllocateTimer(
978(
STDCALL *PFN_WDFREQUESTCOMPLETE)(
1007(
STDCALL *PFN_WDFREQUESTCOMPLETEWITHPRIORITYBOOST)(
1021WdfRequestCompleteWithPriorityBoost(
1040(
STDCALL *PFN_WDFREQUESTCOMPLETEWITHINFORMATION)(
1054WdfRequestCompleteWithInformation(
1073(
STDCALL *PFN_WDFREQUESTGETPARAMETERS)(
1085WdfRequestGetParameters(
1103(
STDCALL *PFN_WDFREQUESTRETRIEVEINPUTMEMORY)(
1116WdfRequestRetrieveInputMemory(
1134(
STDCALL *PFN_WDFREQUESTRETRIEVEOUTPUTMEMORY)(
1147WdfRequestRetrieveOutputMemory(
1165(
STDCALL *PFN_WDFREQUESTRETRIEVEINPUTBUFFER)(
1182WdfRequestRetrieveInputBuffer(
1204(
STDCALL *PFN_WDFREQUESTRETRIEVEOUTPUTBUFFER)(
1221WdfRequestRetrieveOutputBuffer(
1243(
STDCALL *PFN_WDFREQUESTRETRIEVEINPUTWDMMDL)(
1256WdfRequestRetrieveInputWdmMdl(
1274(
STDCALL *PFN_WDFREQUESTRETRIEVEOUTPUTWDMMDL)(
1287WdfRequestRetrieveOutputWdmMdl(
1305(
STDCALL *PFN_WDFREQUESTRETRIEVEUNSAFEUSERINPUTBUFFER)(
1322WdfRequestRetrieveUnsafeUserInputBuffer(
1344(
STDCALL *PFN_WDFREQUESTRETRIEVEUNSAFEUSEROUTPUTBUFFER)(
1361WdfRequestRetrieveUnsafeUserOutputBuffer(
1382(
STDCALL *PFN_WDFREQUESTSETINFORMATION)(
1394WdfRequestSetInformation(
1411(
STDCALL *PFN_WDFREQUESTGETINFORMATION)(
1421WdfRequestGetInformation(
1436(
STDCALL *PFN_WDFREQUESTGETFILEOBJECT)(
1446WdfRequestGetFileObject(
1462(
STDCALL *PFN_WDFREQUESTPROBEANDLOCKUSERBUFFERFORREAD)(
1479WdfRequestProbeAndLockUserBufferForRead(
1501(
STDCALL *PFN_WDFREQUESTPROBEANDLOCKUSERBUFFERFORWRITE)(
1518WdfRequestProbeAndLockUserBufferForWrite(
1539(
STDCALL *PFN_WDFREQUESTGETREQUESTORMODE)(
1549WdfRequestGetRequestorMode(
1565(
STDCALL *PFN_WDFREQUESTFORWARDTOIOQUEUE)(
1578WdfRequestForwardToIoQueue(
1595(
STDCALL *PFN_WDFREQUESTGETIOQUEUE)(
1605WdfRequestGetIoQueue(
1621(
STDCALL *PFN_WDFREQUESTREQUEUE)(
1647(
STDCALL *PFN_WDFREQUESTSTOPACKNOWLEDGE)(
1659WdfRequestStopAcknowledge(
1676(
STDCALL *PFN_WDFREQUESTWDMGETIRP)(
1701(
STDCALL *PFN_WDFREQUESTISRESERVED)(
1711WdfRequestIsReserved(
1727(
STDCALL *PFN_WDFREQUESTFORWARDTOPARENTDEVICEIOQUEUE)(
1742WdfRequestForwardToParentDeviceIoQueue(
#define _IRQL_requires_same_
#define _Outptr_result_bytebuffer_maybenull_(size)
#define _Outptr_result_bytebuffer_(s)
#define _Must_inspect_result_
#define _Function_class_(n)
_In_ ULONG _In_ ULONG _In_ ULONG Length
struct _WDF_REQUEST_COMPLETION_PARAMS::@3892::@3894 Read
struct _WDF_REQUEST_COMPLETION_PARAMS::@3892::@3895::@3898 Input
struct _WDF_REQUEST_COMPLETION_PARAMS::@3892::@3895::@3899 Output
struct _WDF_REQUEST_COMPLETION_PARAMS::@3892::@3896 Others
struct _WDF_REQUEST_COMPLETION_PARAMS::@3892::@3893 Write
union _WDF_REQUEST_COMPLETION_PARAMS::@3892 Parameters
union _WDF_REQUEST_COMPLETION_PARAMS::@3892::@3896::@3903 Argument4
struct _WDF_REQUEST_COMPLETION_PARAMS::@3892::@3895 Ioctl
union _WDF_REQUEST_COMPLETION_PARAMS::@3892::@3896::@3902 Argument3
union _WDF_REQUEST_COMPLETION_PARAMS::@3892::@3896::@3900 Argument1
PWDF_USB_REQUEST_COMPLETION_PARAMS Completion
struct _WDF_REQUEST_COMPLETION_PARAMS::@3892::@3897 Usb
union _WDF_REQUEST_COMPLETION_PARAMS::@3892::@3896::@3901 Argument2
struct _WDF_REQUEST_PARAMETERS::@3886::@3887 Create
size_t OutputBufferLength
union _WDF_REQUEST_PARAMETERS::@3886 Parameters
USHORT POINTER_ALIGNMENT FileAttributes
struct _WDF_REQUEST_PARAMETERS::@3886::@3888 Read
ULONG POINTER_ALIGNMENT IoControlCode
struct _WDF_REQUEST_PARAMETERS::@3886::@3891 Others
ULONG POINTER_ALIGNMENT Key
struct _WDF_REQUEST_PARAMETERS::@3886::@3889 Write
struct _WDF_REQUEST_PARAMETERS::@3886::@3890 DeviceIoControl
size_t POINTER_ALIGNMENT InputBufferLength
PIO_SECURITY_CONTEXT SecurityContext
ULONG POINTER_ALIGNMENT EaLength
#define RtlZeroMemory(Destination, Length)
_In_ PWDFDEVICE_INIT _In_ PWDF_OBJECT_ATTRIBUTES RequestAttributes
enum _WDF_REQUEST_TYPE WDF_REQUEST_TYPE
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
PWDF_DRIVER_GLOBALS WdfDriverGlobals
@ WdfRequestUnmarkCancelableTableIndex
@ WdfRequestRetrieveOutputBufferTableIndex
@ WdfRequestGetParametersTableIndex
@ WdfRequestChangeTargetTableIndex
@ WdfRequestProbeAndLockUserBufferForReadTableIndex
@ WdfRequestRequeueTableIndex
@ WdfRequestRetrieveInputWdmMdlTableIndex
@ WdfRequestMarkCancelableExTableIndex
@ WdfRequestWdmFormatUsingStackLocationTableIndex
@ WdfRequestGetIoQueueTableIndex
@ WdfRequestSetCompletionRoutineTableIndex
@ WdfRequestSendTableIndex
@ WdfRequestIsReservedTableIndex
@ WdfRequestGetInformationTableIndex
@ WdfRequestMarkCancelableTableIndex
@ WdfRequestGetFileObjectTableIndex
@ WdfRequestAllocateTimerTableIndex
@ WdfRequestCompleteTableIndex
@ WdfRequestRetrieveUnsafeUserOutputBufferTableIndex
@ WdfRequestGetStatusTableIndex
@ WdfRequestCreateTableIndex
@ WdfRequestCompleteWithPriorityBoostTableIndex
@ WdfRequestRetrieveUnsafeUserInputBufferTableIndex
@ WdfRequestCompleteWithInformationTableIndex
@ WdfRequestGetRequestorModeTableIndex
@ WdfRequestProbeAndLockUserBufferForWriteTableIndex
@ WdfRequestRetrieveInputMemoryTableIndex
@ WdfRequestRetrieveInputBufferTableIndex
@ WdfRequestFormatRequestUsingCurrentTypeTableIndex
@ WdfRequestForwardToParentDeviceIoQueueTableIndex
@ WdfRequestCreateFromIrpTableIndex
@ WdfRequestGetCompletionParamsTableIndex
@ WdfRequestRetrieveOutputMemoryTableIndex
@ WdfRequestIsFrom32BitProcessTableIndex
@ WdfRequestRetrieveOutputWdmMdlTableIndex
@ WdfRequestWdmGetIrpTableIndex
@ WdfRequestIsCanceledTableIndex
@ WdfRequestCancelSentRequestTableIndex
@ WdfRequestReuseTableIndex
@ WdfRequestStopAcknowledgeTableIndex
@ WdfRequestSetInformationTableIndex
@ WdfRequestForwardToIoQueueTableIndex
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIOTARGET * IoTarget
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
_Must_inspect_result_ FORCEINLINE BOOLEAN WdfRequestSend(_In_ WDFREQUEST Request, _In_ WDFIOTARGET Target, _In_opt_ PWDF_REQUEST_SEND_OPTIONS Options)
_In_ WDFREQUEST _In_ NTSTATUS _In_ CCHAR PriorityBoost
_In_ WDFREQUEST _In_ NTSTATUS Status
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_maybenull_ Length PVOID * OutputBuffer
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t MinimumRequiredSize
_In_ WDFREQUEST _In_ PWDF_REQUEST_REUSE_PARAMS ReuseParams
FORCEINLINE VOID WDF_REQUEST_COMPLETION_PARAMS_INIT(_Out_ PWDF_REQUEST_COMPLETION_PARAMS Params)
FORCEINLINE VOID WDF_REQUEST_SEND_OPTIONS_INIT(_Out_ PWDF_REQUEST_SEND_OPTIONS Options, _In_ ULONG Flags)
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE _In_ PWDF_REQUEST_FORWARD_OPTIONS ForwardOptions
_WDF_REQUEST_SEND_OPTIONS_FLAGS
@ WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT
@ WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
@ WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE
@ WDF_REQUEST_SEND_OPTION_TIMEOUT
@ WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE
@ WDF_REQUEST_SEND_OPTION_SYNCHRONOUS
_Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFREQUESTCREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
struct _WDF_REQUEST_REUSE_PARAMS WDF_REQUEST_REUSE_PARAMS
_Must_inspect_result_ _In_ WDFREQUEST _Outptr_ PMDL * Mdl
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_ Length PVOID _Out_opt_ size_t * Length
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_ Length PVOID * Buffer
FORCEINLINE VOID WDF_REQUEST_REUSE_PARAMS_SET_NEW_IRP(_Inout_ PWDF_REQUEST_REUSE_PARAMS Params, _In_ PIRP NewIrp)
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Out_ WDFMEMORY * MemoryObject
WDF_EXTERN_C_START enum _WDF_REQUEST_REUSE_FLAGS WDF_REQUEST_REUSE_FLAGS
@ WDF_REQUEST_REUSE_SET_NEW_IRP
@ WDF_REQUEST_REUSE_NO_FLAGS
FORCEINLINE VOID WDF_REQUEST_PARAMETERS_INIT(_Out_ PWDF_REQUEST_PARAMETERS Parameters)
_In_ WDFREQUEST _In_ BOOLEAN Requeue
FORCEINLINE VOID WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(_Inout_ PWDF_REQUEST_SEND_OPTIONS Options, _In_ LONGLONG Timeout)
EVT_WDF_REQUEST_COMPLETION_ROUTINE * PFN_WDF_REQUEST_COMPLETION_ROUTINE
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET IoTarget
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
#define WDF_EXTERN_C_START
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
_In_ WDFREQUEST _Out_ PWDF_REQUEST_PARAMETERS Parameters
_WDF_REQUEST_FORWARD_OPTIONS_FLAGS
@ WDF_REQUEST_FORWARD_OPTION_SEND_AND_FORGET
_Must_inspect_result_ _In_ WDFREQUEST _Out_ WDFMEMORY * Memory
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES RequestAttributes
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PIRP _In_ BOOLEAN RequestFreesIrp
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
_WDF_REQUEST_STOP_ACTION_FLAGS
@ WdfRequestStopRequestCancelable
@ WdfRequestStopActionInvalid
@ WdfRequestStopActionSuspend
@ WdfRequestStopActionPurge
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PIRP Irp
struct _WDF_REQUEST_FORWARD_OPTIONS * PWDF_REQUEST_FORWARD_OPTIONS
_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)
enum _WDF_REQUEST_SEND_OPTIONS_FLAGS WDF_REQUEST_SEND_OPTIONS_FLAGS
_Must_inspect_result_ _In_ WDFREQUEST _In_reads_bytes_(Length) PVOID Buffer
struct _WDF_REQUEST_SEND_OPTIONS * PWDF_REQUEST_SEND_OPTIONS
struct _WDF_REQUEST_COMPLETION_PARAMS * PWDF_REQUEST_COMPLETION_PARAMS
EVT_WDF_REQUEST_CANCEL * PFN_WDF_REQUEST_CANCEL
struct _WDF_REQUEST_FORWARD_OPTIONS WDF_REQUEST_FORWARD_OPTIONS
enum _WDF_REQUEST_STOP_ACTION_FLAGS WDF_REQUEST_STOP_ACTION_FLAGS
struct _WDF_REQUEST_SEND_OPTIONS WDF_REQUEST_SEND_OPTIONS
struct _WDF_REQUEST_REUSE_PARAMS * PWDF_REQUEST_REUSE_PARAMS
FORCEINLINE VOID WDF_REQUEST_REUSE_PARAMS_INIT(_Out_ PWDF_REQUEST_REUSE_PARAMS Params, _In_ ULONG Flags, _In_ NTSTATUS Status)
struct _WDF_REQUEST_COMPLETION_PARAMS WDF_REQUEST_COMPLETION_PARAMS
struct _WDF_REQUEST_PARAMETERS WDF_REQUEST_PARAMETERS
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_maybenull_ Length PVOID * InputBuffer
FORCEINLINE VOID WDF_REQUEST_FORWARD_OPTIONS_INIT(_Out_ PWDF_REQUEST_FORWARD_OPTIONS ForwardOptions)
_In_ WDFREQUEST _In_ PFN_WDF_REQUEST_CANCEL EvtRequestCancel
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t MinimumRequiredLength
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE DestinationQueue
enum _WDF_REQUEST_FORWARD_OPTIONS_FLAGS WDF_REQUEST_FORWARD_OPTIONS_FLAGS
struct _WDF_USB_REQUEST_COMPLETION_PARAMS * PWDF_USB_REQUEST_COMPLETION_PARAMS
struct _WDF_REQUEST_PARAMETERS * PWDF_REQUEST_PARAMETERS
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE ParentDeviceQueue
#define POINTER_ALIGNMENT
_Must_inspect_result_ _In_ ULONG Flags