/*++ Module Name: VfFxDynamics.h Abstract: Generated header for WDF API Verifier hooks Environment: user mode only Warning: manual changes to this file will be lost. --*/ #ifndef _VFFXDYNAMICS_H_ #define _VFFXDYNAMICS_H_ _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfCollectionCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_opt_ PWDF_OBJECT_ATTRIBUTES CollectionAttributes, _Out_ WDFCOLLECTION* Collection ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI ULONG VFWDFEXPORT(WdfCollectionGetCount)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFCOLLECTION Collection ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfCollectionAdd)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFCOLLECTION Collection, _In_ WDFOBJECT Object ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfCollectionRemove)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFCOLLECTION Collection, _In_ WDFOBJECT Item ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfCollectionRemoveItem)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFCOLLECTION Collection, _In_ ULONG Index ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFOBJECT VFWDFEXPORT(WdfCollectionGetItem)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFCOLLECTION Collection, _In_ ULONG Index ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFOBJECT VFWDFEXPORT(WdfCollectionGetFirstItem)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFCOLLECTION Collection ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFOBJECT VFWDFEXPORT(WdfCollectionGetLastItem)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFCOLLECTION Collection ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI PWDFCXDEVICE_INIT VFWDFEXPORT(WdfCxDeviceInitAllocate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfCxDeviceInitSetRequestAttributes)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFCXDEVICE_INIT CxDeviceInit, _In_ PWDF_OBJECT_ATTRIBUTES RequestAttributes ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfCxDeviceInitSetFileObjectConfig)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFCXDEVICE_INIT CxDeviceInit, _In_ PWDFCX_FILEOBJECT_CONFIG CxFileObjectConfig, _In_opt_ PWDF_OBJECT_ATTRIBUTES FileObjectAttributes ); WDFAPI VOID VFWDFEXPORT(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 ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceGetDeviceState)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _Out_ PWDF_DEVICE_STATE DeviceState ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceSetDeviceState)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_DEVICE_STATE DeviceState ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceWdmDispatchIrp)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PIRP Irp, _In_ WDFCONTEXT DispatchContext ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceWdmDispatchIrpToIoQueue)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PIRP Irp, _In_ WDFQUEUE Queue, _In_ ULONG Flags ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFDRIVER VFWDFEXPORT(WdfDeviceGetDriver)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFIOTARGET VFWDFEXPORT(WdfDeviceGetIoTarget)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceAssignS0IdleSettings)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_DEVICE_POWER_POLICY_IDLE_SETTINGS Settings ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceAssignSxWakeSettings)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_DEVICE_POWER_POLICY_WAKE_SETTINGS Settings ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceOpenRegistryKey)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ ULONG DeviceInstanceKeyType, _In_ ACCESS_MASK DesiredAccess, _In_opt_ PWDF_OBJECT_ATTRIBUTES KeyAttributes, _Out_ WDFKEY* Key ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceOpenDevicemapKey)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PCUNICODE_STRING KeyName, _In_ ACCESS_MASK DesiredAccess, _In_opt_ PWDF_OBJECT_ATTRIBUTES KeyAttributes, _Out_ WDFKEY* Key ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceInitSetPnpPowerEventCallbacks)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit, _In_ PWDF_PNPPOWER_EVENT_CALLBACKS PnpPowerEventCallbacks ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceInitSetPowerPolicyEventCallbacks)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit, _In_ PWDF_POWER_POLICY_EVENT_CALLBACKS PowerPolicyEventCallbacks ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceInitSetPowerPolicyOwnership)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit, _In_ BOOLEAN IsPowerPolicyOwner ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceInitSetIoType)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit, _In_ WDF_DEVICE_IO_TYPE IoType ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceInitSetFileObjectConfig)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit, _In_ PWDF_FILEOBJECT_CONFIG FileObjectConfig, _In_opt_ PWDF_OBJECT_ATTRIBUTES FileObjectAttributes ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceInitSetRequestAttributes)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit, _In_ PWDF_OBJECT_ATTRIBUTES RequestAttributes ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _Inout_ PWDFDEVICE_INIT* DeviceInit, _In_opt_ PWDF_OBJECT_ATTRIBUTES DeviceAttributes, _Out_ WDFDEVICE* Device ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceSetStaticStopRemove)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ BOOLEAN Stoppable ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceCreateDeviceInterface)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ CONST GUID* InterfaceClassGUID, _In_opt_ PCUNICODE_STRING ReferenceString ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceSetDeviceInterfaceState)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ CONST GUID* InterfaceClassGUID, _In_opt_ PCUNICODE_STRING ReferenceString, _In_ BOOLEAN IsInterfaceEnabled ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceRetrieveDeviceInterfaceString)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ CONST GUID* InterfaceClassGUID, _In_opt_ PCUNICODE_STRING ReferenceString, _In_ WDFSTRING String ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceCreateSymbolicLink)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PCUNICODE_STRING SymbolicLinkName ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceQueryProperty)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty, _In_ ULONG BufferLength, _Out_writes_bytes_all_(BufferLength) PVOID PropertyBuffer, _Out_ PULONG ResultLength ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceAllocAndQueryProperty)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty, _In_ _Strict_type_match_ POOL_TYPE PoolType, _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes, _Out_ WDFMEMORY* PropertyMemory ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceSetPnpCapabilities)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_DEVICE_PNP_CAPABILITIES PnpCapabilities ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceSetPowerCapabilities)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_DEVICE_POWER_CAPABILITIES PowerCapabilities ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceSetFailed)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ WDF_DEVICE_FAILED_ACTION FailedAction ); _Must_inspect_result_ _When_(WaitForD0 == 0, _IRQL_requires_max_(DISPATCH_LEVEL)) _When_(WaitForD0 != 0, _IRQL_requires_max_(PASSIVE_LEVEL)) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceStopIdleNoTrack)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ BOOLEAN WaitForD0 ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceResumeIdleNoTrack)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device ); _Must_inspect_result_ _When_(WaitForD0 == 0, _IRQL_requires_max_(DISPATCH_LEVEL)) _When_(WaitForD0 != 0, _IRQL_requires_max_(PASSIVE_LEVEL)) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceStopIdleActual)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ BOOLEAN WaitForD0, _In_opt_ PVOID Tag, _In_ LONG Line, _In_z_ PCHAR File ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceResumeIdleActual)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_opt_ PVOID Tag, _In_ LONG Line, _In_z_ PCHAR File ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFFILEOBJECT VFWDFEXPORT(WdfDeviceGetFileObject)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PFILE_OBJECT FileObject ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFQUEUE VFWDFEXPORT(WdfDeviceGetDefaultQueue)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceConfigureRequestDispatching)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ WDFQUEUE Queue, _In_ _Strict_type_match_ WDF_REQUEST_TYPE RequestType ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceConfigureWdmIrpDispatchCallback)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_opt_ WDFDRIVER Driver, _In_ UCHAR MajorFunction, _In_ PFN_WDFDEVICE_WDM_IRP_DISPATCH EvtDeviceWdmIrpDisptach, _In_opt_ WDFCONTEXT DriverContext ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI POWER_ACTION VFWDFEXPORT(WdfDeviceGetSystemPowerAction)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceInitSetReleaseHardwareOrderOnFailure)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit, _In_ WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE ReleaseHardwareOrderOnFailure ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceInitSetIoTypeEx)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit, _In_ PWDF_IO_TYPE_CONFIG IoTypeConfig ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDevicePostEvent)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ REFGUID EventGuid, _In_ WDF_EVENT_TYPE WdfEventType, _In_reads_bytes_(DataSizeCb) BYTE* Data, _In_ ULONG DataSizeCb ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceMapIoSpace)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PHYSICAL_ADDRESS PhysicalAddress, _In_ SIZE_T NumberOfBytes, _In_ MEMORY_CACHING_TYPE CacheType, _Out_ PVOID* PseudoBaseAddress ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceUnmapIoSpace)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PVOID PseudoBaseAddress, _In_ SIZE_T NumberOfBytes ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI PVOID VFWDFEXPORT(WdfDeviceGetHardwareRegisterMappedAddress)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PVOID PseudoBaseAddress ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI SIZE_T VFWDFEXPORT(WdfDeviceReadFromHardware)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE Type, _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE Size, _In_ PVOID TargetAddress, _Out_writes_all_opt_(Count) PVOID Buffer, _In_opt_ ULONG Count ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceWriteToHardware)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ WDF_DEVICE_HWACCESS_TARGET_TYPE Type, _In_ WDF_DEVICE_HWACCESS_TARGET_SIZE Size, _In_ PVOID TargetAddress, _In_ SIZE_T Value, _In_reads_opt_(Count) PVOID Buffer, _In_opt_ ULONG Count ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceAssignInterfaceProperty)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData, _In_ DEVPROPTYPE Type, _In_ ULONG BufferLength, _In_reads_bytes_opt_(BufferLength) PVOID PropertyBuffer ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceAllocAndQueryInterfaceProperty)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData, _In_ POOL_TYPE PoolType, _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes, _Out_ WDFMEMORY* PropertyMemory, _Out_ PDEVPROPTYPE Type ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceQueryInterfaceProperty)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData, _In_ ULONG BufferLength, _Out_writes_bytes_opt_(BufferLength) PVOID PropertyBuffer, _Out_ PULONG ResultLength, _Out_ PDEVPROPTYPE Type ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceGetDeviceStackIoType)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _Out_ WDF_DEVICE_IO_TYPE* ReadWriteIoType, _Out_ WDF_DEVICE_IO_TYPE* IoControlIoType ); _Must_inspect_result_ _IRQL_requires_max_(APC_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceQueryPropertyEx)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_DEVICE_PROPERTY_DATA DeviceProperty, _In_ ULONG BufferLength, _Out_ PVOID PropertyBuffer, _Out_ PULONG RequiredSize, _Out_ PDEVPROPTYPE Type ); _Must_inspect_result_ _IRQL_requires_max_(APC_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceAllocAndQueryPropertyEx)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_DEVICE_PROPERTY_DATA DeviceProperty, _In_ _Strict_type_match_ POOL_TYPE PoolType, _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes, _Out_ WDFMEMORY* PropertyMemory, _Out_ PDEVPROPTYPE Type ); _Must_inspect_result_ _IRQL_requires_max_(APC_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceAssignProperty)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_DEVICE_PROPERTY_DATA DeviceProperty, _In_ DEVPROPTYPE Type, _In_ ULONG Size, _In_opt_ PVOID Data ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFIOTARGET VFWDFEXPORT(WdfDeviceGetSelfIoTarget)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceInitAllowSelfIoTarget)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDriverCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PDRIVER_OBJECT DriverObject, _In_ PCUNICODE_STRING RegistryPath, _In_opt_ PWDF_OBJECT_ATTRIBUTES DriverAttributes, _In_ PWDF_DRIVER_CONFIG DriverConfig, _Out_opt_ WDFDRIVER* Driver ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI PWSTR VFWDFEXPORT(WdfDriverGetRegistryPath)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDRIVER Driver ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDriverOpenParametersRegistryKey)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDRIVER Driver, _In_ ACCESS_MASK DesiredAccess, _In_opt_ PWDF_OBJECT_ATTRIBUTES KeyAttributes, _Out_ WDFKEY* Key ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDriverRetrieveVersionString)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDRIVER Driver, _In_ WDFSTRING String ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN VFWDFEXPORT(WdfDriverIsVersionAvailable)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDRIVER Driver, _In_ PWDF_DRIVER_VERSION_AVAILABLE_PARAMS VersionAvailableParams ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfFdoInitOpenRegistryKey)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit, _In_ ULONG DeviceInstanceKeyType, _In_ ACCESS_MASK DesiredAccess, _In_opt_ PWDF_OBJECT_ATTRIBUTES KeyAttributes, _Out_ WDFKEY* Key ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfFdoInitQueryProperty)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit, _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty, _In_ ULONG BufferLength, _Out_writes_bytes_all_opt_(BufferLength) PVOID PropertyBuffer, _Out_ PULONG ResultLength ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfFdoInitAllocAndQueryProperty)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit, _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty, _In_ _Strict_type_match_ POOL_TYPE PoolType, _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes, _Out_ WDFMEMORY* PropertyMemory ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfFdoInitQueryPropertyEx)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit, _In_ PWDF_DEVICE_PROPERTY_DATA DeviceProperty, _In_ ULONG BufferLength, _Out_ PVOID PropertyBuffer, _Out_ PULONG ResultLength, _Out_ PDEVPROPTYPE Type ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfFdoInitAllocAndQueryPropertyEx)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit, _In_ PWDF_DEVICE_PROPERTY_DATA DeviceProperty, _In_ _Strict_type_match_ POOL_TYPE PoolType, _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes, _Out_ WDFMEMORY* PropertyMemory, _Out_ PDEVPROPTYPE Type ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfFdoInitSetFilter)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI PUNICODE_STRING VFWDFEXPORT(WdfFileObjectGetFileName)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFFILEOBJECT FileObject ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFDEVICE VFWDFEXPORT(WdfFileObjectGetDevice)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFFILEOBJECT FileObject ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI ULONG VFWDFEXPORT(WdfFileObjectGetInitiatorProcessId)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFFILEOBJECT FileObject ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI WDFFILEOBJECT VFWDFEXPORT(WdfFileObjectGetRelatedFileObject)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFFILEOBJECT FileObject ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfDeviceInitEnableHidInterface)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfDeviceHidNotifyPresence)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ BOOLEAN IsPresent ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfInterruptCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_INTERRUPT_CONFIG Configuration, _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes, _Out_ WDFINTERRUPT* Interrupt ); WDFAPI BOOLEAN VFWDFEXPORT(WdfInterruptQueueDpcForIsr)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt ); WDFAPI BOOLEAN VFWDFEXPORT(WdfInterruptQueueWorkItemForIsr)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BOOLEAN VFWDFEXPORT(WdfInterruptSynchronize)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt, _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback, _In_ WDFCONTEXT Context ); _IRQL_requires_max_(DISPATCH_LEVEL + 1) WDFAPI VOID VFWDFEXPORT(WdfInterruptAcquireLock)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ _Requires_lock_not_held_(_Curr_) _Acquires_lock_(_Curr_) WDFINTERRUPT Interrupt ); _IRQL_requires_max_(DISPATCH_LEVEL + 1) WDFAPI VOID VFWDFEXPORT(WdfInterruptReleaseLock)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ _Requires_lock_held_(_Curr_) _Releases_lock_(_Curr_) WDFINTERRUPT Interrupt ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfInterruptEnable)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfInterruptDisable)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfInterruptGetInfo)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt, _Out_ PWDF_INTERRUPT_INFO Info ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfInterruptSetPolicy)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt, _In_ WDF_INTERRUPT_POLICY Policy, _In_ WDF_INTERRUPT_PRIORITY Priority, _In_ KAFFINITY TargetProcessorSet ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfInterruptSetExtendedPolicy)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt, _In_ PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup ); WDFAPI WDFDEVICE VFWDFEXPORT(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 VFWDFEXPORT(WdfInterruptTryToAcquireLock)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ _Requires_lock_not_held_(_Curr_) _When_(return!=0, _Acquires_lock_(_Curr_)) WDFINTERRUPT Interrupt ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoQueueCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_IO_QUEUE_CONFIG Config, _In_opt_ PWDF_OBJECT_ATTRIBUTES QueueAttributes, _Out_opt_ WDFQUEUE* Queue ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDF_IO_QUEUE_STATE VFWDFEXPORT(WdfIoQueueGetState)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue, _Out_opt_ PULONG QueueRequests, _Out_opt_ PULONG DriverRequests ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfIoQueueStart)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfIoQueueStop)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue, _When_(Context != 0, _In_) _When_(Context == 0, _In_opt_) PFN_WDF_IO_QUEUE_STATE StopComplete, _When_(StopComplete != 0, _In_) _When_(StopComplete == 0, _In_opt_) WDFCONTEXT Context ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfIoQueueStopSynchronously)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFDEVICE VFWDFEXPORT(WdfIoQueueGetDevice)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoQueueRetrieveNextRequest)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue, _Out_ WDFREQUEST* OutRequest ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoQueueRetrieveRequestByFileObject)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue, _In_ WDFFILEOBJECT FileObject, _Out_ WDFREQUEST* OutRequest ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoQueueFindRequest)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue, _In_opt_ WDFREQUEST FoundRequest, _In_opt_ WDFFILEOBJECT FileObject, _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters, _Out_ WDFREQUEST* OutRequest ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoQueueRetrieveFoundRequest)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue, _In_ WDFREQUEST FoundRequest, _Out_ WDFREQUEST* OutRequest ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfIoQueueDrainSynchronously)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfIoQueueDrain)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue, _When_(Context != 0, _In_) _When_(Context == 0, _In_opt_) PFN_WDF_IO_QUEUE_STATE DrainComplete, _When_(DrainComplete != 0, _In_) _When_(DrainComplete == 0, _In_opt_) WDFCONTEXT Context ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfIoQueuePurgeSynchronously)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfIoQueuePurge)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue, _When_(Context != 0, _In_) _When_(Context == 0, _In_opt_) PFN_WDF_IO_QUEUE_STATE PurgeComplete, _When_(PurgeComplete != 0, _In_) _When_(PurgeComplete == 0, _In_opt_) WDFCONTEXT Context ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoQueueReadyNotify)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue, _In_opt_ PFN_WDF_IO_QUEUE_STATE QueueReady, _In_opt_ WDFCONTEXT Context ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfIoQueueStopAndPurge)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue, _When_(Context != 0, _In_) _When_(Context == 0, _In_opt_) PFN_WDF_IO_QUEUE_STATE StopAndPurgeComplete, _When_(StopAndPurgeComplete != 0, _In_) _When_(StopAndPurgeComplete == 0, _In_opt_) WDFCONTEXT Context ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfIoQueueStopAndPurgeSynchronously)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFQUEUE Queue ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoTargetCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_opt_ PWDF_OBJECT_ATTRIBUTES IoTargetAttributes, _Out_ WDFIOTARGET* IoTarget ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoTargetOpen)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget, _In_ PWDF_IO_TARGET_OPEN_PARAMS OpenParams ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfIoTargetCloseForQueryRemove)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfIoTargetClose)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoTargetStart)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget ); _When_(Action == 3, _IRQL_requires_max_(DISPATCH_LEVEL)) _When_(Action == 0 || Action == 1 || Action == 2, _IRQL_requires_max_(PASSIVE_LEVEL)) WDFAPI VOID VFWDFEXPORT(WdfIoTargetStop)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget, _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action ); _When_(Action == 2, _IRQL_requires_max_(DISPATCH_LEVEL)) _When_(Action == 0 || Action == 1, _IRQL_requires_max_(PASSIVE_LEVEL)) WDFAPI VOID VFWDFEXPORT(WdfIoTargetPurge)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget, _In_ _Strict_type_match_ WDF_IO_TARGET_PURGE_IO_ACTION Action ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDF_IO_TARGET_STATE VFWDFEXPORT(WdfIoTargetGetState)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFDEVICE VFWDFEXPORT(WdfIoTargetGetDevice)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI HANDLE VFWDFEXPORT(WdfIoTargetWdmGetTargetFileHandle)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoTargetSendReadSynchronously)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget, _In_opt_ WDFREQUEST Request, _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer, _In_opt_ PLONGLONG DeviceOffset, _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions, _Out_opt_ PULONG_PTR BytesRead ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoTargetFormatRequestForRead)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget, _In_ WDFREQUEST Request, _In_opt_ WDFMEMORY OutputBuffer, _In_opt_ PWDFMEMORY_OFFSET OutputBufferOffset, _In_opt_ PLONGLONG DeviceOffset ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoTargetSendWriteSynchronously)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget, _In_opt_ WDFREQUEST Request, _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer, _In_opt_ PLONGLONG DeviceOffset, _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions, _Out_opt_ PULONG_PTR BytesWritten ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoTargetFormatRequestForWrite)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget, _In_ WDFREQUEST Request, _In_opt_ WDFMEMORY InputBuffer, _In_opt_ PWDFMEMORY_OFFSET InputBufferOffset, _In_opt_ PLONGLONG DeviceOffset ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoTargetSendIoctlSynchronously)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget, _In_opt_ WDFREQUEST Request, _In_ ULONG IoctlCode, _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer, _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer, _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions, _Out_opt_ PULONG_PTR BytesReturned ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoTargetFormatRequestForIoctl)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget, _In_ WDFREQUEST Request, _In_ ULONG IoctlCode, _In_opt_ WDFMEMORY InputBuffer, _In_opt_ PWDFMEMORY_OFFSET InputBufferOffset, _In_opt_ WDFMEMORY OutputBuffer, _In_opt_ PWDFMEMORY_OFFSET OutputBufferOffset ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfIoTargetSelfAssignDefaultIoQueue)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget, _In_ WDFQUEUE Queue ); _Must_inspect_result_ _When_(PoolType == 1 || PoolType == 257, _IRQL_requires_max_(APC_LEVEL)) _When_(PoolType == 0 || PoolType == 256, _IRQL_requires_max_(DISPATCH_LEVEL)) WDFAPI NTSTATUS VFWDFEXPORT(WdfMemoryCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes, _In_ _Strict_type_match_ POOL_TYPE PoolType, _In_opt_ ULONG PoolTag, _In_ _When_(BufferSize == 0, __drv_reportError(BufferSize cannot be zero)) size_t BufferSize, _Out_ WDFMEMORY* Memory, _Outptr_opt_result_bytebuffer_(BufferSize) PVOID* Buffer ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfMemoryCreatePreallocated)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes, _In_ __drv_aliasesMem PVOID Buffer, _In_ _When_(BufferSize == 0, __drv_reportError(BufferSize cannot be zero)) size_t BufferSize, _Out_ WDFMEMORY* Memory ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI PVOID VFWDFEXPORT(WdfMemoryGetBuffer)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFMEMORY Memory, _Out_opt_ size_t* BufferSize ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfMemoryAssignBuffer)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFMEMORY Memory, _Pre_notnull_ _Pre_writable_byte_size_(BufferSize) PVOID Buffer, _In_ _When_(BufferSize == 0, __drv_reportError(BufferSize cannot be zero)) size_t BufferSize ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfMemoryCopyToBuffer)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFMEMORY SourceMemory, _In_ size_t SourceOffset, _Out_writes_bytes_( NumBytesToCopyTo ) PVOID Buffer, _In_ _When_(NumBytesToCopyTo == 0, __drv_reportError(NumBytesToCopyTo cannot be zero)) size_t NumBytesToCopyTo ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfMemoryCopyFromBuffer)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFMEMORY DestinationMemory, _In_ size_t DestinationOffset, _In_ PVOID Buffer, _In_ _When_(NumBytesToCopyFrom == 0, __drv_reportError(NumBytesToCopyFrom cannot be zero)) size_t NumBytesToCopyFrom ); WDFAPI PVOID FASTCALL VFWDFEXPORT(WdfObjectGetTypedContextWorker)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Handle, _In_ PCWDF_OBJECT_CONTEXT_TYPE_INFO TypeInfo ); WDFAPI NTSTATUS VFWDFEXPORT(WdfObjectAllocateContext)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Handle, _In_ PWDF_OBJECT_ATTRIBUTES ContextAttributes, _Outptr_opt_ PVOID* Context ); WDFAPI WDFOBJECT FASTCALL VFWDFEXPORT(WdfObjectContextGetObject)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PVOID ContextPointer ); WDFAPI VOID VFWDFEXPORT(WdfObjectReferenceActual)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Handle, _In_opt_ PVOID Tag, _In_ LONG Line, _In_z_ PCHAR File ); WDFAPI VOID VFWDFEXPORT(WdfObjectDereferenceActual)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Handle, _In_opt_ PVOID Tag, _In_ LONG Line, _In_z_ PCHAR File ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfObjectCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes, _Out_ WDFOBJECT* Object ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfObjectDelete)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Object ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfObjectQuery)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFOBJECT Object, _In_ CONST GUID* Guid, _In_ ULONG QueryBufferLength, _Out_writes_bytes_(QueryBufferLength) PVOID QueryBuffer ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryOpenKey)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_opt_ WDFKEY ParentKey, _In_ PCUNICODE_STRING KeyName, _In_ ACCESS_MASK DesiredAccess, _In_opt_ PWDF_OBJECT_ATTRIBUTES KeyAttributes, _Out_ WDFKEY* Key ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryCreateKey)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_opt_ WDFKEY ParentKey, _In_ PCUNICODE_STRING KeyName, _In_ ACCESS_MASK DesiredAccess, _In_ ULONG CreateOptions, _Out_opt_ PULONG CreateDisposition, _In_opt_ PWDF_OBJECT_ATTRIBUTES KeyAttributes, _Out_ WDFKEY* Key ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfRegistryClose)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI HANDLE VFWDFEXPORT(WdfRegistryWdmGetHandle)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryRemoveKey)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryRemoveValue)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key, _In_ PCUNICODE_STRING ValueName ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryQueryValue)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key, _In_ PCUNICODE_STRING ValueName, _In_ ULONG ValueLength, _Out_writes_bytes_opt_( ValueLength) PVOID Value, _Out_opt_ PULONG ValueLengthQueried, _Out_opt_ PULONG ValueType ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryQueryMemory)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key, _In_ PCUNICODE_STRING ValueName, _In_ _Strict_type_match_ POOL_TYPE PoolType, _In_opt_ PWDF_OBJECT_ATTRIBUTES MemoryAttributes, _Out_ WDFMEMORY* Memory, _Out_opt_ PULONG ValueType ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryQueryMultiString)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key, _In_ PCUNICODE_STRING ValueName, _In_opt_ PWDF_OBJECT_ATTRIBUTES StringsAttributes, _In_ WDFCOLLECTION Collection ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryQueryUnicodeString)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key, _In_ PCUNICODE_STRING ValueName, _Out_opt_ PUSHORT ValueByteLength, _Inout_opt_ PUNICODE_STRING Value ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryQueryString)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key, _In_ PCUNICODE_STRING ValueName, _In_ WDFSTRING String ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryQueryULong)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key, _In_ PCUNICODE_STRING ValueName, _Out_ PULONG Value ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryAssignValue)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key, _In_ PCUNICODE_STRING ValueName, _In_ ULONG ValueType, _In_ ULONG ValueLength, _In_reads_( ValueLength) PVOID Value ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryAssignMemory)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key, _In_ PCUNICODE_STRING ValueName, _In_ ULONG ValueType, _In_ WDFMEMORY Memory, _In_opt_ PWDFMEMORY_OFFSET MemoryOffsets ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryAssignMultiString)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key, _In_ PCUNICODE_STRING ValueName, _In_ WDFCOLLECTION StringsCollection ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryAssignUnicodeString)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key, _In_ PCUNICODE_STRING ValueName, _In_ PCUNICODE_STRING Value ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryAssignString)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key, _In_ PCUNICODE_STRING ValueName, _In_ WDFSTRING String ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRegistryAssignULong)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFKEY Key, _In_ PCUNICODE_STRING ValueName, _In_ ULONG Value ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_opt_ PWDF_OBJECT_ATTRIBUTES RequestAttributes, _In_opt_ WDFIOTARGET IoTarget, _Out_ WDFREQUEST* Request ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestReuse)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ PWDF_REQUEST_REUSE_PARAMS ReuseParams ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestChangeTarget)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ WDFIOTARGET IoTarget ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfRequestFormatRequestUsingCurrentType)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _IRQL_requires_max_(DISPATCH_LEVEL) _When_(Options->Flags & WDF_REQUEST_SEND_OPTION_SYNCHRONOUS == 0, _Must_inspect_result_) WDFAPI BOOLEAN VFWDFEXPORT(WdfRequestSend)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ WDFIOTARGET Target, _In_opt_ PWDF_REQUEST_SEND_OPTIONS Options ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestGetStatus)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfRequestMarkCancelable)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ PFN_WDF_REQUEST_CANCEL EvtRequestCancel ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestMarkCancelableEx)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ PFN_WDF_REQUEST_CANCEL EvtRequestCancel ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestUnmarkCancelable)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BOOLEAN VFWDFEXPORT(WdfRequestIsCanceled)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BOOLEAN VFWDFEXPORT(WdfRequestCancelSentRequest)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _Must_inspect_result_ _IRQL_requires_max_(APC_LEVEL) WDFAPI BOOLEAN VFWDFEXPORT(WdfRequestIsFrom32BitProcess)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfRequestSetCompletionRoutine)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine, _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfRequestGetCompletionParams)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _Out_ PWDF_REQUEST_COMPLETION_PARAMS Params ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestAllocateTimer)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfRequestComplete)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ NTSTATUS Status ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfRequestCompleteWithInformation)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ NTSTATUS Status, _In_ ULONG_PTR Information ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfRequestGetParameters)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _Out_ PWDF_REQUEST_PARAMETERS Parameters ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestRetrieveInputMemory)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _Out_ WDFMEMORY* Memory ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestRetrieveOutputMemory)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _Out_ WDFMEMORY* Memory ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestRetrieveInputBuffer)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ size_t MinimumRequiredLength, _Outptr_result_bytebuffer_(*Length) PVOID* Buffer, _Out_opt_ size_t* Length ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestRetrieveOutputBuffer)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ size_t MinimumRequiredSize, _Outptr_result_bytebuffer_(*Length) PVOID* Buffer, _Out_opt_ size_t* Length ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfRequestSetInformation)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ ULONG_PTR Information ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI ULONG_PTR VFWDFEXPORT(WdfRequestGetInformation)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFFILEOBJECT VFWDFEXPORT(WdfRequestGetFileObject)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI KPROCESSOR_MODE VFWDFEXPORT(WdfRequestGetRequestorMode)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestForwardToIoQueue)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ WDFQUEUE DestinationQueue ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFQUEUE VFWDFEXPORT(WdfRequestGetIoQueue)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestRequeue)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfRequestStopAcknowledge)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ BOOLEAN Requeue ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestImpersonate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, _In_ PFN_WDF_REQUEST_IMPERSONATE EvtRequestImpersonate, _In_opt_ PVOID Context ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI ULONG VFWDFEXPORT(WdfRequestGetRequestorProcessId)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN VFWDFEXPORT(WdfRequestIsFromUserModeDriver)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfRequestSetUserModeDriverInitiatedIo)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ BOOLEAN IsUserModeDriverInitiated ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN VFWDFEXPORT(WdfRequestGetUserModeDriverInitiatedIo)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfRequestSetActivityId)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ LPGUID ActivityId ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfRequestRetrieveActivityId)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _Out_ LPGUID ActivityId ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI WDF_DEVICE_IO_TYPE VFWDFEXPORT(WdfRequestGetEffectiveIoType)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI ULONG VFWDFEXPORT(WdfCmResourceListGetCount)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFCMRESLIST List ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI PCM_PARTIAL_RESOURCE_DESCRIPTOR VFWDFEXPORT(WdfCmResourceListGetDescriptor)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFCMRESLIST List, _In_ ULONG Index ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfStringCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_opt_ PCUNICODE_STRING UnicodeString, _In_opt_ PWDF_OBJECT_ATTRIBUTES StringAttributes, _Out_ WDFSTRING* String ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfStringGetUnicodeString)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFSTRING String, _Out_ PUNICODE_STRING UnicodeString ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfObjectAcquireLock)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ _Requires_lock_not_held_(_Curr_) _Acquires_lock_(_Curr_) WDFOBJECT Object ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfObjectReleaseLock)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ _Requires_lock_held_(_Curr_) _Releases_lock_(_Curr_) WDFOBJECT Object ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfWaitLockCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_opt_ PWDF_OBJECT_ATTRIBUTES LockAttributes, _Out_ WDFWAITLOCK* Lock ); _When_(Timeout == NULL, _IRQL_requires_max_(PASSIVE_LEVEL)) _When_(Timeout != NULL && *Timeout == 0, _IRQL_requires_max_(DISPATCH_LEVEL)) _When_(Timeout != NULL && *Timeout != 0, _IRQL_requires_max_(PASSIVE_LEVEL)) _Always_(_When_(Timeout == NULL, _Acquires_lock_(Lock))) _When_(Timeout != NULL && return == STATUS_SUCCESS, _Acquires_lock_(Lock)) _When_(Timeout != NULL, _Must_inspect_result_) WDFAPI NTSTATUS VFWDFEXPORT(WdfWaitLockAcquire)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ _Requires_lock_not_held_(_Curr_) WDFWAITLOCK Lock, _In_opt_ PLONGLONG Timeout ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfWaitLockRelease)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ _Requires_lock_held_(_Curr_) _Releases_lock_(_Curr_) WDFWAITLOCK Lock ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfSpinLockCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_opt_ PWDF_OBJECT_ATTRIBUTES SpinLockAttributes, _Out_ WDFSPINLOCK* SpinLock ); _IRQL_requires_max_(DISPATCH_LEVEL) _IRQL_raises_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfSpinLockAcquire)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ _Requires_lock_not_held_(_Curr_) _Acquires_lock_(_Curr_) _IRQL_saves_ WDFSPINLOCK SpinLock ); _IRQL_requires_max_(DISPATCH_LEVEL) _IRQL_requires_min_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfSpinLockRelease)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ _Requires_lock_held_(_Curr_) _Releases_lock_(_Curr_) _IRQL_restores_ WDFSPINLOCK SpinLock ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfTimerCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDF_TIMER_CONFIG Config, _In_ PWDF_OBJECT_ATTRIBUTES Attributes, _Out_ WDFTIMER* Timer ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BOOLEAN VFWDFEXPORT(WdfTimerStart)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFTIMER Timer, _In_ LONGLONG DueTime ); _When_(Wait == __true, _IRQL_requires_max_(PASSIVE_LEVEL)) _When_(Wait == __false, _IRQL_requires_max_(DISPATCH_LEVEL)) WDFAPI BOOLEAN VFWDFEXPORT(WdfTimerStop)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFTIMER Timer, _In_ BOOLEAN Wait ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFOBJECT VFWDFEXPORT(WdfTimerGetParentObject)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFTIMER Timer ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetDeviceCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes, _Out_ WDFUSBDEVICE* UsbDevice ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetDeviceCreateWithParameters)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ PWDF_USB_DEVICE_CREATE_CONFIG Config, _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes, _Out_ WDFUSBDEVICE* UsbDevice ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetDeviceRetrieveInformation)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBDEVICE UsbDevice, _Out_ PWDF_USB_DEVICE_INFORMATION Information ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfUsbTargetDeviceGetDeviceDescriptor)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBDEVICE UsbDevice, _Out_ PUSB_DEVICE_DESCRIPTOR UsbDeviceDescriptor ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetDeviceRetrieveConfigDescriptor)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBDEVICE UsbDevice, _Out_writes_bytes_to_opt_(*ConfigDescriptorLength,*ConfigDescriptorLength) PVOID ConfigDescriptor, _Inout_ PUSHORT ConfigDescriptorLength ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetDeviceQueryString)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBDEVICE UsbDevice, _In_opt_ WDFREQUEST Request, _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions, _Out_writes_opt_(*NumCharacters) PUSHORT String, _Inout_ PUSHORT NumCharacters, _In_ UCHAR StringIndex, _In_opt_ USHORT LangID ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetDeviceAllocAndQueryString)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBDEVICE UsbDevice, _In_opt_ PWDF_OBJECT_ATTRIBUTES StringMemoryAttributes, _Out_ WDFMEMORY* StringMemory, _Out_opt_ PUSHORT NumCharacters, _In_ UCHAR StringIndex, _In_opt_ USHORT LangID ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetDeviceFormatRequestForString)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBDEVICE UsbDevice, _In_ WDFREQUEST Request, _In_ WDFMEMORY Memory, _In_opt_ PWDFMEMORY_OFFSET Offset, _In_ UCHAR StringIndex, _In_opt_ USHORT LangID ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI UCHAR VFWDFEXPORT(WdfUsbTargetDeviceGetNumInterfaces)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBDEVICE UsbDevice ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetDeviceSelectConfig)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBDEVICE UsbDevice, _In_opt_ PWDF_OBJECT_ATTRIBUTES PipeAttributes, _Inout_ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetDeviceSendControlTransferSynchronously)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBDEVICE UsbDevice, _In_opt_ WDFREQUEST Request, _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions, _In_ PWDF_USB_CONTROL_SETUP_PACKET SetupPacket, _In_opt_ PWDF_MEMORY_DESCRIPTOR MemoryDescriptor, _Out_opt_ PULONG BytesTransferred ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetDeviceFormatRequestForControlTransfer)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBDEVICE UsbDevice, _In_ WDFREQUEST Request, _In_ PWDF_USB_CONTROL_SETUP_PACKET SetupPacket, _In_opt_ WDFMEMORY TransferMemory, _In_opt_ PWDFMEMORY_OFFSET TransferOffset ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetDeviceResetPortSynchronously)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBDEVICE UsbDevice ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetDeviceQueryUsbCapability)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBDEVICE UsbDevice, _In_ CONST GUID* CapabilityType, _In_ ULONG CapabilityBufferLength, _When_(CapabilityBufferLength == 0, _Out_opt_) _When_(CapabilityBufferLength != 0 && ResultLength == NULL, _Out_writes_bytes_(CapabilityBufferLength)) _When_(CapabilityBufferLength != 0 && ResultLength != NULL, _Out_writes_bytes_to_opt_(CapabilityBufferLength, *ResultLength)) PVOID CapabilityBuffer, _Out_opt_ _When_(ResultLength != NULL,_Deref_out_range_(<=,CapabilityBufferLength)) PULONG ResultLength ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfUsbTargetPipeGetInformation)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe, _Out_ PWDF_USB_PIPE_INFORMATION PipeInformation ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BOOLEAN VFWDFEXPORT(WdfUsbTargetPipeIsInEndpoint)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BOOLEAN VFWDFEXPORT(WdfUsbTargetPipeIsOutEndpoint)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDF_USB_PIPE_TYPE VFWDFEXPORT(WdfUsbTargetPipeGetType)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfUsbTargetPipeSetNoMaximumPacketSizeCheck)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetPipeWriteSynchronously)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe, _In_opt_ WDFREQUEST Request, _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions, _In_opt_ PWDF_MEMORY_DESCRIPTOR MemoryDescriptor, _Out_opt_ PULONG BytesWritten ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetPipeFormatRequestForWrite)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe, _In_ WDFREQUEST Request, _In_opt_ WDFMEMORY WriteMemory, _In_opt_ PWDFMEMORY_OFFSET WriteOffset ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetPipeReadSynchronously)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe, _In_opt_ WDFREQUEST Request, _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions, _In_opt_ PWDF_MEMORY_DESCRIPTOR MemoryDescriptor, _Out_opt_ PULONG BytesRead ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetPipeFormatRequestForRead)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe, _In_ WDFREQUEST Request, _In_opt_ WDFMEMORY ReadMemory, _In_opt_ PWDFMEMORY_OFFSET ReadOffset ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetPipeConfigContinuousReader)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe, _In_ PWDF_USB_CONTINUOUS_READER_CONFIG Config ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetPipeAbortSynchronously)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe, _In_opt_ WDFREQUEST Request, _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetPipeFormatRequestForAbort)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe, _In_ WDFREQUEST Request ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetPipeResetSynchronously)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe, _In_opt_ WDFREQUEST Request, _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbTargetPipeFormatRequestForReset)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBPIPE Pipe, _In_ WDFREQUEST Request ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BYTE VFWDFEXPORT(WdfUsbInterfaceGetInterfaceNumber)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBINTERFACE UsbInterface ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BYTE VFWDFEXPORT(WdfUsbInterfaceGetNumEndpoints)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBINTERFACE UsbInterface, _In_ UCHAR SettingIndex ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfUsbInterfaceGetDescriptor)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBINTERFACE UsbInterface, _In_ UCHAR SettingIndex, _Out_ PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BYTE VFWDFEXPORT(WdfUsbInterfaceGetNumSettings)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBINTERFACE UsbInterface ); _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfUsbInterfaceSelectSetting)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBINTERFACE UsbInterface, _In_opt_ PWDF_OBJECT_ATTRIBUTES PipesAttributes, _In_ PWDF_USB_INTERFACE_SELECT_SETTING_PARAMS Params ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfUsbInterfaceGetEndpointInformation)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBINTERFACE UsbInterface, _In_ UCHAR SettingIndex, _In_ UCHAR EndpointIndex, _Out_ PWDF_USB_PIPE_INFORMATION EndpointInfo ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFUSBINTERFACE VFWDFEXPORT(WdfUsbTargetDeviceGetInterface)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBDEVICE UsbDevice, _In_ UCHAR InterfaceIndex ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BYTE VFWDFEXPORT(WdfUsbInterfaceGetConfiguredSettingIndex)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBINTERFACE Interface ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BYTE VFWDFEXPORT(WdfUsbInterfaceGetNumConfiguredPipes)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBINTERFACE UsbInterface ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFUSBPIPE VFWDFEXPORT(WdfUsbInterfaceGetConfiguredPipe)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFUSBINTERFACE UsbInterface, _In_ UCHAR PipeIndex, _Out_opt_ PWDF_USB_PIPE_INFORMATION PipeInfo ); WDFAPI VOID VFWDFEXPORT(WdfVerifierDbgBreakPoint)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals ); WDFAPI VOID VFWDFEXPORT(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 VFWDFEXPORT(WdfGetTriageInfo)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS VFWDFEXPORT(WdfWorkItemCreate)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDF_WORKITEM_CONFIG Config, _In_ PWDF_OBJECT_ATTRIBUTES Attributes, _Out_ WDFWORKITEM* WorkItem ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfWorkItemEnqueue)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFWORKITEM WorkItem ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFOBJECT VFWDFEXPORT(WdfWorkItemGetParentObject)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFWORKITEM WorkItem ); _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI VOID VFWDFEXPORT(WdfWorkItemFlush)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFWORKITEM WorkItem ); #ifdef VF_FX_DYNAMICS_GENERATE_TABLE WDFVERSION VfWdfVersion = { sizeof(WDFVERSION), sizeof(WDFFUNCTIONS)/sizeof(PVOID), { VFWDFEXPORT(WdfCollectionCreate), VFWDFEXPORT(WdfCollectionGetCount), VFWDFEXPORT(WdfCollectionAdd), VFWDFEXPORT(WdfCollectionRemove), VFWDFEXPORT(WdfCollectionRemoveItem), VFWDFEXPORT(WdfCollectionGetItem), VFWDFEXPORT(WdfCollectionGetFirstItem), VFWDFEXPORT(WdfCollectionGetLastItem), VFWDFEXPORT(WdfCxDeviceInitAllocate), VFWDFEXPORT(WdfCxDeviceInitSetRequestAttributes), VFWDFEXPORT(WdfCxDeviceInitSetFileObjectConfig), VFWDFEXPORT(WdfCxVerifierKeBugCheck), VFWDFEXPORT(WdfDeviceGetDeviceState), VFWDFEXPORT(WdfDeviceSetDeviceState), VFWDFEXPORT(WdfDeviceGetDriver), VFWDFEXPORT(WdfDeviceGetIoTarget), VFWDFEXPORT(WdfDeviceAssignS0IdleSettings), VFWDFEXPORT(WdfDeviceAssignSxWakeSettings), VFWDFEXPORT(WdfDeviceOpenRegistryKey), VFWDFEXPORT(WdfDeviceInitSetPnpPowerEventCallbacks), VFWDFEXPORT(WdfDeviceInitSetPowerPolicyEventCallbacks), VFWDFEXPORT(WdfDeviceInitSetPowerPolicyOwnership), VFWDFEXPORT(WdfDeviceInitSetIoType), VFWDFEXPORT(WdfDeviceInitSetFileObjectConfig), VFWDFEXPORT(WdfDeviceInitSetRequestAttributes), VFWDFEXPORT(WdfDeviceCreate), VFWDFEXPORT(WdfDeviceSetStaticStopRemove), VFWDFEXPORT(WdfDeviceCreateDeviceInterface), VFWDFEXPORT(WdfDeviceSetDeviceInterfaceState), VFWDFEXPORT(WdfDeviceRetrieveDeviceInterfaceString), VFWDFEXPORT(WdfDeviceCreateSymbolicLink), VFWDFEXPORT(WdfDeviceQueryProperty), VFWDFEXPORT(WdfDeviceAllocAndQueryProperty), VFWDFEXPORT(WdfDeviceSetPnpCapabilities), VFWDFEXPORT(WdfDeviceSetPowerCapabilities), VFWDFEXPORT(WdfDeviceSetFailed), VFWDFEXPORT(WdfDeviceStopIdleNoTrack), VFWDFEXPORT(WdfDeviceResumeIdleNoTrack), VFWDFEXPORT(WdfDeviceGetFileObject), VFWDFEXPORT(WdfDeviceGetDefaultQueue), VFWDFEXPORT(WdfDeviceConfigureRequestDispatching), VFWDFEXPORT(WdfDeviceGetSystemPowerAction), VFWDFEXPORT(WdfDeviceInitSetReleaseHardwareOrderOnFailure), VFWDFEXPORT(WdfDeviceInitSetIoTypeEx), VFWDFEXPORT(WdfDevicePostEvent), VFWDFEXPORT(WdfDeviceMapIoSpace), VFWDFEXPORT(WdfDeviceUnmapIoSpace), VFWDFEXPORT(WdfDeviceGetHardwareRegisterMappedAddress), VFWDFEXPORT(WdfDeviceReadFromHardware), VFWDFEXPORT(WdfDeviceWriteToHardware), VFWDFEXPORT(WdfDeviceAssignInterfaceProperty), VFWDFEXPORT(WdfDeviceAllocAndQueryInterfaceProperty), VFWDFEXPORT(WdfDeviceQueryInterfaceProperty), VFWDFEXPORT(WdfDeviceGetDeviceStackIoType), VFWDFEXPORT(WdfDeviceQueryPropertyEx), VFWDFEXPORT(WdfDeviceAllocAndQueryPropertyEx), VFWDFEXPORT(WdfDeviceAssignProperty), VFWDFEXPORT(WdfDriverCreate), VFWDFEXPORT(WdfDriverGetRegistryPath), VFWDFEXPORT(WdfDriverOpenParametersRegistryKey), VFWDFEXPORT(WdfDriverRetrieveVersionString), VFWDFEXPORT(WdfDriverIsVersionAvailable), VFWDFEXPORT(WdfFdoInitOpenRegistryKey), VFWDFEXPORT(WdfFdoInitQueryProperty), VFWDFEXPORT(WdfFdoInitAllocAndQueryProperty), VFWDFEXPORT(WdfFdoInitQueryPropertyEx), VFWDFEXPORT(WdfFdoInitAllocAndQueryPropertyEx), VFWDFEXPORT(WdfFdoInitSetFilter), VFWDFEXPORT(WdfFileObjectGetFileName), VFWDFEXPORT(WdfFileObjectGetDevice), VFWDFEXPORT(WdfFileObjectGetInitiatorProcessId), VFWDFEXPORT(WdfFileObjectGetRelatedFileObject), VFWDFEXPORT(WdfInterruptCreate), VFWDFEXPORT(WdfInterruptQueueDpcForIsr), VFWDFEXPORT(WdfInterruptQueueWorkItemForIsr), VFWDFEXPORT(WdfInterruptSynchronize), VFWDFEXPORT(WdfInterruptAcquireLock), VFWDFEXPORT(WdfInterruptReleaseLock), VFWDFEXPORT(WdfInterruptEnable), VFWDFEXPORT(WdfInterruptDisable), VFWDFEXPORT(WdfInterruptGetInfo), VFWDFEXPORT(WdfInterruptSetPolicy), VFWDFEXPORT(WdfInterruptSetExtendedPolicy), VFWDFEXPORT(WdfInterruptGetDevice), VFWDFEXPORT(WdfInterruptTryToAcquireLock), VFWDFEXPORT(WdfIoQueueCreate), VFWDFEXPORT(WdfIoQueueGetState), VFWDFEXPORT(WdfIoQueueStart), VFWDFEXPORT(WdfIoQueueStop), VFWDFEXPORT(WdfIoQueueStopSynchronously), VFWDFEXPORT(WdfIoQueueGetDevice), VFWDFEXPORT(WdfIoQueueRetrieveNextRequest), VFWDFEXPORT(WdfIoQueueRetrieveRequestByFileObject), VFWDFEXPORT(WdfIoQueueFindRequest), VFWDFEXPORT(WdfIoQueueRetrieveFoundRequest), VFWDFEXPORT(WdfIoQueueDrainSynchronously), VFWDFEXPORT(WdfIoQueueDrain), VFWDFEXPORT(WdfIoQueuePurgeSynchronously), VFWDFEXPORT(WdfIoQueuePurge), VFWDFEXPORT(WdfIoQueueReadyNotify), VFWDFEXPORT(WdfIoQueueStopAndPurge), VFWDFEXPORT(WdfIoQueueStopAndPurgeSynchronously), VFWDFEXPORT(WdfIoTargetCreate), VFWDFEXPORT(WdfIoTargetOpen), VFWDFEXPORT(WdfIoTargetCloseForQueryRemove), VFWDFEXPORT(WdfIoTargetClose), VFWDFEXPORT(WdfIoTargetStart), VFWDFEXPORT(WdfIoTargetStop), VFWDFEXPORT(WdfIoTargetPurge), VFWDFEXPORT(WdfIoTargetGetState), VFWDFEXPORT(WdfIoTargetGetDevice), VFWDFEXPORT(WdfIoTargetSendReadSynchronously), VFWDFEXPORT(WdfIoTargetFormatRequestForRead), VFWDFEXPORT(WdfIoTargetSendWriteSynchronously), VFWDFEXPORT(WdfIoTargetFormatRequestForWrite), VFWDFEXPORT(WdfIoTargetSendIoctlSynchronously), VFWDFEXPORT(WdfIoTargetFormatRequestForIoctl), VFWDFEXPORT(WdfMemoryCreate), VFWDFEXPORT(WdfMemoryCreatePreallocated), VFWDFEXPORT(WdfMemoryGetBuffer), VFWDFEXPORT(WdfMemoryAssignBuffer), VFWDFEXPORT(WdfMemoryCopyToBuffer), VFWDFEXPORT(WdfMemoryCopyFromBuffer), VFWDFEXPORT(WdfObjectGetTypedContextWorker), VFWDFEXPORT(WdfObjectAllocateContext), VFWDFEXPORT(WdfObjectContextGetObject), VFWDFEXPORT(WdfObjectReferenceActual), VFWDFEXPORT(WdfObjectDereferenceActual), VFWDFEXPORT(WdfObjectCreate), VFWDFEXPORT(WdfObjectDelete), VFWDFEXPORT(WdfObjectQuery), VFWDFEXPORT(WdfRegistryOpenKey), VFWDFEXPORT(WdfRegistryCreateKey), VFWDFEXPORT(WdfRegistryClose), VFWDFEXPORT(WdfRegistryRemoveKey), VFWDFEXPORT(WdfRegistryRemoveValue), VFWDFEXPORT(WdfRegistryQueryValue), VFWDFEXPORT(WdfRegistryQueryMemory), VFWDFEXPORT(WdfRegistryQueryMultiString), VFWDFEXPORT(WdfRegistryQueryUnicodeString), VFWDFEXPORT(WdfRegistryQueryString), VFWDFEXPORT(WdfRegistryQueryULong), VFWDFEXPORT(WdfRegistryAssignValue), VFWDFEXPORT(WdfRegistryAssignMemory), VFWDFEXPORT(WdfRegistryAssignMultiString), VFWDFEXPORT(WdfRegistryAssignUnicodeString), VFWDFEXPORT(WdfRegistryAssignString), VFWDFEXPORT(WdfRegistryAssignULong), VFWDFEXPORT(WdfRequestCreate), VFWDFEXPORT(WdfRequestReuse), VFWDFEXPORT(WdfRequestChangeTarget), VFWDFEXPORT(WdfRequestFormatRequestUsingCurrentType), VFWDFEXPORT(WdfRequestSend), VFWDFEXPORT(WdfRequestGetStatus), VFWDFEXPORT(WdfRequestMarkCancelable), VFWDFEXPORT(WdfRequestMarkCancelableEx), VFWDFEXPORT(WdfRequestUnmarkCancelable), VFWDFEXPORT(WdfRequestIsCanceled), VFWDFEXPORT(WdfRequestCancelSentRequest), VFWDFEXPORT(WdfRequestIsFrom32BitProcess), VFWDFEXPORT(WdfRequestSetCompletionRoutine), VFWDFEXPORT(WdfRequestGetCompletionParams), VFWDFEXPORT(WdfRequestAllocateTimer), VFWDFEXPORT(WdfRequestComplete), VFWDFEXPORT(WdfRequestCompleteWithInformation), VFWDFEXPORT(WdfRequestGetParameters), VFWDFEXPORT(WdfRequestRetrieveInputMemory), VFWDFEXPORT(WdfRequestRetrieveOutputMemory), VFWDFEXPORT(WdfRequestRetrieveInputBuffer), VFWDFEXPORT(WdfRequestRetrieveOutputBuffer), VFWDFEXPORT(WdfRequestSetInformation), VFWDFEXPORT(WdfRequestGetInformation), VFWDFEXPORT(WdfRequestGetFileObject), VFWDFEXPORT(WdfRequestGetRequestorMode), VFWDFEXPORT(WdfRequestForwardToIoQueue), VFWDFEXPORT(WdfRequestGetIoQueue), VFWDFEXPORT(WdfRequestRequeue), VFWDFEXPORT(WdfRequestStopAcknowledge), VFWDFEXPORT(WdfRequestImpersonate), VFWDFEXPORT(WdfRequestGetRequestorProcessId), VFWDFEXPORT(WdfRequestIsFromUserModeDriver), VFWDFEXPORT(WdfRequestSetUserModeDriverInitiatedIo), VFWDFEXPORT(WdfRequestGetUserModeDriverInitiatedIo), VFWDFEXPORT(WdfRequestSetActivityId), VFWDFEXPORT(WdfRequestRetrieveActivityId), VFWDFEXPORT(WdfRequestGetEffectiveIoType), VFWDFEXPORT(WdfCmResourceListGetCount), VFWDFEXPORT(WdfCmResourceListGetDescriptor), VFWDFEXPORT(WdfStringCreate), VFWDFEXPORT(WdfStringGetUnicodeString), VFWDFEXPORT(WdfObjectAcquireLock), VFWDFEXPORT(WdfObjectReleaseLock), VFWDFEXPORT(WdfWaitLockCreate), VFWDFEXPORT(WdfWaitLockAcquire), VFWDFEXPORT(WdfWaitLockRelease), VFWDFEXPORT(WdfSpinLockCreate), VFWDFEXPORT(WdfSpinLockAcquire), VFWDFEXPORT(WdfSpinLockRelease), VFWDFEXPORT(WdfTimerCreate), VFWDFEXPORT(WdfTimerStart), VFWDFEXPORT(WdfTimerStop), VFWDFEXPORT(WdfTimerGetParentObject), VFWDFEXPORT(WdfUsbTargetDeviceCreate), VFWDFEXPORT(WdfUsbTargetDeviceCreateWithParameters), VFWDFEXPORT(WdfUsbTargetDeviceRetrieveInformation), VFWDFEXPORT(WdfUsbTargetDeviceGetDeviceDescriptor), VFWDFEXPORT(WdfUsbTargetDeviceRetrieveConfigDescriptor), VFWDFEXPORT(WdfUsbTargetDeviceQueryString), VFWDFEXPORT(WdfUsbTargetDeviceAllocAndQueryString), VFWDFEXPORT(WdfUsbTargetDeviceFormatRequestForString), VFWDFEXPORT(WdfUsbTargetDeviceGetNumInterfaces), VFWDFEXPORT(WdfUsbTargetDeviceSelectConfig), VFWDFEXPORT(WdfUsbTargetDeviceSendControlTransferSynchronously), VFWDFEXPORT(WdfUsbTargetDeviceFormatRequestForControlTransfer), VFWDFEXPORT(WdfUsbTargetDeviceResetPortSynchronously), VFWDFEXPORT(WdfUsbTargetDeviceQueryUsbCapability), VFWDFEXPORT(WdfUsbTargetPipeGetInformation), VFWDFEXPORT(WdfUsbTargetPipeIsInEndpoint), VFWDFEXPORT(WdfUsbTargetPipeIsOutEndpoint), VFWDFEXPORT(WdfUsbTargetPipeGetType), VFWDFEXPORT(WdfUsbTargetPipeSetNoMaximumPacketSizeCheck), VFWDFEXPORT(WdfUsbTargetPipeWriteSynchronously), VFWDFEXPORT(WdfUsbTargetPipeFormatRequestForWrite), VFWDFEXPORT(WdfUsbTargetPipeReadSynchronously), VFWDFEXPORT(WdfUsbTargetPipeFormatRequestForRead), VFWDFEXPORT(WdfUsbTargetPipeConfigContinuousReader), VFWDFEXPORT(WdfUsbTargetPipeAbortSynchronously), VFWDFEXPORT(WdfUsbTargetPipeFormatRequestForAbort), VFWDFEXPORT(WdfUsbTargetPipeResetSynchronously), VFWDFEXPORT(WdfUsbTargetPipeFormatRequestForReset), VFWDFEXPORT(WdfUsbInterfaceGetInterfaceNumber), VFWDFEXPORT(WdfUsbInterfaceGetNumEndpoints), VFWDFEXPORT(WdfUsbInterfaceGetDescriptor), VFWDFEXPORT(WdfUsbInterfaceGetNumSettings), VFWDFEXPORT(WdfUsbInterfaceSelectSetting), VFWDFEXPORT(WdfUsbInterfaceGetEndpointInformation), VFWDFEXPORT(WdfUsbTargetDeviceGetInterface), VFWDFEXPORT(WdfUsbInterfaceGetConfiguredSettingIndex), VFWDFEXPORT(WdfUsbInterfaceGetNumConfiguredPipes), VFWDFEXPORT(WdfUsbInterfaceGetConfiguredPipe), VFWDFEXPORT(WdfVerifierDbgBreakPoint), VFWDFEXPORT(WdfVerifierKeBugCheck), VFWDFEXPORT(WdfGetTriageInfo), VFWDFEXPORT(WdfWorkItemCreate), VFWDFEXPORT(WdfWorkItemEnqueue), VFWDFEXPORT(WdfWorkItemGetParentObject), VFWDFEXPORT(WdfWorkItemFlush), VFWDFEXPORT(WdfRegistryWdmGetHandle), VFWDFEXPORT(WdfDeviceStopIdleActual), VFWDFEXPORT(WdfDeviceResumeIdleActual), VFWDFEXPORT(WdfDeviceInitEnableHidInterface), VFWDFEXPORT(WdfDeviceHidNotifyPresence), VFWDFEXPORT(WdfDeviceGetSelfIoTarget), VFWDFEXPORT(WdfDeviceInitAllowSelfIoTarget), VFWDFEXPORT(WdfIoTargetSelfAssignDefaultIoQueue), VFWDFEXPORT(WdfDeviceOpenDevicemapKey), VFWDFEXPORT(WdfIoTargetWdmGetTargetFileHandle), VFWDFEXPORT(WdfDeviceWdmDispatchIrp), VFWDFEXPORT(WdfDeviceWdmDispatchIrpToIoQueue), VFWDFEXPORT(WdfDeviceConfigureWdmIrpDispatchCallback), } }; #endif // VF_FX_DYNAMICS_GENERATE_TABLE #endif // _VFFXDYNAMICS_H_