33 #define WDF_EXTERN_C extern "C" 34 #define WDF_EXTERN_C_START extern "C" { 35 #define WDF_EXTERN_C_END } 38 #define WDF_EXTERN_C_START 39 #define WDF_EXTERN_C_END 51 #if (NTDDI_VERSION >= NTDDI_WIN2K) 485 #ifndef WDF_DEVICE_NO_WDMSEC_H 487 #endif // WDF_DEVICE_NO_WDMSEC_H 490 #define WDF_S0_IDLE_ENABLED_VALUE_NAME L"IdleInWorkingState" 491 #define WDF_SX_WAKE_ENABLED_VALUE_NAME L"WakeFromSleepState" 492 #define WDF_S0_IDLE_DEFAULT_VALUE_NAME L"WdfDefaultIdleInWorkingState" 493 #define WDF_SX_WAKE_DEFAULT_VALUE_NAME L"WdfDefaultWakeFromSleepState" 543 EVT_WDF_DEVICE_FILE_CREATE(
573 EVT_WDF_FILE_CLEANUP(
634 FileEventCallbacks->EvtDeviceFileCreate = EvtDeviceFileCreate;
635 FileEventCallbacks->EvtFileClose = EvtFileClose;
636 FileEventCallbacks->EvtFileCleanup = EvtFileCleanup;
777 EVT_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION(
792 EVT_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION(
807 EVT_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION(
816 #define IdleTimeoutDefaultValue ((ULONG) IdleTimeoutDefaultConstant) 824 EVT_WDF_DEVICE_D0_ENTRY(
839 EVT_WDF_DEVICE_D0_ENTRY_POST_INTERRUPTS_ENABLED(
854 EVT_WDF_DEVICE_D0_EXIT(
869 EVT_WDF_DEVICE_D0_EXIT_PRE_INTERRUPTS_DISABLED(
884 EVT_WDF_DEVICE_PREPARE_HARDWARE(
901 EVT_WDF_DEVICE_RELEASE_HARDWARE(
916 EVT_WDF_DEVICE_SELF_MANAGED_IO_CLEANUP(
929 EVT_WDF_DEVICE_SELF_MANAGED_IO_FLUSH(
942 EVT_WDF_DEVICE_SELF_MANAGED_IO_INIT(
955 EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND(
968 EVT_WDF_DEVICE_SELF_MANAGED_IO_RESTART(
981 EVT_WDF_DEVICE_QUERY_STOP(
994 EVT_WDF_DEVICE_QUERY_REMOVE(
1007 EVT_WDF_DEVICE_SURPRISE_REMOVAL(
1020 EVT_WDF_DEVICE_USAGE_NOTIFICATION(
1037 EVT_WDF_DEVICE_USAGE_NOTIFICATION_EX(
1054 EVT_WDF_DEVICE_RELATIONS_QUERY(
1069 EVT_WDF_DEVICE_ARM_WAKE_FROM_S0(
1082 EVT_WDF_DEVICE_ARM_WAKE_FROM_SX(
1095 EVT_WDF_DEVICE_ARM_WAKE_FROM_SX_WITH_REASON(
1112 EVT_WDF_DEVICE_DISARM_WAKE_FROM_S0(
1125 EVT_WDF_DEVICE_DISARM_WAKE_FROM_SX(
1138 EVT_WDF_DEVICE_WAKE_FROM_S0_TRIGGERED(
1151 EVT_WDF_DEVICE_WAKE_FROM_SX_TRIGGERED(
1557 Caps->Address = (
ULONG) -1;
1558 Caps->UINumber = (
ULONG) -1;
1624 for (
i = 0;
i <
sizeof(Caps->DeviceState)/
sizeof(Caps->DeviceState[1]);
i++) {
1631 Caps->D1Latency = (
ULONG) -1;
1632 Caps->D2Latency = (
ULONG) -1;
1633 Caps->D3Latency = (
ULONG) -1;
1678 EVT_WDFDEVICE_WDM_IRP_PREPROCESS(
1693 EVT_WDFDEVICE_WDM_IRP_DISPATCH(
1721 EVT_WDF_IO_IN_CALLER_CONTEXT(
1736 EVT_WDFDEVICE_WDM_POST_PO_FX_REGISTER_DEVICE(
1751 EVT_WDFDEVICE_WDM_PRE_PO_FX_UNREGISTER_DEVICE(
1971 #define WdfDeviceStopIdle(Device, WaitForD0) \ 1972 WdfDeviceStopIdleWithTag(Device, WaitForD0, NULL) 1974 #define WdfDeviceStopIdleWithTag(Device, WaitForD0, Tag) \ 1975 WdfDeviceStopIdleActual(Device, WaitForD0, Tag, __LINE__, __FILE__) 1977 #define WdfDeviceResumeIdle(Device) \ 1978 WdfDeviceResumeIdleWithTag(Device, NULL) 1980 #define WdfDeviceResumeIdleWithTag(Device, Tag) \ 1981 WdfDeviceResumeIdleActual(Device, Tag, __LINE__, __FILE__) 1992 (
STDCALL *PFN_WDFDEVICEGETDEVICESTATE)(
2004 WdfDeviceGetDeviceState(
2021 (
STDCALL *PFN_WDFDEVICESETDEVICESTATE)(
2033 WdfDeviceSetDeviceState(
2050 (
STDCALL *PFN_WDFWDMDEVICEGETWDFDEVICEHANDLE)(
2060 WdfWdmDeviceGetWdfDeviceHandle(
2075 (
STDCALL *PFN_WDFDEVICEWDMGETDEVICEOBJECT)(
2085 WdfDeviceWdmGetDeviceObject(
2100 (
STDCALL *PFN_WDFDEVICEWDMGETATTACHEDDEVICE)(
2110 WdfDeviceWdmGetAttachedDevice(
2125 (
STDCALL *PFN_WDFDEVICEWDMGETPHYSICALDEVICE)(
2135 WdfDeviceWdmGetPhysicalDevice(
2151 (
STDCALL *PFN_WDFDEVICEWDMDISPATCHPREPROCESSEDIRP)(
2164 WdfDeviceWdmDispatchPreprocessedIrp(
2182 (
STDCALL *PFN_WDFDEVICEWDMDISPATCHIRP)(
2197 WdfDeviceWdmDispatchIrp(
2217 (
STDCALL *PFN_WDFDEVICEWDMDISPATCHIRPTOIOQUEUE)(
2234 WdfDeviceWdmDispatchIrpToIoQueue(
2256 (
STDCALL *PFN_WDFDEVICEADDDEPENDENTUSAGEDEVICEOBJECT)(
2269 WdfDeviceAddDependentUsageDeviceObject(
2286 (
STDCALL *PFN_WDFDEVICEREMOVEDEPENDENTUSAGEDEVICEOBJECT)(
2298 WdfDeviceRemoveDependentUsageDeviceObject(
2316 (
STDCALL *PFN_WDFDEVICEADDREMOVALRELATIONSPHYSICALDEVICE)(
2329 WdfDeviceAddRemovalRelationsPhysicalDevice(
2346 (
STDCALL *PFN_WDFDEVICEREMOVEREMOVALRELATIONSPHYSICALDEVICE)(
2358 WdfDeviceRemoveRemovalRelationsPhysicalDevice(
2375 (
STDCALL *PFN_WDFDEVICECLEARREMOVALRELATIONSDEVICES)(
2385 WdfDeviceClearRemovalRelationsDevices(
2400 (
STDCALL *PFN_WDFDEVICEGETDRIVER)(
2426 (
STDCALL *PFN_WDFDEVICERETRIEVEDEVICENAME)(
2439 WdfDeviceRetrieveDeviceName(
2457 (
STDCALL *PFN_WDFDEVICEASSIGNMOFRESOURCENAME)(
2470 WdfDeviceAssignMofResourceName(
2487 (
STDCALL *PFN_WDFDEVICEGETIOTARGET)(
2497 WdfDeviceGetIoTarget(
2512 (
STDCALL *PFN_WDFDEVICEGETDEVICEPNPSTATE)(
2522 WdfDeviceGetDevicePnpState(
2537 (
STDCALL *PFN_WDFDEVICEGETDEVICEPOWERSTATE)(
2547 WdfDeviceGetDevicePowerState(
2562 (
STDCALL *PFN_WDFDEVICEGETDEVICEPOWERPOLICYSTATE)(
2572 WdfDeviceGetDevicePowerPolicyState(
2588 (
STDCALL *PFN_WDFDEVICEASSIGNS0IDLESETTINGS)(
2601 WdfDeviceAssignS0IdleSettings(
2619 (
STDCALL *PFN_WDFDEVICEASSIGNSXWAKESETTINGS)(
2632 WdfDeviceAssignSxWakeSettings(
2650 (
STDCALL *PFN_WDFDEVICEOPENREGISTRYKEY)(
2669 WdfDeviceOpenRegistryKey(
2693 (
STDCALL *PFN_WDFDEVICEOPENDEVICEMAPKEY)(
2712 WdfDeviceOpenDevicemapKey(
2735 (
STDCALL *PFN_WDFDEVICESETSPECIALFILESUPPORT)(
2749 WdfDeviceSetSpecialFileSupport(
2768 (
STDCALL *PFN_WDFDEVICESETCHARACTERISTICS)(
2780 WdfDeviceSetCharacteristics(
2797 (
STDCALL *PFN_WDFDEVICEGETCHARACTERISTICS)(
2807 WdfDeviceGetCharacteristics(
2822 (
STDCALL *PFN_WDFDEVICEGETALIGNMENTREQUIREMENT)(
2832 WdfDeviceGetAlignmentRequirement(
2847 (
STDCALL *PFN_WDFDEVICESETALIGNMENTREQUIREMENT)(
2859 WdfDeviceSetAlignmentRequirement(
2876 (
STDCALL *PFN_WDFDEVICEINITFREE)(
2901 (
STDCALL *PFN_WDFDEVICEINITSETPNPPOWEREVENTCALLBACKS)(
2913 WdfDeviceInitSetPnpPowerEventCallbacks(
2930 (
STDCALL *PFN_WDFDEVICEINITSETPOWERPOLICYEVENTCALLBACKS)(
2942 WdfDeviceInitSetPowerPolicyEventCallbacks(
2959 (
STDCALL *PFN_WDFDEVICEINITSETPOWERPOLICYOWNERSHIP)(
2971 WdfDeviceInitSetPowerPolicyOwnership(
2989 (
STDCALL *PFN_WDFDEVICEINITREGISTERPNPSTATECHANGECALLBACK)(
3006 WdfDeviceInitRegisterPnpStateChangeCallback(
3028 (
STDCALL *PFN_WDFDEVICEINITREGISTERPOWERSTATECHANGECALLBACK)(
3045 WdfDeviceInitRegisterPowerStateChangeCallback(
3067 (
STDCALL *PFN_WDFDEVICEINITREGISTERPOWERPOLICYSTATECHANGECALLBACK)(
3084 WdfDeviceInitRegisterPowerPolicyStateChangeCallback(
3105 (
STDCALL *PFN_WDFDEVICEINITSETEXCLUSIVE)(
3117 WdfDeviceInitSetExclusive(
3134 (
STDCALL *PFN_WDFDEVICEINITSETIOTYPE)(
3146 WdfDeviceInitSetIoType(
3163 (
STDCALL *PFN_WDFDEVICEINITSETPOWERNOTPAGEABLE)(
3173 WdfDeviceInitSetPowerNotPageable(
3188 (
STDCALL *PFN_WDFDEVICEINITSETPOWERPAGEABLE)(
3198 WdfDeviceInitSetPowerPageable(
3213 (
STDCALL *PFN_WDFDEVICEINITSETPOWERINRUSH)(
3223 WdfDeviceInitSetPowerInrush(
3238 (
STDCALL *PFN_WDFDEVICEINITSETDEVICETYPE)(
3250 WdfDeviceInitSetDeviceType(
3268 (
STDCALL *PFN_WDFDEVICEINITASSIGNNAME)(
3281 WdfDeviceInitAssignName(
3299 (
STDCALL *PFN_WDFDEVICEINITASSIGNSDDLSTRING)(
3312 WdfDeviceInitAssignSDDLString(
3329 (
STDCALL *PFN_WDFDEVICEINITSETDEVICECLASS)(
3341 WdfDeviceInitSetDeviceClass(
3358 (
STDCALL *PFN_WDFDEVICEINITSETCHARACTERISTICS)(
3372 WdfDeviceInitSetCharacteristics(
3391 (
STDCALL *PFN_WDFDEVICEINITSETFILEOBJECTCONFIG)(
3405 WdfDeviceInitSetFileObjectConfig(
3424 (
STDCALL *PFN_WDFDEVICEINITSETREQUESTATTRIBUTES)(
3436 WdfDeviceInitSetRequestAttributes(
3454 (
STDCALL *PFN_WDFDEVICEINITASSIGNWDMIRPPREPROCESSCALLBACK)(
3474 WdfDeviceInitAssignWdmIrpPreprocessCallback(
3498 (
STDCALL *PFN_WDFDEVICEINITSETIOINCALLERCONTEXTCALLBACK)(
3510 WdfDeviceInitSetIoInCallerContextCallback(
3527 (
STDCALL *PFN_WDFDEVICEINITSETREMOVELOCKOPTIONS)(
3539 WdfDeviceInitSetRemoveLockOptions(
3557 (
STDCALL *PFN_WDFDEVICECREATE)(
3591 (
STDCALL *PFN_WDFDEVICESETSTATICSTOPREMOVE)(
3603 WdfDeviceSetStaticStopRemove(
3621 (
STDCALL *PFN_WDFDEVICECREATEDEVICEINTERFACE)(
3636 WdfDeviceCreateDeviceInterface(
3655 (
STDCALL *PFN_WDFDEVICESETDEVICEINTERFACESTATE)(
3671 WdfDeviceSetDeviceInterfaceState(
3693 (
STDCALL *PFN_WDFDEVICERETRIEVEDEVICEINTERFACESTRING)(
3710 WdfDeviceRetrieveDeviceInterfaceString(
3732 (
STDCALL *PFN_WDFDEVICECREATESYMBOLICLINK)(
3745 WdfDeviceCreateSymbolicLink(
3763 (
STDCALL *PFN_WDFDEVICEQUERYPROPERTY)(
3782 WdfDeviceQueryProperty(
3806 (
STDCALL *PFN_WDFDEVICEALLOCANDQUERYPROPERTY)(
3826 WdfDeviceAllocAndQueryProperty(
3850 (
STDCALL *PFN_WDFDEVICESETPNPCAPABILITIES)(
3862 WdfDeviceSetPnpCapabilities(
3879 (
STDCALL *PFN_WDFDEVICESETPOWERCAPABILITIES)(
3891 WdfDeviceSetPowerCapabilities(
3908 (
STDCALL *PFN_WDFDEVICESETBUSINFORMATIONFORCHILDREN)(
3920 WdfDeviceSetBusInformationForChildren(
3938 (
STDCALL *PFN_WDFDEVICEINDICATEWAKESTATUS)(
3951 WdfDeviceIndicateWakeStatus(
3968 (
STDCALL *PFN_WDFDEVICESETFAILED)(
3999 (
STDCALL *PFN_WDFDEVICESTOPIDLENOTRACK)(
4013 WdfDeviceStopIdleNoTrack(
4030 (
STDCALL *PFN_WDFDEVICERESUMEIDLENOTRACK)(
4040 WdfDeviceResumeIdleNoTrack(
4057 (
STDCALL *PFN_WDFDEVICESTOPIDLEACTUAL)(
4077 WdfDeviceStopIdleActual(
4100 (
STDCALL *PFN_WDFDEVICERESUMEIDLEACTUAL)(
4116 WdfDeviceResumeIdleActual(
4137 (
STDCALL *PFN_WDFDEVICEGETFILEOBJECT)(
4149 WdfDeviceGetFileObject(
4167 (
STDCALL *PFN_WDFDEVICEENQUEUEREQUEST)(
4180 WdfDeviceEnqueueRequest(
4197 (
STDCALL *PFN_WDFDEVICEGETDEFAULTQUEUE)(
4207 WdfDeviceGetDefaultQueue(
4223 (
STDCALL *PFN_WDFDEVICECONFIGUREREQUESTDISPATCHING)(
4239 WdfDeviceConfigureRequestDispatching(
4260 (
STDCALL *PFN_WDFDEVICECONFIGUREWDMIRPDISPATCHCALLBACK)(
4279 WdfDeviceConfigureWdmIrpDispatchCallback(
4302 (
STDCALL *PFN_WDFDEVICEGETSYSTEMPOWERACTION)(
4312 WdfDeviceGetSystemPowerAction(
4328 (
STDCALL *PFN_WDFDEVICEWDMASSIGNPOWERFRAMEWORKSETTINGS)(
4341 WdfDeviceWdmAssignPowerFrameworkSettings(
4358 (
STDCALL *PFN_WDFDEVICEINITSETRELEASEHARDWAREORDERONFAILURE)(
4370 WdfDeviceInitSetReleaseHardwareOrderOnFailure(
4387 (
STDCALL *PFN_WDFDEVICEINITSETIOTYPEEX)(
4399 WdfDeviceInitSetIoTypeEx(
4427 (
STDCALL *PFN_WDFDEVICEQUERYPROPERTYEX)(
4448 WdfDeviceQueryPropertyEx(
4474 (
STDCALL *PFN_WDFDEVICEALLOCANDQUERYPROPERTYEX)(
4496 WdfDeviceAllocAndQueryPropertyEx(
4523 (
STDCALL *PFN_WDFDEVICEASSIGNPROPERTY)(
4542 WdfDeviceAssignProperty(
4560 #endif // (NTDDI_VERSION >= NTDDI_WIN2K) 4565 #endif // _WDFDEVICE_H_ WDF_POWER_POLICY_S0_IDLE_USER_CONTROL UserControlOfIdleSettings
PFN_WDF_DEVICE_SELF_MANAGED_IO_RESTART EvtDeviceSelfManagedIoRestart
enum _WDF_DEVICE_PNP_STATE WDF_DEVICE_PNP_STATE
EVT_WDF_DEVICE_DISARM_WAKE_FROM_S0 * PFN_WDF_DEVICE_DISARM_WAKE_FROM_S0
FORCEINLINE VOID WDF_DEVICE_PNP_CAPABILITIES_INIT(_Out_ PWDF_DEVICE_PNP_CAPABILITIES Caps)
_In_ WDFDEVICE _In_ BOOLEAN Stoppable
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_PNP_STATE _In_ PFN_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION EvtDevicePnpStateChange
WDF_DEVICE_POWER_POLICY_STATE CurrentState
_Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFDEVICEWDMDISPATCHPREPROCESSEDIRP)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
WDF_TRI_STATE AutoForwardCleanupClose
struct _WDF_DEVICE_PNP_CAPABILITIES * PWDF_DEVICE_PNP_CAPABILITIES
struct _WDF_DEVICE_POWER_NOTIFICATION_DATA::@3641::@3644 LeaveState
PFN_WDF_DEVICE_SURPRISE_REMOVAL EvtDeviceSurpriseRemoval
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
WDF_DEVICE_POWER_POLICY_STATE NewState
_In_ UCHAR _In_ UCHAR _In_ ULONG _In_ WDFCONTEXT _Inout_ PIRP _In_ WDFCONTEXT DispatchContext
PFN_WDF_DEVICE_DISARM_WAKE_FROM_SX EvtDeviceDisarmWakeFromSx
EVT_WDFDEVICE_WDM_IRP_PREPROCESS * PFN_WDFDEVICE_WDM_IRP_PREPROCESS
_In_ WDF_SPECIAL_FILE_TYPE _In_ BOOLEAN IsInNotificationPath
enum _WDF_DEVICE_PNP_STATE * PWDF_DEVICE_PNP_STATE
struct _WDF_PNPPOWER_EVENT_CALLBACKS * PWDF_PNPPOWER_EVENT_CALLBACKS
_In_ WDFDEVICE _In_ PWDF_DEVICE_POWER_CAPABILITIES PowerCapabilities
struct _WDF_DEVICE_PNP_NOTIFICATION_DATA::@3637::@3639 PostProcessState
DEVICE_POWER_STATE DxState
enum _WDF_POWER_POLICY_IDLE_TIMEOUT_TYPE * PWDF_POWER_POLICY_IDLE_TIMEOUT_TYPE
PPO_FX_COMPONENT_IDLE_STATE_CALLBACK ComponentIdleStateCallback
FORCEINLINE VOID WDF_IO_TYPE_CONFIG_INIT(_Out_ PWDF_IO_TYPE_CONFIG IoTypeConfig)
struct _WDF_IO_TYPE_CONFIG WDF_IO_TYPE_CONFIG
_In_ BOOLEAN _In_ BOOLEAN ChildrenArmedForWake
DEVICE_POWER_STATE IdealDxStateForSx
PFN_WDF_DEVICE_WAKE_FROM_S0_TRIGGERED EvtDeviceWakeFromS0Triggered
_WDF_DISPATCH_IRP_TO_IO_QUEUE_FLAGS
WDF_DEVICE_PNP_STATE CurrentState
struct _DEVICE_OBJECT * PDEVICE_OBJECT
struct _WDF_DEVICE_POWER_NOTIFICATION_DATA::@3641::@3642 EnterState
EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 * PFN_WDF_DEVICE_ARM_WAKE_FROM_S0
struct _WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS * PWDF_DEVICE_POWER_POLICY_WAKE_SETTINGS
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
enum _WDF_TRI_STATE WDF_TRI_STATE
enum _WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE * PWDF_RELEASE_HARDWARE_ORDER_ON_FAILURE
FORCEINLINE VOID WDF_DEVICE_PROPERTY_DATA_INIT(_Out_ PWDF_DEVICE_PROPERTY_DATA PropertyData, _In_ const DEVPROPKEY *PropertyKey)
struct _WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS * PWDF_DEVICE_POWER_POLICY_IDLE_SETTINGS
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
_In_ WDFDEVICE _In_ PWDF_DEVICE_PNP_CAPABILITIES PnpCapabilities
_In_ PWDFDEVICE_INIT DeviceInit
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG _In_opt_ PVOID Data
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PFN_WDFDEVICE_WDM_IRP_PREPROCESS _In_ UCHAR _In_opt_ PUCHAR MinorFunctions
PFN_WDF_DEVICE_QUERY_REMOVE EvtDeviceQueryRemove
PFN_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND EvtDeviceSelfManagedIoSuspend