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)
232EVT_WDF_IO_QUEUE_IO_DEFAULT(
248EVT_WDF_IO_QUEUE_IO_STOP(
265EVT_WDF_IO_QUEUE_IO_RESUME(
280EVT_WDF_IO_QUEUE_IO_READ(
297EVT_WDF_IO_QUEUE_IO_WRITE(
314EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL(
335EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL(
357EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE(
373EVT_WDF_IO_QUEUE_STATE(
435 Config->DispatchType = DispatchType;
437 Config->Settings.Parallel.NumberOfPresentedRequests = (
ULONG)-1;
453 Config->DispatchType = DispatchType;
455 Config->Settings.Parallel.NumberOfPresentedRequests = (
ULONG)-1;
478EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST(
493EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES(
508EVT_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS(
564 Policy->TotalForwardProgressRequests = TotalForwardProgressRequests;
580 Policy->TotalForwardProgressRequests = TotalForwardProgressRequests;
582 Policy->ForwardProgressReservePolicySettings.Policy.ExaminePolicy.EvtIoWdmIrpForForwardProgress =
583 EvtIoWdmIrpForForwardProgress;
596 Policy->TotalForwardProgressRequests = TotalForwardProgressRequests;
609(
STDCALL *PFN_WDFIOQUEUECREATE)(
647(
STDCALL *PFN_WDFIOQUEUEGETSTATE)(
742(
STDCALL *PFN_WDFIOQUEUESTOPSYNCHRONOUSLY)(
752WdfIoQueueStopSynchronously(
767(
STDCALL *PFN_WDFIOQUEUEGETDEVICE)(
793(
STDCALL *PFN_WDFIOQUEUERETRIEVENEXTREQUEST)(
806WdfIoQueueRetrieveNextRequest(
824(
STDCALL *PFN_WDFIOQUEUERETRIEVEREQUESTBYFILEOBJECT)(
839WdfIoQueueRetrieveRequestByFileObject(
859(
STDCALL *PFN_WDFIOQUEUEFINDREQUEST)(
878WdfIoQueueFindRequest(
902(
STDCALL *PFN_WDFIOQUEUERETRIEVEFOUNDREQUEST)(
917WdfIoQueueRetrieveFoundRequest(
936(
STDCALL *PFN_WDFIOQUEUEDRAINSYNCHRONOUSLY)(
946WdfIoQueueDrainSynchronously(
998(
STDCALL *PFN_WDFIOQUEUEPURGESYNCHRONOUSLY)(
1008WdfIoQueuePurgeSynchronously(
1023(
STDCALL *PFN_WDFIOQUEUEPURGE)(
1061(
STDCALL *PFN_WDFIOQUEUEREADYNOTIFY)(
1076WdfIoQueueReadyNotify(
1096(
STDCALL *PFN_WDFIOQUEUEASSIGNFORWARDPROGRESSPOLICY)(
1109WdfIoQueueAssignForwardProgressPolicy(
1126(
STDCALL *PFN_WDFIOQUEUESTOPANDPURGE)(
1142WdfIoQueueStopAndPurge(
1163(
STDCALL *PFN_WDFIOQUEUESTOPANDPURGESYNCHRONOUSLY)(
1173WdfIoQueueStopAndPurgeSynchronously(
#define _IRQL_requires_same_
#define _Must_inspect_result_
#define _Function_class_(n)
_In_ ULONG _In_ ULONG _In_ ULONG Length
PFN_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS EvtIoWdmIrpForForwardProgress
union _WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY_SETTINGS::@3921 Policy
struct _WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY_SETTINGS::@3921::@3922 ExaminePolicy
union _WDF_IO_QUEUE_CONFIG::@3919 Settings
ULONG NumberOfPresentedRequests
PFN_WDF_IO_QUEUE_IO_DEFAULT EvtIoDefault
PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL EvtIoDeviceControl
WDF_IO_QUEUE_DISPATCH_TYPE DispatchType
PFN_WDF_IO_QUEUE_IO_STOP EvtIoStop
BOOLEAN AllowZeroLengthRequests
PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL EvtIoInternalDeviceControl
struct _WDF_IO_QUEUE_CONFIG::@3919::@3920 Parallel
WDF_TRI_STATE PowerManaged
PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE EvtIoCanceledOnQueue
PFN_WDF_IO_QUEUE_IO_READ EvtIoRead
PFN_WDF_IO_QUEUE_IO_WRITE EvtIoWrite
PFN_WDF_IO_QUEUE_IO_RESUME EvtIoResume
ULONG TotalForwardProgressRequests
WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY ForwardProgressReservedPolicy
PFN_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST EvtIoAllocateResourcesForReservedRequest
PFN_WDF_IO_ALLOCATE_REQUEST_RESOURCES EvtIoAllocateRequestResources
WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY_SETTINGS ForwardProgressReservePolicySettings
#define RtlZeroMemory(Destination, Length)
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
PWDF_DRIVER_GLOBALS WdfDriverGlobals
@ WdfIoQueueDrainSynchronouslyTableIndex
@ WdfIoQueueStopTableIndex
@ WdfIoQueueGetStateTableIndex
@ WdfIoQueueFindRequestTableIndex
@ WdfIoQueueDrainTableIndex
@ WdfIoQueuePurgeTableIndex
@ WdfIoQueueStopAndPurgeSynchronouslyTableIndex
@ WdfIoQueuePurgeSynchronouslyTableIndex
@ WdfIoQueueRetrieveFoundRequestTableIndex
@ WdfIoQueueAssignForwardProgressPolicyTableIndex
@ WdfIoQueueRetrieveNextRequestTableIndex
@ WdfIoQueueCreateTableIndex
@ WdfIoQueueGetDeviceTableIndex
@ WdfIoQueueStopSynchronouslyTableIndex
@ WdfIoQueueStopAndPurgeTableIndex
@ WdfIoQueueRetrieveRequestByFileObjectTableIndex
@ WdfIoQueueReadyNotifyTableIndex
@ WdfIoQueueStartTableIndex
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY Policy
_WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY
@ WdfIoForwardProgressReservedPolicyPagingIO
@ WdfIoForwardProgressReservedPolicyAlwaysUseReservedRequest
@ WdfIoForwardProgressReservedPolicyUseExamine
@ WdfIoForwardProgressInvalidPolicy
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
struct _WDF_IO_QUEUE_CONFIG * PWDF_IO_QUEUE_CONFIG
FORCEINLINE BOOLEAN WDF_IO_QUEUE_IDLE(_In_ WDF_IO_QUEUE_STATE State)
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST FoundRequest
EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL * PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL
struct _WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY_SETTINGS WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY_SETTINGS
EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE * PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE
_Must_inspect_result_ _In_ WDFDEVICE Device
struct _WDF_IO_QUEUE_CONFIG WDF_IO_QUEUE_CONFIG
_WDF_IO_FORWARD_PROGRESS_ACTION
@ WdfIoForwardProgressActionUseReservedRequest
@ WdfIoForwardProgressActionInvalid
@ WdfIoForwardProgressActionFailRequest
_Must_inspect_result_ _In_ WDFQUEUE _Out_ WDFREQUEST * OutRequest
_In_ WDFQUEUE _Out_opt_ PULONG QueueRequests
EVT_WDF_IO_QUEUE_STATE * PFN_WDF_IO_QUEUE_STATE
EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL * PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL
_In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE PurgeComplete
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
EVT_WDF_IO_QUEUE_IO_READ * PFN_WDF_IO_QUEUE_IO_READ
EVT_WDF_IO_QUEUE_IO_WRITE * PFN_WDF_IO_QUEUE_IO_WRITE
_Must_inspect_result_ _In_ WDFQUEUE _In_ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY ForwardProgressPolicy
EVT_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS * PFN_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS
_In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE StopComplete
_In_ WDFQUEUE _Out_opt_ PULONG _Out_opt_ PULONG DriverRequests
struct _WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY * PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY
FORCEINLINE BOOLEAN WDF_IO_QUEUE_STOPPED(_In_ WDF_IO_QUEUE_STATE State)
EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST * PFN_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST
EVT_WDF_IO_QUEUE_IO_RESUME * PFN_WDF_IO_QUEUE_IO_RESUME
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES QueueAttributes
#define WDF_EXTERN_C_START
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_DEFAULT_INIT(_Out_ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY Policy, _In_ ULONG TotalForwardProgressRequests)
FORCEINLINE BOOLEAN WDF_IO_QUEUE_PURGED(_In_ WDF_IO_QUEUE_STATE State)
_Must_inspect_result_ _In_ WDFQUEUE _In_ WDFFILEOBJECT FileObject
EVT_WDF_IO_QUEUE_IO_STOP * PFN_WDF_IO_QUEUE_IO_STOP
_In_ WDFQUEUE _When_(Context !=0, _In_) _When_(Context
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFQUEUE * Queue
@ WdfIoQueueDriverNoRequests
@ WdfIoQueueAcceptRequests
@ WdfIoQueueDispatchRequests
struct _WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY
FORCEINLINE BOOLEAN WDF_IO_QUEUE_READY(_In_ WDF_IO_QUEUE_STATE State)
_Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFIOQUEUECREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
FORCEINLINE VOID WDF_IO_QUEUE_CONFIG_INIT(_Out_ PWDF_IO_QUEUE_CONFIG Config, _In_ WDF_IO_QUEUE_DISPATCH_TYPE DispatchType)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG Config
_In_ WDFREQUEST _In_ ULONG ActionFlags
FORCEINLINE VOID WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE(_Out_ PWDF_IO_QUEUE_CONFIG Config, _In_ WDF_IO_QUEUE_DISPATCH_TYPE DispatchType)
_WDF_IO_QUEUE_DISPATCH_TYPE
@ WdfIoQueueDispatchSequential
@ WdfIoQueueDispatchInvalid
@ WdfIoQueueDispatchParallel
@ WdfIoQueueDispatchManual
enum _WDF_IO_FORWARD_PROGRESS_ACTION WDF_IO_FORWARD_PROGRESS_ACTION
WDF_EXTERN_C_START enum _WDF_IO_QUEUE_DISPATCH_TYPE WDF_IO_QUEUE_DISPATCH_TYPE
_In_ WDFREQUEST _In_ size_t OutputBufferLength
enum _WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY
FORCEINLINE BOOLEAN WDF_IO_QUEUE_DRAINED(_In_ WDF_IO_QUEUE_STATE State)
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE QueueReady
EVT_WDF_IO_QUEUE_IO_DEFAULT * PFN_WDF_IO_QUEUE_IO_DEFAULT
enum _WDF_IO_QUEUE_STATE WDF_IO_QUEUE_STATE
FORCEINLINE VOID WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_PAGINGIO_INIT(_Out_ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY Policy, _In_ ULONG TotalForwardProgressRequests)
_In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE StopAndPurgeComplete
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES * PFN_WDF_IO_ALLOCATE_REQUEST_RESOURCES
_In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE DrainComplete
enum _WDF_TRI_STATE WDF_TRI_STATE