ReactOS  0.4.15-dev-2700-g4b4ffa9
fxdynamics.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _WDFFUNCTIONS
 
struct  _WDFVERSION
 

Typedefs

typedef WDFAPI NTSTATUS(STDCALLPFN_ROSWDFUNIMPLEMENTED) (VOID)
 
typedef struct _WDFFUNCTIONS WDFFUNCTIONS
 
typedef struct _WDFFUNCTIONSPWDFFUNCTIONS
 
typedef struct _WDFVERSION WDFVERSION
 
typedef struct _WDFVERSIONPWDFVERSION
 

Functions

WDFAPI NTSTATUS STDCALL WdfApiNotImplemented ()
 
_Must_inspect_result_ _IRQL_requires_max_ (PASSIVE_LEVEL) WDFAPI NTSTATUS STDCALL WDFEXPORT(WdfChildListCreate)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
 _IRQL_requires_max_ (DISPATCH_LEVEL) WDFAPI WDFDEVICE STDCALL WDFEXPORT(WdfChildListGetDevice)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _When_ (Length==0, __drv_reportError(Length cannot be zero)) size_t Length
 
_Must_inspect_result_ _In_ PWDFCXDEVICE_INIT _In_ PFN_WDFCXDEVICE_WDM_IRP_PREPROCESS _In_ UCHAR _When_ (NumMinorFunctions > 0, _In_reads_bytes_(NumMinorFunctions)) _When_(NumMinorFunctions
 
WDFAPI VOID STDCALL WDFEXPORT() WdfCxVerifierKeBugCheck (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_opt_ WDFOBJECT Object, _In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_writes_bytes_all_ (BufferLength) PVOID PropertyBuffer
 
_Must_inspect_result_ _When_ (WaitForD0==0, _IRQL_requires_max_(DISPATCH_LEVEL)) _When_(WaitForD0 !=0
 
_Must_inspect_result_ _IRQL_requires_max_ (APC_LEVEL) WDFAPI NTSTATUS STDCALL WDFEXPORT(WdfDeviceQueryPropertyEx)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
_In_ WDFDMAENABLER _In_ _When_ (MaximumFragments==0, __drv_reportError(MaximumFragments cannot be zero)) size_t MaximumFragments)
 
 _Success_ (TRUE) _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS STDCALL WDFEXPORT(WdfDmaTransactionRelease)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
 _IRQL_requires_max_ (HIGH_LEVEL) WDFAPI BOOLEAN STDCALL WDFEXPORT(WdfDpcEnqueue)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
 _When_ (Wait==__true, _IRQL_requires_max_(PASSIVE_LEVEL)) _When_(Wait
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_writes_bytes_all_opt_ (BufferLength) PVOID PropertyBuffer
 
WDFAPI BOOLEAN STDCALL WDFEXPORT() WdfInterruptQueueDpcForIsr (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
 
WDFAPI BOOLEAN STDCALL WDFEXPORT() WdfInterruptQueueWorkItemForIsr (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
 
 _IRQL_requires_max_ (DISPATCH_LEVEL+1) WDFAPI VOID STDCALL WDFEXPORT(WdfInterruptAcquireLock)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
_In_ _Requires_lock_not_held_ (_Curr_) _Acquires_lock_(_Curr_) WDFINTERRUPT Interrupt)
 
_In_ _Requires_lock_held_ (_Curr_) _Releases_lock_(_Curr_) WDFINTERRUPT Interrupt)
 
_Must_inspect_result_ WDFAPI PKINTERRUPT STDCALL WDFEXPORT() WdfInterruptWdmGetInterrupt (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
 
WDFAPI WDFDEVICE STDCALL WDFEXPORT() WdfInterruptGetDevice (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
 
_Must_inspect_result_ _Post_satisfies_ (return==1||return==0) _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN STDCALL WDFEXPORT(WdfInterruptTryToAcquireLock)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
_Must_inspect_result_ _In_ _Acquires_lock_ (_Curr_)) WDFINTERRUPT Interrupt)
 
_In_ WDFQUEUE _When_ (Context !=0, _In_) _When_(Context
 
_In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE _When_ (StopComplete !=0, _In_) _When_(StopComplete
 
 _When_ (Action==3, _IRQL_requires_max_(DISPATCH_LEVEL)) _When_(Action
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _When_ (BufferLength !=0, _Out_writes_bytes_to_opt_(BufferLength, *ResultLength)) _When_(BufferLength
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_opt_ PVOID _Deref_out_range_ (<=, BufferLength) PULONG ResultLength)
 
_Must_inspect_result_ _When_ (PoolType==1||PoolType==257, _IRQL_requires_max_(APC_LEVEL)) _When_(PoolType
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _When_ (BufferSize==0, __drv_reportError(BufferSize cannot be zero)) size_t BufferSize
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY _Outptr_opt_result_bytebuffer_ (BufferSize) PVOID *Buffer)
 
_Must_inspect_result_ _In_ WDFMEMORY _Pre_notnull_ _Pre_writable_byte_size_ (BufferSize) PVOID Buffer
 
_Must_inspect_result_ _In_ WDFMEMORY _In_ size_t _Out_writes_bytes_ (NumBytesToCopyTo) PVOID Buffer
 
_Must_inspect_result_ _In_ WDFMEMORY _In_ size_t _In_ _When_ (NumBytesToCopyTo==0, __drv_reportError(NumBytesToCopyTo cannot be zero)) size_t NumBytesToCopyTo)
 
_Must_inspect_result_ _In_ WDFMEMORY _In_ size_t _In_ PVOID _In_ _When_ (NumBytesToCopyFrom==0, __drv_reportError(NumBytesToCopyFrom cannot be zero)) size_t NumBytesToCopyFrom)
 
WDFAPI VOID STDCALL WDFEXPORT() WdfDriverMiniportUnload (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDRIVER Driver)
 
WDFAPI PVOID FASTCALL WDFEXPORT() WdfObjectGetTypedContextWorker (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Handle, _In_ PCWDF_OBJECT_CONTEXT_TYPE_INFO TypeInfo)
 
WDFAPI NTSTATUS STDCALL WDFEXPORT() WdfObjectAllocateContext (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Handle, _In_ PWDF_OBJECT_ATTRIBUTES ContextAttributes, _Outptr_opt_ PVOID *Context)
 
WDFAPI WDFOBJECT FASTCALL WDFEXPORT() WdfObjectContextGetObject (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PVOID ContextPointer)
 
WDFAPI VOID STDCALL WDFEXPORT() WdfObjectReferenceActual (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Handle, _In_opt_ PVOID Tag, _In_ LONG Line, _In_z_ PCHAR File)
 
WDFAPI VOID STDCALL WDFEXPORT() WdfObjectDereferenceActual (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Handle, _In_opt_ PVOID Tag, _In_ LONG Line, _In_z_ PCHAR File)
 
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID _In_ ULONG _Out_writes_bytes_ (QueryBufferLength) PVOID QueryBuffer)
 
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_writes_bytes_opt_ (ValueLength) PVOID Value
 
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _In_ ULONG _In_reads_ (ValueLength) PVOID Value)
 
_Must_inspect_result_ WDFAPI BOOLEAN STDCALL WDFEXPORT() WdfRequestSend (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ WDFIOTARGET Target, _In_opt_ PWDF_REQUEST_SEND_OPTIONS Options)
 
_Must_inspect_result_ _In_ WDFREQUEST _In_reads_bytes_ (Length) PVOID Buffer
 
 _When_ (Timeout==NULL, _IRQL_requires_max_(PASSIVE_LEVEL)) _When_(Timeout !
 
 _Acquires_lock_ (Lock))) _When_(Timeout !
 
_Must_inspect_result_ WDFAPI NTSTATUS STDCALL WDFEXPORT() WdfWaitLockAcquire (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ _Requires_lock_not_held_(_Curr_) WDFWAITLOCK Lock, _In_opt_ PLONGLONG Timeout)
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_reads_ (_Inexpressible_("union bug in SAL")) PURB Urb)
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG _When_ (CapabilityBufferLength==0, _Out_opt_) _When_(CapabilityBufferLength !=0 &&ResultLength
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG _Out_writes_bytes_ (CapabilityBufferLength)) _When_(CapabilityBufferLength !=0 &&ResultLength !
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG _Out_writes_bytes_to_opt_ (CapabilityBufferLength, *ResultLength)) PVOID CapabilityBuffer
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG _Out_opt_ _When_ (ResultLength !=NULL, _Deref_out_range_(<=, CapabilityBufferLength)) PULONG ResultLength)
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY _Outptr_opt_result_bytebuffer_ (sizeof(URB)) PURB *Urb)
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ ULONG _Out_ WDFMEMORY _Outptr_opt_result_bytebuffer_ (GET_ISO_URB_SIZE(NumberOfIsochPackets)) PURB *Urb)
 
WDFAPI VOID STDCALL WDFEXPORT() WdfVerifierDbgBreakPoint (_In_ PWDF_DRIVER_GLOBALS DriverGlobals)
 
WDFAPI VOID STDCALL WDFEXPORT() WdfVerifierKeBugCheck (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
 
WDFAPI PVOID STDCALL WDFEXPORT() WdfGetTriageInfo (_In_ PWDF_DRIVER_GLOBALS DriverGlobals)
 
_Must_inspect_result_ _In_ WDFWMIINSTANCE _In_opt_ ULONG _In_reads_bytes_opt_ (EventDataSize) PVOID EventData)
 

Variables

_Must_inspect_result_ _In_ WDFDEVICE Device
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES ChildListAttributes
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFCHILDLIST * ChildList
 
_Must_inspect_result_ _In_ WDFCHILDLIST _Inout_ PWDF_CHILD_RETRIEVE_INFO RetrieveInfo
 
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
 
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER _Inout_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
 
_In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR Iterator
 
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES CollectionAttributes
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFCOLLECTION * Collection
 
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
 
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
 
_In_ WDFCOLLECTION _In_ ULONG Index
 
_Must_inspect_result_ _In_ WDFDMAENABLER DmaEnabler
 
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
 
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFCOMMONBUFFER * CommonBuffer
 
_Must_inspect_result_ _In_ WDFDRIVER Driver
 
_Must_inspect_result_ _In_ WDFDRIVER _In_ CONST UNICODE_STRINGSDDLString
 
_In_ PWDFDEVICE_INIT DeviceInit
 
_In_ PWDFDEVICE_INIT _In_ PFN_WDF_DEVICE_SHUTDOWN_NOTIFICATION Notification
 
_In_ PWDFDEVICE_INIT _In_ PFN_WDF_DEVICE_SHUTDOWN_NOTIFICATION _In_ UCHAR Flags
 
_Must_inspect_result_ _In_ PWDFCXDEVICE_INIT CxDeviceInit
 
_Must_inspect_result_ _In_ PWDFCXDEVICE_INIT _In_ PFN_WDFCXDEVICE_WDM_IRP_PREPROCESS EvtCxDeviceWdmIrpPreprocess
 
_Must_inspect_result_ _In_ PWDFCXDEVICE_INIT _In_ PFN_WDFCXDEVICE_WDM_IRP_PREPROCESS _In_ UCHAR MajorFunction
 
_Must_inspect_result_ _In_ PWDFCXDEVICE_INIT _In_ PFN_WDFCXDEVICE_WDM_IRP_PREPROCESS _In_ UCHAR _In_opt_ PUCHAR MinorFunctions
 
_Must_inspect_result_ _In_ PWDFCXDEVICE_INIT _In_ PFN_WDFCXDEVICE_WDM_IRP_PREPROCESS _In_ UCHAR _In_opt_ PUCHAR _In_ ULONG NumMinorFunctions
 
_In_ PWDFCXDEVICE_INIT _In_ PFN_WDF_IO_IN_CALLER_CONTEXT EvtIoInCallerContext
 
_In_ PWDFCXDEVICE_INIT _In_ PWDF_OBJECT_ATTRIBUTES RequestAttributes
 
_In_ PWDFCXDEVICE_INIT _In_ PWDFCX_FILEOBJECT_CONFIG CxFileObjectConfig
 
_In_ PWDFCXDEVICE_INIT _In_ PWDFCX_FILEOBJECT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES FileObjectAttributes
 
_In_ WDFDEVICE _Out_ PWDF_DEVICE_STATE DeviceState
 
_In_ PDEVICE_OBJECT DeviceObject
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP Irp
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFCONTEXT DispatchContext
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PDEVICE_OBJECT DependentDevice
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PDEVICE_OBJECT PhysicalDevice
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING MofResourceName
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_POWER_POLICY_IDLE_SETTINGS Settings
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG DeviceInstanceKeyType
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK _In_opt_ PWDF_OBJECT_ATTRIBUTES KeyAttributes
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFKEY * Key
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
 
_In_ WDFDEVICE _In_ WDF_SPECIAL_FILE_TYPE FileType
 
_In_ WDFDEVICE _In_ WDF_SPECIAL_FILE_TYPE _In_ BOOLEAN FileTypeIsSupported
 
_In_ WDFDEVICE _In_ ULONG DeviceCharacteristics
 
_In_ WDFDEVICE _In_ ULONG AlignmentRequirement
 
_In_ PWDFDEVICE_INIT _In_ PWDF_PNPPOWER_EVENT_CALLBACKS PnpPowerEventCallbacks
 
_In_ PWDFDEVICE_INIT _In_ PWDF_POWER_POLICY_EVENT_CALLBACKS PowerPolicyEventCallbacks
 
_In_ PWDFDEVICE_INIT _In_ BOOLEAN IsPowerPolicyOwner
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_PNP_STATE PnpState
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_PNP_STATE _In_ PFN_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION EvtDevicePnpStateChange
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_PNP_STATE _In_ PFN_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION _In_ ULONG CallbackTypes
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE _In_ PFN_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION EvtDevicePowerStateChange
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_POLICY_STATE PowerPolicyState
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_POLICY_STATE _In_ PFN_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION EvtDevicePowerPolicyStateChange
 
_In_ PWDFDEVICE_INIT _In_ BOOLEAN IsExclusive
 
_In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_IO_TYPE IoType
 
_In_ PWDFDEVICE_INIT _In_ DEVICE_TYPE DeviceType
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
 
_In_ PWDFDEVICE_INIT _In_ CONST GUIDDeviceClassGuid
 
_In_ PWDFDEVICE_INIT _In_ ULONG _In_ BOOLEAN OrInValues
 
_In_ PWDFDEVICE_INIT _In_ PWDF_FILEOBJECT_CONFIG FileObjectConfig
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PFN_WDFDEVICE_WDM_IRP_PREPROCESS EvtDeviceWdmIrpPreprocess
 
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
 
_Must_inspect_result_ _Inout_ PWDFDEVICE_INIT _In_opt_ PWDF_OBJECT_ATTRIBUTES DeviceAttributes
 
_In_ WDFDEVICE _In_ BOOLEAN Stoppable
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ CONST GUIDInterfaceClassGUID
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ CONST GUID _In_opt_ PCUNICODE_STRING ReferenceString
 
_In_ WDFDEVICE _In_ CONST GUID _In_opt_ PCUNICODE_STRING _In_ BOOLEAN IsInterfaceEnabled
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING SymbolicLinkName
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY * PropertyMemory
 
_In_ WDFDEVICE _In_ PWDF_DEVICE_PNP_CAPABILITIES PnpCapabilities
 
_In_ WDFDEVICE _In_ PWDF_DEVICE_POWER_CAPABILITIES PowerCapabilities
 
_In_ WDFDEVICE _In_ PPNP_BUS_INFORMATION BusInformation
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ NTSTATUS WaitWakeStatus
 
_In_ WDFDEVICE _In_ WDF_DEVICE_FAILED_ACTION FailedAction
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN WaitForD0
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID _In_ LONG Line
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID _In_ LONG _In_z_ PCHAR File
 
_In_ WDFDEVICE _In_ PFILE_OBJECT FileObject
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFQUEUE _In_ _Strict_type_match_ WDF_REQUEST_TYPE RequestType
 
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ WDFDRIVER _In_ UCHAR _In_ PFN_WDFDEVICE_WDM_IRP_DISPATCH EvtDeviceWdmIrpDisptach
 
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ WDFDRIVER _In_ UCHAR _In_ PFN_WDFDEVICE_WDM_IRP_DISPATCH _In_opt_ WDFCONTEXT DriverContext
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_POWER_FRAMEWORK_SETTINGS PowerFrameworkSettings
 
_In_ PWDFDEVICE_INIT _In_ WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE ReleaseHardwareOrderOnFailure
 
_In_ PWDFDEVICE_INIT _In_ PWDF_IO_TYPE_CONFIG IoTypeConfig
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG _Out_ PDEVPROPTYPE Type
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG _In_opt_ PVOID Data
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DMA_ENABLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDMAENABLER * DmaEnablerHandle
 
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ PWDF_DMA_SYSTEM_PROFILE_CONFIG ProfileConfig
 
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ PWDF_DMA_SYSTEM_PROFILE_CONFIG _In_ WDF_DMA_DIRECTION ConfigDirection
 
_In_ WDFDMAENABLER _In_ WDF_DMA_DIRECTION DmaDirection
 
_Must_inspect_result_ _In_ WDFDMAENABLER _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDMATRANSACTION * DmaTransaction
 
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction
 
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL Mdl
 
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
 
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ size_t Offset
 
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_opt_ WDFCONTEXT Context
 
_In_ WDFDMATRANSACTION _Out_ NTSTATUSStatus
 
_In_ WDFDMATRANSACTION _In_ size_t TransferredLength
 
_In_ WDFDMATRANSACTION _In_ size_t FinalTransferredLength
 
_In_ WDFDMATRANSACTION _In_ size_t MaximumLength
 
_In_ WDFDMATRANSACTION _Out_opt_ ULONGMapRegisterCount
 
_In_ WDFDMATRANSACTION _Out_opt_ ULONG _Out_opt_ ULONGScatterGatherElementCount
 
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL ConfigureRoutine
 
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL _In_opt_ PVOID ConfigureContext
 
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine
 
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE _In_opt_ PVOID DmaCompletionContext
 
_In_ WDFDMATRANSACTION _In_ BOOLEAN UseImmediateExecution
 
_In_ WDFDMATRANSACTION _In_ WDF_DMA_DIRECTION _In_ ULONG RequiredMapRegisters
 
_In_ WDFDMATRANSACTION _In_ WDF_DMA_DIRECTION _In_ ULONG _In_ PFN_WDF_RESERVE_DMA EvtReserveDmaFunction
 
_In_ WDFDMATRANSACTION _In_ WDF_DMA_DIRECTION _In_ ULONG _In_ PFN_WDF_RESERVE_DMA _In_ PVOID EvtReserveDmaContext
 
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
 
_In_ WDFDPC _In_ BOOLEAN Wait
 
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
 
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
 
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING _In_opt_ PWDF_OBJECT_ATTRIBUTES DriverAttributes
 
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PWDF_DRIVER_CONFIG DriverConfig
 
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PFN_WDF_TRACE_CALLBACK EvtTraceCallback
 
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PFN_WDF_TRACE_CALLBACK _In_ PVOID ControlBlock
 
_Must_inspect_result_ _In_ WDFDRIVER _In_ PWDF_DRIVER_VERSION_AVAILABLE_PARAMS VersionAvailableParams
 
_In_ PWDFDEVICE_INIT _In_ PWDF_FDO_EVENT_CALLBACKS FdoEventCallbacks
 
_Inout_ PWDFDEVICE_INIT _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES DefaultChildListAttributes
 
_Must_inspect_result_ _In_ WDFDEVICE Fdo
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT _In_opt_ PVOID InterfaceSpecificData
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFDEVICE Child
 
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ WDFDEVICE PreviousChild
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG Configuration
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
 
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
 
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY Policy
 
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
 
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY _In_ KAFFINITY TargetProcessorSet
 
_In_ WDFINTERRUPT _In_ PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_IO_QUEUE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES QueueAttributes
 
_In_ WDFQUEUE _Out_opt_ PULONG QueueRequests
 
_In_ WDFQUEUE _Out_opt_ PULONG _Out_opt_ PULONG DriverRequests
 
_In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE StopComplete
 
_Must_inspect_result_ _In_ WDFQUEUE _Out_ WDFREQUEST * OutRequest
 
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST FoundRequest
 
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
 
_In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE DrainComplete
 
_In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE PurgeComplete
 
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE QueueReady
 
_Must_inspect_result_ _In_ WDFQUEUE _In_ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY ForwardProgressPolicy
 
_In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE StopAndPurgeComplete
 
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES IoTargetAttributes
 
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIOTARGET * IoTarget
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_ PWDF_IO_TARGET_OPEN_PARAMS OpenParams
 
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
 
_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 _In_opt_ PLONGLONG DeviceOffset
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET OutputBufferOffset
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesWritten
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET InputBufferOffset
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG IoctlCode
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesReturned
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR OtherArg1
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR OtherArg2
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR OtherArg4
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_ ULONG _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET OtherArg1Offset
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_ ULONG _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET OtherArg2Offset
 
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_ ULONG _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET OtherArg4Offset
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG PoolTag
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ __drv_aliasesMem PVOID Buffer
 
_In_ WDFMEMORY _Out_opt_ size_tBufferSize
 
_Must_inspect_result_ _In_ WDFMEMORY SourceMemory
 
_Must_inspect_result_ _In_ WDFMEMORY _In_ size_t SourceOffset
 
_Must_inspect_result_ _In_ WDFMEMORY DestinationMemory
 
_Must_inspect_result_ _In_ WDFMEMORY _In_ size_t DestinationOffset
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES LookasideAttributes
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES MemoryAttributes
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ ULONG _Out_ WDFLOOKASIDE * Lookaside
 
_Must_inspect_result_ _In_ WDFDRIVER _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT AttachedDeviceObject
 
_Must_inspect_result_ _In_ WDFDRIVER _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT Pdo
 
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUIDGuid
 
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID _In_ ULONG QueryBufferLength
 
_Must_inspect_result_ _In_ WDFDEVICE ParentDevice
 
_In_ PWDFDEVICE_INIT _In_ PWDF_PDO_EVENT_CALLBACKS DispatchTable
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceID
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING InstanceID
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING HardwareID
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING CompatibleID
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING ContainerID
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING _In_ PCUNICODE_STRING DeviceLocation
 
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING _In_ PCUNICODE_STRING _In_ LCID LocaleId
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_QUERY_INTERFACE_CONFIG InterfaceConfig
 
_Must_inspect_result_ _In_opt_ WDFKEY ParentKey
 
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
 
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG _Out_opt_ PULONG CreateDisposition
 
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
 
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG ValueLength
 
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_opt_ PULONG ValueLengthQueried
 
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_opt_ PULONG _Out_opt_ PULONG ValueType
 
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_opt_ PWDF_OBJECT_ATTRIBUTES StringsAttributes
 
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT ValueByteLength
 
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
 
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _In_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET MemoryOffsets
 
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ WDFCOLLECTION StringsCollection
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PIRP _In_ BOOLEAN RequestFreesIrp
 
_In_ WDFREQUEST _In_ PWDF_REQUEST_REUSE_PARAMS ReuseParams
 
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
 
_In_ WDFREQUEST _In_ PFN_WDF_REQUEST_CANCEL EvtRequestCancel
 
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
 
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
 
_In_ WDFREQUEST _Out_ PWDF_REQUEST_COMPLETION_PARAMS Params
 
_In_ WDFREQUEST _In_ NTSTATUS _In_ CCHAR PriorityBoost
 
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
 
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t MinimumRequiredLength
 
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_ Length PVOID _Out_opt_ size_tLength
 
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t MinimumRequiredSize
 
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Out_ WDFMEMORY * MemoryObject
 
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE DestinationQueue
 
_In_ WDFREQUEST _In_ BOOLEAN Requeue
 
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE ParentDeviceQueue
 
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE _In_ PWDF_REQUEST_FORWARD_OPTIONS ForwardOptions
 
_In_ WDFIORESREQLIST RequirementsList
 
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
 
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_ WDFIORESLIST IoResList
 
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
 
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
 
_Must_inspect_result_ _In_ WDFCMRESLIST List
 
_Must_inspect_result_ _In_opt_ PCUNICODE_STRING UnicodeString
 
_Must_inspect_result_ _In_opt_ PCUNICODE_STRING _In_opt_ PWDF_OBJECT_ATTRIBUTES StringAttributes
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES LockAttributes
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES SpinLockAttributes
 
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFSPINLOCK * SpinLock
 
_Must_inspect_result_ _In_ PWDF_TIMER_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFTIMER * Timer
 
_In_ WDFTIMER _In_ LONGLONG DueTime
 
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFUSBDEVICE * UsbDevice
 
_In_ WDFUSBDEVICE _Out_ PUSB_DEVICE_DESCRIPTOR UsbDeviceDescriptor
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_writes_bytes_to_opt_ ConfigDescriptorLength PVOID ConfigDescriptor
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_writes_bytes_to_opt_ ConfigDescriptorLength PVOID _Inout_ PUSHORT ConfigDescriptorLength
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT NumCharacters
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT _In_ UCHAR StringIndex
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT _In_ UCHAR _In_opt_ USHORT LangID
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES StringMemoryAttributes
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY * StringMemory
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES PipeAttributes
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_ PULONG CurrentFrameNumber
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_ PWDF_USB_CONTROL_SETUP_PACKET SetupPacket
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ PWDF_MEMORY_DESCRIPTOR MemoryDescriptor
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ PWDF_MEMORY_DESCRIPTOR _Out_opt_ PULONG BytesTransferred
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ WDFMEMORY TransferMemory
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ PWDF_USB_CONTROL_SETUP_PACKET _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET TransferOffset
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY UrbMemory
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET UrbMemoryOffset
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUIDCapabilityType
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG CapabilityBufferLength
 
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ ULONG NumberOfIsochPackets
 
_In_ WDFUSBPIPE Pipe
 
_In_ WDFUSBPIPE _Out_ PWDF_USB_PIPE_INFORMATION PipeInformation
 
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY WriteMemory
 
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET WriteOffset
 
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY ReadMemory
 
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET ReadOffset
 
_Must_inspect_result_ _In_ WDFUSBPIPE PIPE
 
_In_ WDFUSBINTERFACE UsbInterface
 
_In_ WDFUSBINTERFACE _In_ UCHAR SettingIndex
 
_In_ WDFUSBINTERFACE _In_ UCHAR _Out_ PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor
 
_Must_inspect_result_ _In_ WDFUSBINTERFACE _In_opt_ PWDF_OBJECT_ATTRIBUTES PipesAttributes
 
_In_ WDFUSBINTERFACE _In_ UCHAR _In_ UCHAR EndpointIndex
 
_In_ WDFUSBINTERFACE _In_ UCHAR _In_ UCHAR _Out_ PWDF_USB_PIPE_INFORMATION EndpointInfo
 
_In_ WDFUSBDEVICE _In_ UCHAR InterfaceIndex
 
_In_ WDFUSBINTERFACE _In_ UCHAR PipeIndex
 
_In_ WDFUSBINTERFACE _In_ UCHAR _Out_opt_ PWDF_USB_PIPE_INFORMATION PipeInfo
 
_In_ WDFUSBPIPE UsbPipe
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_PROVIDER_CONFIG WmiProviderConfig
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_PROVIDER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES ProviderAttributes
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_PROVIDER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWMIPROVIDER * WmiProvider
 
_In_ WDFWMIPROVIDER _In_ WDF_WMI_PROVIDER_CONTROL ProviderControl
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG InstanceConfig
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES InstanceAttributes
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFWMIINSTANCE * Instance
 
_Must_inspect_result_ _In_ WDFWMIINSTANCE WmiInstance
 
_Must_inspect_result_ _In_ WDFWMIINSTANCE _In_opt_ ULONG EventDataSize
 
_Must_inspect_result_ _In_ PWDF_WORKITEM_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWORKITEM * WorkItem
 

Typedef Documentation

◆ PFN_ROSWDFUNIMPLEMENTED

typedef WDFAPI NTSTATUS(STDCALL * PFN_ROSWDFUNIMPLEMENTED) (VOID)

Definition at line 18 of file fxdynamics.h.

◆ PWDFFUNCTIONS

◆ PWDFVERSION

◆ WDFFUNCTIONS

◆ WDFVERSION

Function Documentation

◆ _Acquires_lock_() [1/2]

_Must_inspect_result_ _In_ _Acquires_lock_ ( _Curr_  )

Definition at line 755 of file wdfinterrupt.h.

758 {
759  return ((PFN_WDFINTERRUPTTRYTOACQUIRELOCK) WdfFunctions[WdfInterruptTryToAcquireLockTableIndex])(WdfDriverGlobals, Interrupt);
760 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ _Acquires_lock_() [2/2]

_Acquires_lock_ ( Lock  )

◆ _Deref_out_range_()

Definition at line 648 of file wdfiotarget.h.

651 {
653 }
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_opt_ PVOID PropertyBuffer
Definition: wdfiotarget.h:629
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfiotarget.h:622
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
Definition: wdfiotarget.h:622
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIOTARGET * IoTarget
Definition: wdfiotarget.h:363
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
Definition: wdfdevice.h:3776

◆ _In_reads_() [1/2]

Definition at line 539 of file wdfregistry.h.

542 {
544 }
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_opt_ PULONG _Out_opt_ PULONG ValueType
Definition: wdfregistry.h:279
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:406
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
Definition: wdfregistry.h:240
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFKEY * Key
Definition: wdfregistry.h:69
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG ValueLength
Definition: wdfregistry.h:271

◆ _In_reads_() [2/2]

_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_reads_ ( _Inexpressible_("union bug in SAL")  )

Definition at line 1553 of file wdfusb.h.

1556 {
1557  return ((PFN_WDFUSBTARGETDEVICESENDURBSYNCHRONOUSLY) WdfFunctions[WdfUsbTargetDeviceSendUrbSynchronouslyTableIndex])(WdfDriverGlobals, UsbDevice, Request, RequestOptions, Urb);
1558 }
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions
Definition: wdfusb.h:1070
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST Request
Definition: wdfusb.h:1070
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFUSBDEVICE * UsbDevice
Definition: wdfusb.h:901

◆ _In_reads_bytes_()

_Must_inspect_result_ _In_ WDFREQUEST _In_reads_bytes_ ( Length  )

◆ _In_reads_bytes_opt_()

_Must_inspect_result_ _In_ WDFWMIINSTANCE _In_opt_ ULONG _In_reads_bytes_opt_ ( EventDataSize  )

Definition at line 631 of file wdfwmi.h.

634 {
635  return ((PFN_WDFWMIINSTANCEFIREEVENT) WdfFunctions[WdfWmiInstanceFireEventTableIndex])(WdfDriverGlobals, WmiInstance, EventDataSize, EventData);
636 }
_Must_inspect_result_ _In_ WDFWMIINSTANCE _In_opt_ ULONG EventDataSize
Definition: wdfwmi.h:615
_Must_inspect_result_ _In_ WDFWMIINSTANCE WmiInstance
Definition: wdfwmi.h:514
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ _IRQL_requires_max_() [1/5]

_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:2931
#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

◆ _IRQL_requires_max_() [2/5]

_IRQL_requires_max_ ( DISPATCH_LEVEL  )

Definition at line 3557 of file common.c.

3587 {
3588  NTSTATUS status;
3589  BOOLEAN requestSent = FALSE;
3590 
3591  BOOLEAN shouldRetry = TRUE;
3592  PCDB cdb = (PCDB)DeviceExtension->PowerContext.Srb.Cdb;
3593  ULONG timeoutValue = DeviceExtension->TimeOutValue;
3594  ULONG retryCount = 1;
3595 
3596  // reset some fields.
3597  DeviceExtension->PowerContext.RetryIntervalIn100ns = 0;
3598  status = PowerContextReuseRequest(DeviceExtension);
3599  RequestClearSendTime(DeviceExtension->PowerContext.PowerRequest);
3600 
3601  if (!NT_SUCCESS(status))
3602  {
3603  return status;
3604  }
3605 
3606  // set proper timeout value and max retry count.
3607  switch(DeviceExtension->PowerContext.PowerChangeState.PowerDown)
3608  {
3612  break;
3613 
3614  case PowerDownDeviceLocked:
3615  // Case of issuing SYNC CACHE command. Do not use power irp timeout remaining time in this case
3616  // as we want to give best try on SYNC CACHE command.
3617  retryCount = MAXIMUM_RETRIES;
3618  timeoutValue = DeviceExtension->TimeOutValue;
3619  break;
3620 
3622  {
3623  // Case of issuing STOP UNIT command
3624  // As "Imme" bit is set to '1', this command should be completed in short time.
3625  // This command is at low importance, failure of this command has very small impact.
3626  ULONG secondsRemaining = 0;
3627 
3628 #if (WINVER >= 0x0601)
3629  // this API is introduced in Windows7
3630  PoQueryWatchdogTime(DeviceExtension->LowerPdo, &secondsRemaining);
3631 #endif
3632 
3633  if (secondsRemaining == 0)
3634  {
3635  // not able to retrieve remaining time from PoQueryWatchdogTime API, use default values.
3636  retryCount = MAXIMUM_RETRIES;
3637  timeoutValue = SCSI_CDROM_TIMEOUT;
3638  }
3639  else
3640  {
3641  // plan to leave about 30 seconds to lower level drivers if possible.
3642  if (secondsRemaining >= 32)
3643  {
3644  retryCount = (secondsRemaining - 30)/SCSI_CDROM_TIMEOUT + 1;
3645  timeoutValue = SCSI_CDROM_TIMEOUT;
3646 
3647  if (retryCount > MAXIMUM_RETRIES)
3648  {
3649  retryCount = MAXIMUM_RETRIES;
3650  }
3651 
3652  if (retryCount == 1)
3653  {
3654  timeoutValue = secondsRemaining - 30;
3655  }
3656  }
3657  else
3658  {
3659  // issue the command with minimal timeout value and do not retry on it.
3660  retryCount = 1;
3661  timeoutValue = 2;
3662  }
3663  }
3664  }
3665  break;
3666  default:
3667  NT_ASSERT( FALSE );
3669  return status;
3670  }
3671 
3672  DeviceExtension->PowerContext.RetryCount = retryCount;
3673 
3674  // issue command.
3675  while (shouldRetry)
3676  {
3677 
3678  // set SRB fields.
3679  DeviceExtension->PowerContext.Srb.SrbFlags = SRB_FLAGS_NO_DATA_TRANSFER |
3684 
3685  DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_EXECUTE_SCSI;
3686  DeviceExtension->PowerContext.Srb.TimeOutValue = timeoutValue;
3687 
3688  if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceInitial)
3689  {
3690  DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_LOCK_QUEUE;
3691  }
3692  else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceLocked)
3693  {
3694  DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_QUIESCE_DEVICE;
3695  }
3696  else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceQuiesced)
3697  {
3698  // Case of issuing SYNC CACHE command.
3699  DeviceExtension->PowerContext.Srb.CdbLength = 10;
3700  cdb->SYNCHRONIZE_CACHE10.OperationCode = SCSIOP_SYNCHRONIZE_CACHE;
3701  }
3702  else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceFlushed)
3703  {
3704  // Case of issuing STOP UNIT command.
3705  DeviceExtension->PowerContext.Srb.CdbLength = 6;
3706  cdb->START_STOP.OperationCode = SCSIOP_START_STOP_UNIT;
3707  cdb->START_STOP.Start = 0;
3708  cdb->START_STOP.Immediate = 1;
3709  }
3710  else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceStopped)
3711  {
3712  DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_UNLOCK_QUEUE;
3713  }
3714 
3715  // Set up completion routine and context if requested
3716  if (CompletionRoutine)
3717  {
3718  WdfRequestSetCompletionRoutine(DeviceExtension->PowerContext.PowerRequest,
3720  Context);
3721  }
3722 
3723  status = RequestSend(DeviceExtension,
3724  DeviceExtension->PowerContext.PowerRequest,
3725  DeviceExtension->IoTarget,
3727  &requestSent);
3728 
3729  if (requestSent)
3730  {
3731  if ((CompletionRoutine == NULL) &&
3732  (SRB_STATUS(DeviceExtension->PowerContext.Srb.SrbStatus) != SRB_STATUS_SUCCESS))
3733  {
3734  TracePrint((TRACE_LEVEL_ERROR,
3735  TRACE_FLAG_POWER,
3736  "%p\tError occured when issuing %s command to device. Srb %p, Status %x\n",
3737  DeviceExtension->PowerContext.PowerRequest,
3738  (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceQuiesced) ? "SYNC CACHE" : "STOP UNIT",
3739  &DeviceExtension->PowerContext.Srb,
3740  DeviceExtension->PowerContext.Srb.SrbStatus));
3741 
3742  NT_ASSERT(!(TEST_FLAG(DeviceExtension->PowerContext.Srb.SrbStatus, SRB_STATUS_QUEUE_FROZEN)));
3743 
3744  shouldRetry = RequestSenseInfoInterpret(DeviceExtension,
3745  DeviceExtension->PowerContext.PowerRequest,
3746  &(DeviceExtension->PowerContext.Srb),
3747  retryCount - DeviceExtension->PowerContext.RetryCount,
3748  &status,
3749  &(DeviceExtension->PowerContext.RetryIntervalIn100ns));
3750 
3751  if (shouldRetry && (DeviceExtension->PowerContext.RetryCount-- == 0))
3752  {
3753  shouldRetry = FALSE;
3754  }
3755  }
3756  else
3757  {
3758  // succeeded, do not need to retry.
3759  shouldRetry = FALSE;
3760  }
3761 
3762  }
3763  else
3764  {
3765  // request failed to be sent
3766  shouldRetry = FALSE;
3767  }
3768 
3769  if (shouldRetry)
3770  {
3771  LARGE_INTEGER t;
3772  t.QuadPart = -DeviceExtension->PowerContext.RetryIntervalIn100ns;
3774 
3775  status = PowerContextReuseRequest(DeviceExtension);
3776  if (!NT_SUCCESS(status))
3777  {
3778  shouldRetry = FALSE;
3779  }
3780  }
3781  }
3782 
3783  if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceQuiesced)
3784  {
3785  // record SYNC CACHE command completion time stamp.
3786  KeQueryTickCount(&DeviceExtension->PowerContext.Step1CompleteTime);
3787  }
3788 
3789  return status;
3790 }
#define SRB_FUNCTION_UNLOCK_QUEUE
Definition: srb.h:325
#define SCSIOP_SYNCHRONIZE_CACHE
Definition: cdrw_hw.h:918
#define SRB_FUNCTION_QUIESCE_DEVICE
Definition: srb.h:90
#define SRB_FLAGS_NO_QUEUE_FREEZE
Definition: srb.h:396
#define TRUE
Definition: types.h:120
Definition: cdrw_hw.h:28
LONG NTSTATUS
Definition: precomp.h:26
struct _CDB::_SYNCHRONIZE_CACHE10 SYNCHRONIZE_CACHE10
GLdouble GLdouble t
Definition: gl.h:2047
#define SRB_STATUS(Status)
Definition: srb.h:381
VOID RequestClearSendTime(_In_ WDFREQUEST Request)
Definition: common.c:111
#define MAXIMUM_RETRIES
Definition: cdrom.h:124
return STATUS_NOT_IMPLEMENTED
#define SCSI_CDROM_TIMEOUT
Definition: cdrom.c:170
#define FALSE
Definition: types.h:117
NTSTATUS NTAPI KeDelayExecutionThread(IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Interval OPTIONAL)
Definition: wait.c:283
#define SRB_FLAGS_BYPASS_LOCKED_QUEUE
Definition: srb.h:402
unsigned char BOOLEAN
union _CDB * PCDB
struct _CDB::_START_STOP START_STOP
VOID NTAPI KeQueryTickCount(IN PLARGE_INTEGER TickCount)
Definition: clock.c:165
#define TEST_FLAG(Flags, Bit)
Definition: cdrom.h:1495
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define SRB_FLAGS_DISABLE_SYNCH_TRANSFER
Definition: srb.h:389
#define SRB_FLAGS_NO_DATA_TRANSFER
Definition: srb.h:394
BOOLEAN RequestSenseInfoInterpret(_In_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_ WDFREQUEST Request, _In_ PSCSI_REQUEST_BLOCK Srb, _In_ ULONG RetriedCount, _Out_ NTSTATUS *Status, _Out_opt_ _Deref_out_range_(0, MAXIMUM_RETRY_FOR_SINGLE_IO_IN_100NS_UNITS) LONGLONG *RetryIntervalIn100ns)
Definition: sense.c:2467
#define SRB_STATUS_QUEUE_FROZEN
Definition: srb.h:378
NTSTATUS RequestSend(_In_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_ WDFREQUEST Request, _In_ WDFIOTARGET IoTarget, _In_ ULONG Flags, _Out_opt_ PBOOLEAN RequestSent)
Definition: common.c:3793
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
Definition: wdfrequest.h:893
#define NULL
Definition: types.h:112
#define SRB_FUNCTION_EXECUTE_SCSI
Definition: srb.h:307
unsigned int ULONG
Definition: retypes.h:1
#define SRB_STATUS_SUCCESS
Definition: srb.h:333
#define SRB_FLAGS_D3_PROCESSING
Definition: srb.h:156
static SERVICE_STATUS status
Definition: service.c:31
#define SCSIOP_START_STOP_UNIT
Definition: cdrw_hw.h:897
#define SRB_FUNCTION_LOCK_QUEUE
Definition: srb.h:324
#define NT_ASSERT
Definition: rtlfuncs.h:3312
Definition: ps.c:97

◆ _IRQL_requires_max_() [3/5]

_Must_inspect_result_ _IRQL_requires_max_ ( APC_LEVEL  )

Definition at line 197 of file cddata.c.

254 {
255  THREAD_CONTEXT ThreadContext = {0};
256  PIRP_CONTEXT IrpContext = NULL;
257  BOOLEAN Wait;
258 
259 #ifdef CD_SANITY
260  PVOID PreviousTopLevel;
261 #endif
262 
264 
265 #if DBG
266 
267  KIRQL SaveIrql = KeGetCurrentIrql();
268 
269 #endif
270 
272 
274 
276 
277 #ifdef CD_SANITY
278  PreviousTopLevel = IoGetTopLevelIrp();
279 #endif
280 
281  //
282  // Loop until this request has been completed or posted.
283  //
284 
285  do {
286 
287  //
288  // Use a try-except to handle the exception cases.
289  //
290 
291  _SEH2_TRY {
292 
293  //
294  // If the IrpContext is NULL then this is the first pass through
295  // this loop.
296  //
297 
298  if (IrpContext == NULL) {
299 
300  //
301  // Decide if this request is waitable an allocate the IrpContext.
302  // If the file object in the stack location is NULL then this
303  // is a mount which is always waitable. Otherwise we look at
304  // the file object flags.
305  //
306 
308 
309  Wait = TRUE;
310 
311  } else {
312 
313  Wait = CanFsdWait( Irp );
314  }
315 
316  IrpContext = CdCreateIrpContext( Irp, Wait );
317 
318  //
319  // Update the thread context information.
320  //
321 
322  CdSetThreadContext( IrpContext, &ThreadContext );
323 
324 #ifdef CD_SANITY
325  NT_ASSERT( !CdTestTopLevel ||
326  SafeNodeType( IrpContext->TopLevel ) == CDFS_NTC_IRP_CONTEXT );
327 #endif
328 
329  //
330  // Otherwise cleanup the IrpContext for the retry.
331  //
332 
333  } else {
334 
335  //
336  // Set the MORE_PROCESSING flag to make sure the IrpContext
337  // isn't inadvertently deleted here. Then cleanup the
338  // IrpContext to perform the retry.
339  //
340 
341  SetFlag( IrpContext->Flags, IRP_CONTEXT_FLAG_MORE_PROCESSING );
342  CdCleanupIrpContext( IrpContext, FALSE );
343  }
344 
345  //
346  // Case on the major irp code.
347  //
348 
349  switch (IrpContext->MajorFunction) {
350 
351  case IRP_MJ_CREATE :
352 
353  Status = CdCommonCreate( IrpContext, Irp );
354  break;
355 
356  case IRP_MJ_CLOSE :
357 
358  Status = CdCommonClose( IrpContext, Irp );
359  break;
360 
361  case IRP_MJ_READ :
362 
363  //
364  // If this is an Mdl complete request, don't go through
365  // common read.
366  //
367 
368  if (FlagOn( IrpContext->MinorFunction, IRP_MN_COMPLETE )) {
369 
370  Status = CdCompleteMdl( IrpContext, Irp );
371 
372  } else {
373 
374  Status = CdCommonRead( IrpContext, Irp );
375  }
376 
377  break;
378 
379  case IRP_MJ_WRITE :
380 
381  Status = CdCommonWrite( IrpContext, Irp );
382  break;
383 
385 
386  Status = CdCommonQueryInfo( IrpContext, Irp );
387  break;
388 
390 
391  Status = CdCommonSetInfo( IrpContext, Irp );
392  break;
393 
395 
396  Status = CdCommonQueryVolInfo( IrpContext, Irp );
397  break;
398 
400 
401  Status = CdCommonDirControl( IrpContext, Irp );
402  break;
403 
405 
406  Status = CdCommonFsControl( IrpContext, Irp );
407  break;
408 
409  case IRP_MJ_DEVICE_CONTROL :
410 
411  Status = CdCommonDevControl( IrpContext, Irp );
412  break;
413 
414  case IRP_MJ_LOCK_CONTROL :
415 
416  Status = CdCommonLockControl( IrpContext, Irp );
417  break;
418 
419  case IRP_MJ_CLEANUP :
420 
421  Status = CdCommonCleanup( IrpContext, Irp );
422  break;
423 
424  case IRP_MJ_PNP :
425 
426  Status = CdCommonPnp( IrpContext, Irp );
427  break;
428 
429  case IRP_MJ_SHUTDOWN :
430 
431  Status = CdCommonShutdown( IrpContext, Irp );
432  break;
433 
434  default :
435 
437  CdCompleteRequest( IrpContext, Irp, Status );
438  }
439 
441 
442  Status = CdProcessException( IrpContext, Irp, _SEH2_GetExceptionCode() );
443  } _SEH2_END;
444 
445  } while (Status == STATUS_CANT_WAIT);
446 
447 #ifdef CD_SANITY
448  NT_ASSERT( !CdTestTopLevel ||
449  (PreviousTopLevel == IoGetTopLevelIrp()) );
450 #endif
451 
453 
454  NT_ASSERT( SaveIrql == KeGetCurrentIrql( ));
455 
456  return Status;
457 }
#define KeGetCurrentIrql()
Definition: env_spec_w32.h:706
VOID CdSetThreadContext(_Inout_ PIRP_CONTEXT IrpContext, _In_ PTHREAD_CONTEXT ThreadContext)
Definition: cddata.c:981
#define IRP_MJ_CREATE
Definition: rdpdr.c:44
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
#define IRP_MJ_SHUTDOWN
#define TRUE
Definition: types.h:120
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
#define IRP_CONTEXT_FLAG_MORE_PROCESSING
Definition: cdstruc.h:1214
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:167
#define SafeNodeType(Ptr)
Definition: nodetype.h:54
#define IRP_MJ_PNP
Definition: cdrw_usr.h:52
LONG NTSTATUS
Definition: precomp.h:26
#define STATUS_INVALID_DEVICE_REQUEST
Definition: udferr_usr.h:138
_SEH2_TRY
Definition: create.c:4226
#define IRP_MN_COMPLETE
Definition: iotypes.h:4420
UCHAR KIRQL
Definition: env_spec_w32.h:591
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ PIRP Irp
Definition: csq.h:116
VOID CdCompleteRequest(_Inout_opt_ PIRP_CONTEXT IrpContext, _Inout_opt_ PIRP Irp, _In_ NTSTATUS Status)
Definition: cddata.c:914
#define _SEH2_GetExceptionInformation()
Definition: pseh2_64.h:164
unsigned char BOOLEAN
#define IRP_MJ_QUERY_VOLUME_INFORMATION
Definition: rdpdr.c:50
#define IRP_MJ_DIRECTORY_CONTROL
Definition: rdpdr.c:51
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
Status
Definition: gdiplustypes.h:24
#define IRP_MJ_FILE_SYSTEM_CONTROL
PIRP NTAPI IoGetTopLevelIrp(VOID)
Definition: irp.c:1843
#define CanFsdWait(I)
Definition: cdprocs.h:2001
NTSTATUS CdCompleteMdl(_In_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
Definition: cachesup.c:411
#define IRP_MJ_CLOSE
Definition: rdpdr.c:45
NTSTATUS CdCommonDevControl(_Inout_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
Definition: devctrl.c:46
#define FlagOn(_F, _SF)
Definition: ext2fs.h:179
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2793
#define SetFlag(_F, _SF)
Definition: ext2fs.h:187
_SEH2_END
Definition: create.c:4400
LONG CdExceptionFilter(_Inout_ PIRP_CONTEXT IrpContext, _In_ PEXCEPTION_POINTERS ExceptionPointer)
Definition: cddata.c:525
#define ASSERT_OPTIONAL_IRP(I)
Definition: cddata.h:251
#define NULL
Definition: types.h:112
VOID CdCleanupIrpContext(_In_ PIRP_CONTEXT IrpContext, _In_ BOOLEAN Post)
Definition: strucsup.c:1733
NTSTATUS CdCommonLockControl(_Inout_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
Definition: lockctrl.c:35
#define CDFS_NTC_IRP_CONTEXT
Definition: nodetype.h:34
#define IRP_MJ_LOCK_CONTROL
Definition: rdpdr.c:53
#define IRP_MJ_READ
Definition: rdpdr.c:46
#define IRP_MJ_CLEANUP
#define IRP_MJ_SET_INFORMATION
Definition: rdpdr.c:49
#define IRP_MJ_WRITE
Definition: rdpdr.c:47
#define IRP_MJ_QUERY_INFORMATION
Definition: rdpdr.c:48
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:40
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:165
_Ret_valid_ PIRP_CONTEXT CdCreateIrpContext(_In_ PIRP Irp, _In_ BOOLEAN Wait)
Definition: strucsup.c:1573
#define IRP_MJ_DEVICE_CONTROL
Definition: rdpdr.c:52
#define STATUS_CANT_WAIT
Definition: ntstatus.h:452
#define NT_ASSERT
Definition: rtlfuncs.h:3312

◆ _IRQL_requires_max_() [4/5]

_IRQL_requires_max_ ( HIGH_LEVEL  )

Definition at line 144 of file wdfdpc.h.

151 {
152  return ((PFN_WDFDPCENQUEUE) WdfFunctions[WdfDpcEnqueueTableIndex])(WdfDriverGlobals, Dpc);
153 }
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
Definition: wdfdpc.h:107
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ _IRQL_requires_max_() [5/5]

_IRQL_requires_max_ ( DISPATCH_LEVEL 1)

◆ _Out_writes_bytes_() [1/3]

_Must_inspect_result_ _In_ WDFMEMORY _In_ size_t _Out_writes_bytes_ ( NumBytesToCopyTo  )

◆ _Out_writes_bytes_() [2/3]

Definition at line 780 of file wdfobject.h.

783 {
784  return ((PFN_WDFOBJECTQUERY) WdfFunctions[WdfObjectQueryTableIndex])(WdfDriverGlobals, Object, Guid, QueryBufferLength, QueryBuffer);
785 }
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID _In_ ULONG QueryBufferLength
Definition: wdfobject.h:760
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFOBJECT * Object
Definition: wdfobject.h:704
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
Definition: wdfobject.h:760

◆ _Out_writes_bytes_() [3/3]

_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG _Out_writes_bytes_ ( CapabilityBufferLength  ) &&
pure virtual

◆ _Out_writes_bytes_all_()

◆ _Out_writes_bytes_all_opt_()

◆ _Out_writes_bytes_opt_()

_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_writes_bytes_opt_ ( ValueLength  )

◆ _Out_writes_bytes_to_opt_()

_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG _Out_writes_bytes_to_opt_ ( CapabilityBufferLength  ,
ResultLength 
)

◆ _Outptr_opt_result_bytebuffer_() [1/3]

Definition at line 192 of file wdfmemory.h.

195 {
197 }
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ __drv_aliasesMem PVOID Buffer
Definition: wdfmemory.h:211
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
Definition: wdfmemory.h:169
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG PoolTag
Definition: wdfmemory.h:159
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfmemory.h:159
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
Definition: wdfmemory.h:159
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:251

◆ _Outptr_opt_result_bytebuffer_() [2/3]

_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY _Outptr_opt_result_bytebuffer_ ( sizeof(URB )

Definition at line 1680 of file wdfusb.h.

1683 {
1684  return ((PFN_WDFUSBTARGETDEVICECREATEURB) WdfFunctions[WdfUsbTargetDeviceCreateUrbTableIndex])(WdfDriverGlobals, UsbDevice, Attributes, UrbMemory, Urb);
1685 }
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
Definition: wdfusb.h:901
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFUSBDEVICE * UsbDevice
Definition: wdfusb.h:901
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY UrbMemory
Definition: wdfusb.h:1572

◆ _Outptr_opt_result_bytebuffer_() [3/3]

_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ ULONG _Out_ WDFMEMORY _Outptr_opt_result_bytebuffer_ ( GET_ISO_URB_SIZE(NumberOfIsochPackets )

Definition at line 1723 of file wdfusb.h.

1726 {
1728 }
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
Definition: wdfusb.h:901
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFUSBDEVICE * UsbDevice
Definition: wdfusb.h:901
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ ULONG NumberOfIsochPackets
Definition: wdfusb.h:1699
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY UrbMemory
Definition: wdfusb.h:1572

◆ _Post_satisfies_()

_Must_inspect_result_ _Post_satisfies_ ( return  = = 1 || return == 0)

◆ _Pre_writable_byte_size_()

_Must_inspect_result_ _In_ WDFMEMORY _Pre_notnull_ _Pre_writable_byte_size_ ( BufferSize  )

◆ _Requires_lock_held_()

_In_ _Requires_lock_held_ ( _Curr_  )

Definition at line 3690 of file vfwdfdynamics.cpp.

3694 {
3696  ((PFN_WDFINTERRUPTRELEASELOCK) WdfVersion.Functions.pfnWdfInterruptReleaseLock)(DriverGlobals, Interrupt);
3697 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
DriverGlobals
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
PAGED_CODE_LOCKED()
PFN_WDFINTERRUPTRELEASELOCK pfnWdfInterruptReleaseLock
Definition: fxdynamics.h:196
WDFVERSION WdfVersion

◆ _Requires_lock_not_held_()

_In_ _Requires_lock_not_held_ ( _Curr_  )

◆ _Success_()

_Success_ ( TRUE  )

◆ _When_() [1/16]

_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _When_ ( Length  = =0,
__drv_reportError(Length cannot be zero  
)

◆ _When_() [2/16]

◆ _When_() [3/16]

_Must_inspect_result_ _When_ ( WaitForD0  = = 0,
_IRQL_requires_max_(DISPATCH_LEVEL  
)
pure virtual

◆ _When_() [4/16]

_In_ WDFDMAENABLER _In_ _When_ ( MaximumFragments  = =0,
__drv_reportError(MaximumFragments cannot be zero  
)

Definition at line 442 of file wdfdmaenabler.h.

445 {
446  ((PFN_WDFDMAENABLERSETMAXIMUMSCATTERGATHERELEMENTS) WdfFunctions[WdfDmaEnablerSetMaximumScatterGatherElementsTableIndex])(WdfDriverGlobals, DmaEnabler, MaximumFragments);
447 }
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFDMAENABLER DmaEnabler
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ _When_() [5/16]

_When_ ( Wait  = = __true,
_IRQL_requires_max_(PASSIVE_LEVEL  
)

◆ _When_() [6/16]

_In_ WDFQUEUE _When_ ( Context = 0,
_In_   
)

◆ _When_() [7/16]

_In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE _When_ ( StopComplete = 0,
_In_   
)

◆ _When_() [8/16]

_When_ ( Action  = = 3,
_IRQL_requires_max_(DISPATCH_LEVEL  
)

◆ _When_() [9/16]

◆ _When_() [10/16]

_Must_inspect_result_ _When_ ( PoolType  = = 1 || PoolType == 257,
_IRQL_requires_max_(APC_LEVEL  
)

◆ _When_() [11/16]

◆ _When_() [12/16]

_Must_inspect_result_ _In_ WDFMEMORY _In_ size_t _In_ _When_ ( NumBytesToCopyTo  = =0,
__drv_reportError(NumBytesToCopyTo cannot be zero  
)

Definition at line 340 of file wdfmemory.h.

343 {
344  return ((PFN_WDFMEMORYCOPYTOBUFFER) WdfFunctions[WdfMemoryCopyToBufferTableIndex])(WdfDriverGlobals, SourceMemory, SourceOffset, Buffer, NumBytesToCopyTo);
345 }
_Must_inspect_result_ _In_ WDFMEMORY _In_ size_t SourceOffset
Definition: wdfmemory.h:318
_Must_inspect_result_ _In_ WDFMEMORY SourceMemory
Definition: wdfmemory.h:318
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ __drv_aliasesMem PVOID Buffer
Definition: wdfmemory.h:211
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ _When_() [13/16]

_Must_inspect_result_ _In_ WDFMEMORY _In_ size_t _In_ PVOID _In_ _When_ ( NumBytesToCopyFrom  = =0,
__drv_reportError(NumBytesToCopyFrom cannot be zero  
)

Definition at line 381 of file wdfmemory.h.

384 {
385  return ((PFN_WDFMEMORYCOPYFROMBUFFER) WdfFunctions[WdfMemoryCopyFromBufferTableIndex])(WdfDriverGlobals, DestinationMemory, DestinationOffset, Buffer, NumBytesToCopyFrom);
386 }
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ __drv_aliasesMem PVOID Buffer
Definition: wdfmemory.h:211
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFMEMORY _In_ size_t DestinationOffset
Definition: wdfmemory.h:359
_Must_inspect_result_ _In_ WDFMEMORY DestinationMemory
Definition: wdfmemory.h:359

◆ _When_() [14/16]

_When_ ( Timeout  = NULL,
_IRQL_requires_max_(PASSIVE_LEVEL  
)

◆ _When_() [15/16]

_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG _When_ ( CapabilityBufferLength  = = 0,
_Out_opt_   
) &&
pure virtual

◆ _When_() [16/16]

Definition at line 1641 of file wdfusb.h.

1644 {
1645  return ((PFN_WDFUSBTARGETDEVICEQUERYUSBCAPABILITY) WdfFunctions[WdfUsbTargetDeviceQueryUsbCapabilityTableIndex])(WdfDriverGlobals, UsbDevice, CapabilityType, CapabilityBufferLength, CapabilityBuffer, ResultLength);
1646 }
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID * CapabilityType
Definition: wdfusb.h:1611
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ CONST GUID _In_ ULONG CapabilityBufferLength
Definition: wdfusb.h:1611
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFUSBDEVICE * UsbDevice
Definition: wdfusb.h:901
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
Definition: wdfdevice.h:3776

◆ WdfApiNotImplemented()

WDFAPI NTSTATUS STDCALL WdfApiNotImplemented ( )

Definition at line 44 of file reactos_special.cpp.

45 {
46  DbgPrint("ReactOS KMDF: %s non-implemented API called\n");
47  __debugbreak();
48  return STATUS_UNSUCCESSFUL;
49 }
#define DbgPrint
Definition: loader.c:25
void __cdecl __debugbreak(void)
Definition: intrin_ppc.h:698
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132

◆ WdfCxVerifierKeBugCheck()

WDFAPI VOID STDCALL WDFEXPORT() WdfCxVerifierKeBugCheck ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_opt_ WDFOBJECT  Object,
_In_ ULONG  BugCheckCode,
_In_ ULONG_PTR  BugCheckParameter1,
_In_ ULONG_PTR  BugCheckParameter2,
_In_ ULONG_PTR  BugCheckParameter3,
_In_ ULONG_PTR  BugCheckParameter4 
)

Definition at line 1043 of file vfwdfdynamics.cpp.

1059 {
1061  ((PFN_WDFCXVERIFIERKEBUGCHECK) WdfVersion.Functions.pfnWdfCxVerifierKeBugCheck)(DriverGlobals, Object, BugCheckCode, BugCheckParameter1, BugCheckParameter2, BugCheckParameter3, BugCheckParameter4);
1062 }
PFN_ROSWDFUNIMPLEMENTED pfnWdfCxVerifierKeBugCheck
Definition: fxdynamics.h:566
DriverGlobals
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
PAGED_CODE_LOCKED()
VOID(STDCALL * PFN_WDFCXVERIFIERKEBUGCHECK)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_opt_ WDFOBJECT Object, _In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
Definition: wdfcx.h:104
WDFVERSION WdfVersion

◆ WdfDriverMiniportUnload()

WDFAPI VOID STDCALL WDFEXPORT() WdfDriverMiniportUnload ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_ WDFDRIVER  Driver 
)

Definition at line 4955 of file vfwdfdynamics.cpp.

4961 {
4964 }
PFN_WDFDRIVERMINIPORTUNLOAD pfnWdfDriverMiniportUnload
Definition: fxdynamics.h:252
_Must_inspect_result_ _In_ WDFDRIVER Driver
DriverGlobals
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
PAGED_CODE_LOCKED()
WDFVERSION WdfVersion
WDFAPI VOID(STDCALL * PFN_WDFDRIVERMINIPORTUNLOAD)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDRIVER Driver)
Definition: wdfminiport.h:105

◆ WdfGetTriageInfo()

WDFAPI PVOID STDCALL WDFEXPORT() WdfGetTriageInfo ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals)

Definition at line 241 of file verifierapi.cpp.

262 {
263  DDI_ENTRY();
264 
266  return &g_WdfTriageInfo;
267 }
WDF_TRIAGE_INFO g_WdfTriageInfo
#define DDI_ENTRY()
Definition: fxglobalskm.h:56
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
DriverGlobals

◆ WdfInterruptGetDevice()

WDFAPI WDFDEVICE STDCALL WDFEXPORT() WdfInterruptGetDevice ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_ WDFINTERRUPT  Interrupt 
)

Definition at line 3795 of file vfwdfdynamics.cpp.

3801 {
3804 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
DriverGlobals
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
PFN_WDFINTERRUPTGETDEVICE pfnWdfInterruptGetDevice
Definition: fxdynamics.h:202
PAGED_CODE_LOCKED()
WDFAPI WDFDEVICE(STDCALL * PFN_WDFINTERRUPTGETDEVICE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
Definition: wdfinterrupt.h:712
WDFVERSION WdfVersion

◆ WdfInterruptQueueDpcForIsr()

WDFAPI BOOLEAN STDCALL WDFEXPORT() WdfInterruptQueueDpcForIsr ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_ WDFINTERRUPT  Interrupt 
)

Definition at line 3625 of file vfwdfdynamics.cpp.

3631 {
3634 }
PFN_WDFINTERRUPTQUEUEDPCFORISR pfnWdfInterruptQueueDpcForIsr
Definition: fxdynamics.h:193
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
DriverGlobals
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
PAGED_CODE_LOCKED()
WDFAPI BOOLEAN(STDCALL * PFN_WDFINTERRUPTQUEUEDPCFORISR)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
Definition: wdfinterrupt.h:405
WDFVERSION WdfVersion

◆ WdfInterruptQueueWorkItemForIsr()

WDFAPI BOOLEAN STDCALL WDFEXPORT() WdfInterruptQueueWorkItemForIsr ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_ WDFINTERRUPT  Interrupt 
)

Definition at line 3638 of file vfwdfdynamics.cpp.

3644 {
3647 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
DriverGlobals
PFN_WDFINTERRUPTQUEUEWORKITEMFORISR pfnWdfInterruptQueueWorkItemForIsr
Definition: fxdynamics.h:548
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
PAGED_CODE_LOCKED()
WDFAPI BOOLEAN(STDCALL * PFN_WDFINTERRUPTQUEUEWORKITEMFORISR)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
Definition: wdfinterrupt.h:428
WDFVERSION WdfVersion

◆ WdfInterruptWdmGetInterrupt()

_Must_inspect_result_ WDFAPI PKINTERRUPT STDCALL WDFEXPORT() WdfInterruptWdmGetInterrupt ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_ WDFINTERRUPT  Interrupt 
)

Definition at line 3730 of file vfwdfdynamics.cpp.

3736 {
3739 }
_Must_inspect_result_ WDFAPI PKINTERRUPT(STDCALL * PFN_WDFINTERRUPTWDMGETINTERRUPT)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
Definition: wdfinterrupt.h:593
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
DriverGlobals
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
PAGED_CODE_LOCKED()
PFN_WDFINTERRUPTWDMGETINTERRUPT pfnWdfInterruptWdmGetInterrupt
Definition: fxdynamics.h:199
WDFVERSION WdfVersion

◆ WdfObjectAllocateContext()

WDFAPI NTSTATUS STDCALL WDFEXPORT() WdfObjectAllocateContext ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_ WDFOBJECT  Handle,
_In_ PWDF_OBJECT_ATTRIBUTES  ContextAttributes,
_Outptr_opt_ PVOID Context 
)

Definition at line 4984 of file vfwdfdynamics.cpp.

4994 {
4997 }
DriverGlobals
PFN_WDFOBJECTALLOCATECONTEXT pfnWdfObjectAllocateContext
Definition: fxdynamics.h:254
WDFAPI NTSTATUS(STDCALL * PFN_WDFOBJECTALLOCATECONTEXT)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Handle, _In_ PWDF_OBJECT_ATTRIBUTES ContextAttributes, _Outptr_opt_ PVOID *Context)
Definition: wdfobject.h:574
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_opt_ WDFCONTEXT Context
PAGED_CODE_LOCKED()
WDFVERSION WdfVersion
_In_ HANDLE Handle
Definition: extypes.h:390

◆ WdfObjectContextGetObject()

WDFAPI WDFOBJECT FASTCALL WDFEXPORT() WdfObjectContextGetObject ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_ PVOID  ContextPointer 
)

Definition at line 5002 of file vfwdfdynamics.cpp.

5008 {
5011 }
__in PVOID ContextPointer
Definition: handleapi.cpp:679
WDFAPI WDFOBJECT(FASTCALL * PFN_WDFOBJECTCONTEXTGETOBJECT)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PVOID ContextPointer)
Definition: wdfobject.h:605
DriverGlobals
PFN_WDFOBJECTCONTEXTGETOBJECT pfnWdfObjectContextGetObject
Definition: fxdynamics.h:255
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
PAGED_CODE_LOCKED()
WDFVERSION WdfVersion

◆ WdfObjectDereferenceActual()

WDFAPI VOID STDCALL WDFEXPORT() WdfObjectDereferenceActual ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_ WDFOBJECT  Handle,
_In_opt_ PVOID  Tag,
_In_ LONG  Line,
_In_z_ PCHAR  File 
)

Definition at line 5034 of file vfwdfdynamics.cpp.

5046 {
5049 }
DriverGlobals
WDFAPI VOID(STDCALL * PFN_WDFOBJECTDEREFERENCEACTUAL)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Handle, _In_opt_ PVOID Tag, _In_ LONG Line, _In_z_ PCHAR File)
Definition: wdfobject.h:663
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID _In_ LONG Line
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
PAGED_CODE_LOCKED()
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
PFN_WDFOBJECTDEREFERENCEACTUAL pfnWdfObjectDereferenceActual
Definition: fxdynamics.h:257
WDFVERSION WdfVersion
_In_ HANDLE Handle
Definition: extypes.h:390
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID _In_ LONG _In_z_ PCHAR File

◆ WdfObjectGetTypedContextWorker()

WDFAPI PVOID FASTCALL WDFEXPORT() WdfObjectGetTypedContextWorker ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_ WDFOBJECT  Handle,
_In_ PCWDF_OBJECT_CONTEXT_TYPE_INFO  TypeInfo 
)

Definition at line 4969 of file vfwdfdynamics.cpp.

4977 {
4980 }
__in WDFOBJECT __in PCWDF_OBJECT_CONTEXT_TYPE_INFO TypeInfo
Definition: handleapi.cpp:601
DriverGlobals
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
PAGED_CODE_LOCKED()
PFN_WDFOBJECTGETTYPEDCONTEXTWORKER pfnWdfObjectGetTypedContextWorker
Definition: fxdynamics.h:253
WDFVERSION WdfVersion
_In_ HANDLE Handle
Definition: extypes.h:390
WDFAPI PVOID(FASTCALL * PFN_WDFOBJECTGETTYPEDCONTEXTWORKER)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Handle, _In_ PCWDF_OBJECT_CONTEXT_TYPE_INFO TypeInfo)
Definition: wdfobject.h:547

◆ WdfObjectReferenceActual()

WDFAPI VOID STDCALL WDFEXPORT() WdfObjectReferenceActual ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_ WDFOBJECT  Handle,
_In_opt_ PVOID  Tag,
_In_ LONG  Line,
_In_z_ PCHAR  File 
)

Definition at line 5015 of file vfwdfdynamics.cpp.

5027 {
5030 }
WDFAPI VOID(STDCALL * PFN_WDFOBJECTREFERENCEACTUAL)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Handle, _In_opt_ PVOID Tag, _In_ LONG Line, _In_z_ PCHAR File)
Definition: wdfobject.h:628
DriverGlobals
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID _In_ LONG Line
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
PAGED_CODE_LOCKED()
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
WDFVERSION WdfVersion
_In_ HANDLE Handle
Definition: extypes.h:390
PFN_WDFOBJECTREFERENCEACTUAL pfnWdfObjectReferenceActual
Definition: fxdynamics.h:256
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID _In_ LONG _In_z_ PCHAR File

◆ WdfRequestSend()

_Must_inspect_result_ WDFAPI BOOLEAN STDCALL WDFEXPORT() WdfRequestSend ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_ WDFREQUEST  Request,
_In_ WDFIOTARGET  Target,
_In_opt_ PWDF_REQUEST_SEND_OPTIONS  Options 
)

Definition at line 5915 of file vfwdfdynamics.cpp.

5925 {
5928 }
_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
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
DriverGlobals
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
PFN_WDFREQUESTSEND pfnWdfRequestSend
Definition: fxdynamics.h:304
PAGED_CODE_LOCKED()
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306
WDFVERSION WdfVersion

◆ WdfVerifierDbgBreakPoint()

WDFAPI VOID STDCALL WDFEXPORT() WdfVerifierDbgBreakPoint ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals)

Definition at line 8049 of file vfwdfdynamics.cpp.

8053 {
8056 }
DriverGlobals
WDFAPI VOID(STDCALL * PFN_WDFVERIFIERDBGBREAKPOINT)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals)
Definition: wdfverifier.h:61
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
PAGED_CODE_LOCKED()
PFN_ROSWDFUNIMPLEMENTED pfnWdfVerifierDbgBreakPoint
Definition: fxdynamics.h:475
WDFVERSION WdfVersion

◆ WdfVerifierKeBugCheck()

WDFAPI VOID STDCALL WDFEXPORT() WdfVerifierKeBugCheck ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_ ULONG  BugCheckCode,
_In_ ULONG_PTR  BugCheckParameter1,
_In_ ULONG_PTR  BugCheckParameter2,
_In_ ULONG_PTR  BugCheckParameter3,
_In_ ULONG_PTR  BugCheckParameter4 
)

Definition at line 8060 of file vfwdfdynamics.cpp.

8074 {
8076  ((PFN_WDFVERIFIERKEBUGCHECK) WdfVersion.Functions.pfnWdfVerifierKeBugCheck)(DriverGlobals, BugCheckCode, BugCheckParameter1, BugCheckParameter2, BugCheckParameter3, BugCheckParameter4);
8077 }
PFN_ROSWDFUNIMPLEMENTED pfnWdfVerifierKeBugCheck
Definition: fxdynamics.h:476
DriverGlobals
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
PAGED_CODE_LOCKED()
WDFAPI VOID(STDCALL * PFN_WDFVERIFIERKEBUGCHECK)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
Definition: wdfverifier.h:80
WDFVERSION WdfVersion

◆ WdfWaitLockAcquire()

_Must_inspect_result_ WDFAPI NTSTATUS STDCALL WDFEXPORT() WdfWaitLockAcquire ( _In_ PWDF_DRIVER_GLOBALS  DriverGlobals,
_In_ _Requires_lock_not_held_(_Curr_) WDFWAITLOCK  Lock,
_In_opt_ PLONGLONG  Timeout 
)

Definition at line 6974 of file vfwdfdynamics.cpp.

6983 {
6986 }
DriverGlobals
WDFFUNCTIONS Functions
Definition: fxdynamics.h:594
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
PAGED_CODE_LOCKED()
_Must_inspect_result_ WDFAPI NTSTATUS(STDCALL * PFN_WDFWAITLOCKACQUIRE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ _Requires_lock_not_held_(_Curr_) WDFWAITLOCK Lock, _In_opt_ PLONGLONG Timeout)
Definition: wdfsync.h:155
static ULONG Timeout
Definition: ping.c:61
WDFVERSION WdfVersion
PFN_WDFWAITLOCKACQUIRE pfnWdfWaitLockAcquire
Definition: fxdynamics.h:364

Variable Documentation

◆ Action

◆ AddressDescription

◆ AlignmentRequirement

Definition at line 1477 of file fxdynamics.h.

◆ AttachedDeviceObject

◆ Attributes

◆ Buffer

◆ BufferLength

◆ BufferSize

Definition at line 4154 of file fxdynamics.h.

◆ BusInformation

Definition at line 1958 of file fxdynamics.h.

◆ BytesRead

◆ BytesReturned

◆ BytesTransferred

◆ BytesWritten

◆ Callback

Definition at line 3212 of file fxdynamics.h.

◆ CallbackTypes

◆ CapabilityBufferLength

◆ CapabilityType

Definition at line 6396 of file fxdynamics.h.

◆ Child

_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFDEVICE Child

Definition at line 3079 of file fxdynamics.h.

◆ ChildList

_In_ WDFCHILDLIST ChildList

Definition at line 608 of file fxdynamics.h.

◆ ChildListAttributes

◆ Collection

◆ CollectionAttributes

Definition at line 787 of file fxdynamics.h.

◆ CommonBuffer

_In_ WDFCOMMONBUFFER CommonBuffer

Definition at line 892 of file fxdynamics.h.

◆ CompatibleID

◆ CompletionContext

◆ CompletionRoutine

◆ Config

◆ ConfigDescriptor

◆ ConfigDescriptorLength

◆ ConfigDirection

◆ Configuration

◆ ConfigureContext

◆ ConfigureRoutine

◆ ContainerID

◆ Context

◆ ControlBlock

◆ CreateDisposition

◆ CreateOptions

◆ CurrentFrameNumber

Definition at line 6254 of file fxdynamics.h.

◆ CxDeviceInit

_In_ PWDFCXDEVICE_INIT CxDeviceInit

Definition at line 1012 of file fxdynamics.h.

Referenced by WDFDEVICE_INIT::AddCxDeviceInit().

◆ CxFileObjectConfig

Definition at line 1058 of file fxdynamics.h.

◆ Data

◆ DefaultChildListAttributes

◆ DependentDevice

Definition at line 1212 of file fxdynamics.h.

◆ Descriptor

Definition at line 5697 of file fxdynamics.h.

◆ DesiredAccess

◆ DestinationMemory

Definition at line 4204 of file fxdynamics.h.

◆ DestinationOffset

Definition at line 4204 of file fxdynamics.h.

◆ DestinationQueue

Definition at line 5486 of file fxdynamics.h.

◆ Device

Definition at line 608 of file fxdynamics.h.

◆ DeviceAttributes

◆ DeviceCharacteristics

◆ DeviceClassGuid

◆ DeviceDescription

◆ DeviceID

◆ DeviceInit

Definition at line 973 of file fxdynamics.h.

◆ DeviceInstanceKeyType

◆ DeviceLocation

◆ DeviceName

◆ DeviceObject

◆ DeviceOffset

Definition at line 3864 of file fxdynamics.h.

◆ DeviceProperty

◆ DeviceState

Definition at line 1093 of file fxdynamics.h.

◆ DeviceType

◆ DispatchContext

◆ DispatchTable

◆ DmaCompletionContext

◆ DmaCompletionRoutine

◆ DmaDirection

Definition at line 2345 of file fxdynamics.h.

◆ DmaEnabler

Definition at line 887 of file fxdynamics.h.

◆ DmaEnablerHandle

◆ DmaTransaction

_In_ WDFDMATRANSACTION DmaTransaction

Definition at line 2372 of file fxdynamics.h.

◆ Dpc

_In_ WDFDPC Dpc

Definition at line 2712 of file fxdynamics.h.

◆ DrainComplete

Definition at line 3539 of file fxdynamics.h.

◆ Driver

Definition at line 960 of file fxdynamics.h.

◆ DriverAttributes

◆ DriverConfig

◆ DriverContext

◆ DriverObject

◆ DriverRequests

Definition at line 3394 of file fxdynamics.h.

◆ DueTime

Definition at line 6032 of file fxdynamics.h.

◆ EndpointIndex

Definition at line 6765 of file fxdynamics.h.

◆ EndpointInfo

Definition at line 6765 of file fxdynamics.h.

◆ EventDataSize

Definition at line 6994 of file fxdynamics.h.

◆ EvtCxDeviceWdmIrpPreprocess

Definition at line 1012 of file fxdynamics.h.

◆ EvtDevicePnpStateChange

◆ EvtDevicePowerPolicyStateChange

◆ EvtDevicePowerStateChange

◆ EvtDeviceWdmIrpDisptach

◆ EvtDeviceWdmIrpPreprocess

◆ EvtIoInCallerContext

◆ EvtProgramDmaFunction

Definition at line 2388 of file fxdynamics.h.

◆ EvtRequestCancel

◆ EvtReserveDmaContext

◆ EvtReserveDmaFunction

◆ EvtTraceCallback

◆ FailedAction

Definition at line 1985 of file fxdynamics.h.

◆ Fdo

_In_ WDFDEVICE Fdo

Definition at line 3046 of file fxdynamics.h.

◆ FdoEventCallbacks

◆ File

Definition at line 2026 of file fxdynamics.h.

◆ FileObject

_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT FileObject

Definition at line 2062 of file fxdynamics.h.

◆ FileObjectAttributes

◆ FileObjectConfig

◆ FileType

Definition at line 1427 of file fxdynamics.h.

◆ FileTypeIsSupported

◆ FinalTransferredLength

Definition at line 2505 of file fxdynamics.h.

◆ Flags

Definition at line 973 of file fxdynamics.h.

◆ ForwardOptions

◆ ForwardProgressPolicy

◆ FoundRequest

Definition at line 3490 of file fxdynamics.h.

◆ Guid

◆ HardwareID

◆ IdentificationDescription

◆ Index

_In_ WDFCMRESLIST _In_ ULONG Index

Definition at line 838 of file fxdynamics.h.

◆ Info

Definition at line 702 of file fxdynamics.h.

◆ Information

◆ InputBuffer

◆ InputBufferOffset

Definition at line 3928 of file fxdynamics.h.

◆ Instance

◆ InstanceAttributes

◆ InstanceConfig

◆ InstanceID

◆ Interface

_In_ WDFUSBINTERFACE Interface

Definition at line 3046 of file fxdynamics.h.

◆ InterfaceClassGUID

Definition at line 1827 of file fxdynamics.h.

◆ InterfaceConfig

◆ InterfaceDescriptor

Definition at line 6723 of file fxdynamics.h.

◆ InterfaceIndex

_In_ WDFUSBDEVICE _In_ UCHAR InterfaceIndex

Definition at line 6782 of file fxdynamics.h.

◆ InterfaceSpecificData

◆ InterfaceType

Definition at line 3046 of file fxdynamics.h.

◆ Interrupt

_In_ WDFINTERRUPT Interrupt

Definition at line 3175 of file fxdynamics.h.

◆ IoctlCode

Definition at line 3948 of file fxdynamics.h.

◆ IoResList

_In_ WDFIORESREQLIST _In_ WDFIORESLIST IoResList

Definition at line 5601 of file fxdynamics.h.

◆ IoTarget

_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFIOTARGET IoTarget

Definition at line 3640 of file fxdynamics.h.

◆ IoTargetAttributes

◆ IoType

◆ IoTypeConfig

◆ Irp

◆ IsExclusive

◆ IsInterfaceEnabled

◆ IsPowerPolicyOwner

◆ Item

_In_ WDFCOLLECTION _In_ WDFOBJECT Item

Definition at line 825 of file fxdynamics.h.

◆ Iterator

Definition at line 688 of file fxdynamics.h.

◆ Key

Definition at line 1388 of file fxdynamics.h.

◆ KeyAttributes

◆ KeyName

◆ LangID

Definition at line 6153 of file fxdynamics.h.

◆ Length

Definition at line 5307 of file fxdynamics.h.

◆ Line

Definition at line 2026 of file fxdynamics.h.

◆ List

_In_ WDFCMRESLIST List

Definition at line 5792 of file fxdynamics.h.

◆ LocaleId

Definition at line 4500 of file fxdynamics.h.

◆ Lock

◆ LockAttributes

◆ Lookaside

Definition at line 4230 of file fxdynamics.h.

◆ LookasideAttributes

◆ MajorFunction

Definition at line 1012 of file fxdynamics.h.

◆ MapRegisterCount

_In_ WDFDMATRANSACTION _Out_opt_ ULONG* MapRegisterCount

Definition at line 2577 of file fxdynamics.h.

◆ MaximumLength

_In_ WDFDMATRANSACTION _In_ size_t MaximumLength

Definition at line 2531 of file fxdynamics.h.

◆ Mdl

Definition at line 2388 of file fxdynamics.h.

◆ Memory

_Must_inspect_result_ _In_ WDFUSBDEVICE _In_ WDFREQUEST _In_ WDFMEMORY Memory

Definition at line 4122 of file fxdynamics.h.

◆ MemoryAttributes

◆ MemoryDescriptor

◆ MemoryObject

Definition at line 5443 of file fxdynamics.h.

◆ MemoryOffsets

◆ MinimumRequiredLength

◆ MinimumRequiredSize

Definition at line 5322 of file fxdynamics.h.

◆ MinorFunctions

◆ MofResourceName

◆ Notification

◆ NumberOfIsochPackets

◆ NumCharacters

◆ NumMinorFunctions

◆ Object

◆ Offset

Definition at line 2411 of file fxdynamics.h.

◆ OpenParams

◆ Options

◆ OrInValues

◆ OtherArg1

_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_ ULONG _In_opt_ WDFMEMORY OtherArg1

Definition at line 4044 of file fxdynamics.h.

◆ OtherArg1Offset

Definition at line 4070 of file fxdynamics.h.

◆ OtherArg2

Definition at line 4044 of file fxdynamics.h.

◆ OtherArg2Offset

◆ OtherArg4

Definition at line 4044 of file fxdynamics.h.

◆ OtherArg4Offset

◆ OutputBuffer

◆ OutputBufferOffset

◆ OutRequest

_Must_inspect_result_ _In_ WDFQUEUE _In_ WDFREQUEST _Out_ WDFREQUEST* OutRequest

Definition at line 3460 of file fxdynamics.h.

◆ Parameters

Definition at line 3490 of file fxdynamics.h.

◆ Params

◆ ParentDevice

Definition at line 4406 of file fxdynamics.h.

◆ ParentDeviceQueue

Definition at line 5558 of file fxdynamics.h.

◆ ParentKey

Definition at line 4684 of file fxdynamics.h.

◆ Pdo

◆ PhysicalDevice

Definition at line 1239 of file fxdynamics.h.

◆ Pipe

Definition at line 6456 of file fxdynamics.h.

◆ PIPE

Definition at line 6682 of file fxdynamics.h.

◆ PipeAttributes

◆ PipeIndex

_In_ WDFUSBINTERFACE _In_ UCHAR PipeIndex

Definition at line 6817 of file fxdynamics.h.

◆ PipeInfo

Definition at line 6817 of file fxdynamics.h.

◆ PipeInformation

Definition at line 6456 of file fxdynamics.h.

◆ PipesAttributes

◆ PnpCapabilities

Definition at line 1932 of file fxdynamics.h.

◆ PnpPowerEventCallbacks

◆ PnpState

◆ Policy

Definition at line 3299 of file fxdynamics.h.

◆ PolicyAndGroup

Definition at line 3316 of file fxdynamics.h.

◆ PoolTag

◆ PoolType

◆ PowerCapabilities

◆ PowerFrameworkSettings

◆ PowerPolicyEventCallbacks

◆ PowerPolicyState

◆ PowerState

◆ PreviousChild

Definition at line 3104 of file fxdynamics.h.

◆ Priority

◆ PriorityBoost

Definition at line 5232 of file fxdynamics.h.

◆ ProfileConfig

◆ PropertyBuffer

◆ PropertyMemory

◆ PropertyMemoryAttributes

◆ ProviderAttributes

◆ ProviderControl

Definition at line 6906 of file fxdynamics.h.

◆ PurgeComplete

Definition at line 3567 of file fxdynamics.h.

◆ QueryBufferLength

◆ Queue

_In_ WDFIOTARGET _In_ WDFQUEUE Queue

Definition at line 1194 of file fxdynamics.h.

◆ QueueAttributes

◆ QueueReady

◆ QueueRequests

Definition at line 3394 of file fxdynamics.h.

◆ ReadMemory

_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY ReadMemory

Definition at line 6572 of file fxdynamics.h.

◆ ReadOffset

Definition at line 6572 of file fxdynamics.h.

◆ ReferenceString

◆ RegistryPath

◆ ReleaseHardwareOrderOnFailure

◆ Request

_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST Request

Definition at line 2076 of file fxdynamics.h.

◆ RequestAttributes

◆ RequestFreesIrp

◆ RequestOptions

◆ RequestType

◆ Requeue

_In_ WDFREQUEST _In_ BOOLEAN Requeue

Definition at line 5522 of file fxdynamics.h.

◆ RequiredMapRegisters

Definition at line 2635 of file fxdynamics.h.

◆ RequiredSize

◆ RequirementsList

Definition at line 5573 of file fxdynamics.h.

◆ ResourceList

_In_ WDFIORESLIST ResourceList

Definition at line 5681 of file fxdynamics.h.

◆ ResultLength

◆ RetrieveInfo

◆ ReuseParams

Definition at line 5026 of file fxdynamics.h.

◆ ScatterGatherElementCount

Definition at line 2577 of file fxdynamics.h.

◆ SDDLString

◆ SettingIndex

_In_ WDFUSBINTERFACE _In_ UCHAR SettingIndex

Definition at line 6710 of file fxdynamics.h.

◆ Settings