ReactOS 0.4.16-dev-1875-g3000d45
wdfdevice.h
Go to the documentation of this file.
1/*++
2
3Copyright (c) Microsoft Corporation. All rights reserved.
4
5_WdfVersionBuild_
6
7Module Name:
8
9 wdfdevice.h
10
11Abstract:
12
13
14Environment:
15
16 kernel mode only
17
18Revision History:
19
20--*/
21
22//
23// NOTE: This header is generated by stubwork. Please make any
24// modifications to the corresponding template files
25// (.x or .y) and use stubwork to regenerate the header
26//
27
28#ifndef _WDFDEVICE_H_
29#define _WDFDEVICE_H_
30
31#ifndef WDF_EXTERN_C
32 #ifdef __cplusplus
33 #define WDF_EXTERN_C extern "C"
34 #define WDF_EXTERN_C_START extern "C" {
35 #define WDF_EXTERN_C_END }
36 #else
37 #define WDF_EXTERN_C
38 #define WDF_EXTERN_C_START
39 #define WDF_EXTERN_C_END
40 #endif
41#endif
42
44
45
46
47
48#include <devpropdef.h>
49
50
51#if (NTDDI_VERSION >= NTDDI_WIN2K)
52
53
54// begin_wpp enum
56 WdfDevStateNP = 0x8000,
58
59// end_wpp
60
61// begin_wpp enum
124
125// end_wpp
126
127// begin_wpp enum
225
226// end_wpp
227
228
229// begin_wpp enum
387
388// end_wpp
389
397
404
410
414
420
431
432
433
439
448
457
466
472
478
479
480
481//
482// If you do not want the auto inclusion of wdmsec.h, define
483// WDF_DEVICE_NO_WDMSEC_H before including this file (or wdf.h)
484//
485#ifndef WDF_DEVICE_NO_WDMSEC_H
486#include <wdmsec.h>
487#endif // WDF_DEVICE_NO_WDMSEC_H
488
489
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"
494//
495// Declare empty definitions so that they may be referenced by
496// routines before they are defined.
497//
498
499// enum _WDF_REQUEST_TYPE;
500// typedef enum _WDF_REQUEST_TYPE WDF_REQUEST_TYPE;
501
502typedef enum _WDF_REQUEST_TYPE { // taken from wdfrequest.h
536
537typedef
538_Function_class_(EVT_WDF_DEVICE_FILE_CREATE)
541VOID
543EVT_WDF_DEVICE_FILE_CREATE(
544 _In_
545 WDFDEVICE Device,
546 _In_
547 WDFREQUEST Request,
548 _In_
549 WDFFILEOBJECT FileObject
550 );
551
552typedef EVT_WDF_DEVICE_FILE_CREATE *PFN_WDF_DEVICE_FILE_CREATE;
553
554typedef
555_Function_class_(EVT_WDF_FILE_CLOSE)
558VOID
560EVT_WDF_FILE_CLOSE(
561 _In_
562 WDFFILEOBJECT FileObject
563 );
564
565typedef EVT_WDF_FILE_CLOSE *PFN_WDF_FILE_CLOSE;
566
567typedef
568_Function_class_(EVT_WDF_FILE_CLEANUP)
571VOID
573EVT_WDF_FILE_CLEANUP(
574 _In_
575 WDFFILEOBJECT FileObject
576 );
577
578typedef EVT_WDF_FILE_CLEANUP *PFN_WDF_FILE_CLEANUP;
579
581 //
582 // Size of this structure in bytes
583 //
585
586 //
587 // Event callback for create requests
588 //
590
591 //
592 // Event callback for close requests
593 //
595
596 //
597 // Event callback for cleanup requests
598 //
600
601 //
602 // If WdfTrue, create/cleanup/close file object related requests will be
603 // sent down the stack.
604 //
605 // If WdfFalse, create/cleanup/close will be completed at this location in
606 // the device stack.
607 //
608 // If WdfDefault, behavior depends on device type
609 // FDO, PDO, Control: use the WdfFalse behavior
610 // Filter: use the WdfTrue behavior
611 //
613
614 //
615 // Specify whether framework should create WDFFILEOBJECT and also
616 // whether it can FsContexts fields in the WDM fileobject to store
617 // WDFFILEOBJECT so that it can avoid table look up and improve perf.
618 //
620
622
624VOID
626 _Out_ PWDF_FILEOBJECT_CONFIG FileEventCallbacks,
627 _In_opt_ PFN_WDF_DEVICE_FILE_CREATE EvtDeviceFileCreate,
628 _In_opt_ PFN_WDF_FILE_CLOSE EvtFileClose,
629 _In_opt_ PFN_WDF_FILE_CLEANUP EvtFileCleanup
630 )
631{
632 FileEventCallbacks->Size = sizeof(WDF_FILEOBJECT_CONFIG);
633
634 FileEventCallbacks->EvtDeviceFileCreate = EvtDeviceFileCreate;
635 FileEventCallbacks->EvtFileClose = EvtFileClose;
636 FileEventCallbacks->EvtFileCleanup = EvtFileCleanup;
637
638 FileEventCallbacks->FileObjectClass = WdfFileObjectWdfCannotUseFsContexts;
639 FileEventCallbacks->AutoForwardCleanupClose = WdfUseDefault;
640}
641
643 //
644 // Type of data
645 //
647
648 union {
649 struct {
650 //
651 // The current state that is about to be exited
652 //
654
655 //
656 // The new state that is about to be entered
657 //
660
661 struct {
662 //
663 // The current state
664 //
667
668
669 struct {
670 //
671 // The current state that is about to be exitted
672 //
674
675 //
676 // The state that is about to be entered
677 //
682
684
686 //
687 // Type of data
688 //
690
691 union {
692 struct {
693 //
694 // The current state that is about to be exitted
695 //
697
698 //
699 // The new state that is about to be entered
700 //
703
704 struct {
705 //
706 // The current state
707 //
710
711
712 struct {
713 //
714 // The current state that is about to be exitted
715 //
717
718 //
719 // The state that is about to be entered
720 //
725
727
729 //
730 // Type of data
731 //
733
734 union {
735 struct {
736 //
737 // The current state that is about to be exitted
738 //
740
741 //
742 // The new state that is about to be entered
743 //
746
747 struct {
748 //
749 // The current state
750 //
753
754
755 struct {
756 //
757 // The current state that is about to be exitted
758 //
760
761 //
762 // The state that is about to be entered
763 //
768
770
771typedef
772_Function_class_(EVT_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION)
775VOID
777EVT_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION(
778 _In_
779 WDFDEVICE Device,
780 _In_
782 );
783
784typedef EVT_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION *PFN_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION;
785
786typedef
787_Function_class_(EVT_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION)
790VOID
792EVT_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION(
793 _In_
794 WDFDEVICE Device,
795 _In_
797 );
798
799typedef EVT_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION *PFN_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION;
800
801typedef
802_Function_class_(EVT_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION)
805VOID
807EVT_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION(
808 _In_
809 WDFDEVICE Device,
810 _In_
812 );
813
814typedef EVT_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION *PFN_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION;
815
816#define IdleTimeoutDefaultValue ((ULONG) IdleTimeoutDefaultConstant)
817
818typedef
819_Function_class_(EVT_WDF_DEVICE_D0_ENTRY)
824EVT_WDF_DEVICE_D0_ENTRY(
825 _In_
826 WDFDEVICE Device,
827 _In_
829 );
830
831typedef EVT_WDF_DEVICE_D0_ENTRY *PFN_WDF_DEVICE_D0_ENTRY;
832
833typedef
834_Function_class_(EVT_WDF_DEVICE_D0_ENTRY_POST_INTERRUPTS_ENABLED)
839EVT_WDF_DEVICE_D0_ENTRY_POST_INTERRUPTS_ENABLED(
840 _In_
841 WDFDEVICE Device,
842 _In_
844 );
845
846typedef EVT_WDF_DEVICE_D0_ENTRY_POST_INTERRUPTS_ENABLED *PFN_WDF_DEVICE_D0_ENTRY_POST_INTERRUPTS_ENABLED;
847
848typedef
849_Function_class_(EVT_WDF_DEVICE_D0_EXIT)
854EVT_WDF_DEVICE_D0_EXIT(
855 _In_
856 WDFDEVICE Device,
857 _In_
859 );
860
861typedef EVT_WDF_DEVICE_D0_EXIT *PFN_WDF_DEVICE_D0_EXIT;
862
863typedef
864_Function_class_(EVT_WDF_DEVICE_D0_EXIT_PRE_INTERRUPTS_DISABLED)
869EVT_WDF_DEVICE_D0_EXIT_PRE_INTERRUPTS_DISABLED(
870 _In_
871 WDFDEVICE Device,
872 _In_
874 );
875
876typedef EVT_WDF_DEVICE_D0_EXIT_PRE_INTERRUPTS_DISABLED *PFN_WDF_DEVICE_D0_EXIT_PRE_INTERRUPTS_DISABLED;
877
878typedef
879_Function_class_(EVT_WDF_DEVICE_PREPARE_HARDWARE)
884EVT_WDF_DEVICE_PREPARE_HARDWARE(
885 _In_
886 WDFDEVICE Device,
887 _In_
888 WDFCMRESLIST ResourcesRaw,
889 _In_
891 );
892
893typedef EVT_WDF_DEVICE_PREPARE_HARDWARE *PFN_WDF_DEVICE_PREPARE_HARDWARE;
894
895typedef
896_Function_class_(EVT_WDF_DEVICE_RELEASE_HARDWARE)
901EVT_WDF_DEVICE_RELEASE_HARDWARE(
902 _In_
903 WDFDEVICE Device,
904 _In_
905 WDFCMRESLIST ResourcesTranslated
906 );
907
908typedef EVT_WDF_DEVICE_RELEASE_HARDWARE *PFN_WDF_DEVICE_RELEASE_HARDWARE;
909
910typedef
911_Function_class_(EVT_WDF_DEVICE_SELF_MANAGED_IO_CLEANUP)
914VOID
916EVT_WDF_DEVICE_SELF_MANAGED_IO_CLEANUP(
917 _In_
918 WDFDEVICE Device
919 );
920
921typedef EVT_WDF_DEVICE_SELF_MANAGED_IO_CLEANUP *PFN_WDF_DEVICE_SELF_MANAGED_IO_CLEANUP;
922
923typedef
924_Function_class_(EVT_WDF_DEVICE_SELF_MANAGED_IO_FLUSH)
927VOID
929EVT_WDF_DEVICE_SELF_MANAGED_IO_FLUSH(
930 _In_
931 WDFDEVICE Device
932 );
933
934typedef EVT_WDF_DEVICE_SELF_MANAGED_IO_FLUSH *PFN_WDF_DEVICE_SELF_MANAGED_IO_FLUSH;
935
936typedef
937_Function_class_(EVT_WDF_DEVICE_SELF_MANAGED_IO_INIT)
942EVT_WDF_DEVICE_SELF_MANAGED_IO_INIT(
943 _In_
944 WDFDEVICE Device
945 );
946
947typedef EVT_WDF_DEVICE_SELF_MANAGED_IO_INIT *PFN_WDF_DEVICE_SELF_MANAGED_IO_INIT;
948
949typedef
950_Function_class_(EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND)
955EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND(
956 _In_
957 WDFDEVICE Device
958 );
959
960typedef EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND *PFN_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND;
961
962typedef
963_Function_class_(EVT_WDF_DEVICE_SELF_MANAGED_IO_RESTART)
968EVT_WDF_DEVICE_SELF_MANAGED_IO_RESTART(
969 _In_
970 WDFDEVICE Device
971 );
972
973typedef EVT_WDF_DEVICE_SELF_MANAGED_IO_RESTART *PFN_WDF_DEVICE_SELF_MANAGED_IO_RESTART;
974
975typedef
976_Function_class_(EVT_WDF_DEVICE_QUERY_STOP)
981EVT_WDF_DEVICE_QUERY_STOP(
982 _In_
983 WDFDEVICE Device
984 );
985
986typedef EVT_WDF_DEVICE_QUERY_STOP *PFN_WDF_DEVICE_QUERY_STOP;
987
988typedef
989_Function_class_(EVT_WDF_DEVICE_QUERY_REMOVE)
994EVT_WDF_DEVICE_QUERY_REMOVE(
995 _In_
996 WDFDEVICE Device
997 );
998
999typedef EVT_WDF_DEVICE_QUERY_REMOVE *PFN_WDF_DEVICE_QUERY_REMOVE;
1000
1001typedef
1002_Function_class_(EVT_WDF_DEVICE_SURPRISE_REMOVAL)
1005VOID
1006STDCALL
1007EVT_WDF_DEVICE_SURPRISE_REMOVAL(
1008 _In_
1009 WDFDEVICE Device
1010 );
1011
1012typedef EVT_WDF_DEVICE_SURPRISE_REMOVAL *PFN_WDF_DEVICE_SURPRISE_REMOVAL;
1013
1014typedef
1015_Function_class_(EVT_WDF_DEVICE_USAGE_NOTIFICATION)
1018VOID
1019STDCALL
1020EVT_WDF_DEVICE_USAGE_NOTIFICATION(
1021 _In_
1022 WDFDEVICE Device,
1023 _In_
1025 _In_
1027 );
1028
1029typedef EVT_WDF_DEVICE_USAGE_NOTIFICATION *PFN_WDF_DEVICE_USAGE_NOTIFICATION;
1030
1031typedef
1032_Function_class_(EVT_WDF_DEVICE_USAGE_NOTIFICATION_EX)
1036STDCALL
1037EVT_WDF_DEVICE_USAGE_NOTIFICATION_EX(
1038 _In_
1039 WDFDEVICE Device,
1040 _In_
1042 _In_
1044 );
1045
1046typedef EVT_WDF_DEVICE_USAGE_NOTIFICATION_EX *PFN_WDF_DEVICE_USAGE_NOTIFICATION_EX;
1047
1048typedef
1049_Function_class_(EVT_WDF_DEVICE_RELATIONS_QUERY)
1052VOID
1053STDCALL
1054EVT_WDF_DEVICE_RELATIONS_QUERY(
1055 _In_
1056 WDFDEVICE Device,
1057 _In_
1059 );
1060
1061typedef EVT_WDF_DEVICE_RELATIONS_QUERY *PFN_WDF_DEVICE_RELATIONS_QUERY;
1062
1063typedef
1064_Function_class_(EVT_WDF_DEVICE_ARM_WAKE_FROM_S0)
1068STDCALL
1069EVT_WDF_DEVICE_ARM_WAKE_FROM_S0(
1070 _In_
1071 WDFDEVICE Device
1072 );
1073
1074typedef EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 *PFN_WDF_DEVICE_ARM_WAKE_FROM_S0;
1075
1076typedef
1077_Function_class_(EVT_WDF_DEVICE_ARM_WAKE_FROM_SX)
1081STDCALL
1082EVT_WDF_DEVICE_ARM_WAKE_FROM_SX(
1083 _In_
1084 WDFDEVICE Device
1085 );
1086
1087typedef EVT_WDF_DEVICE_ARM_WAKE_FROM_SX *PFN_WDF_DEVICE_ARM_WAKE_FROM_SX;
1088
1089typedef
1090_Function_class_(EVT_WDF_DEVICE_ARM_WAKE_FROM_SX_WITH_REASON)
1094STDCALL
1095EVT_WDF_DEVICE_ARM_WAKE_FROM_SX_WITH_REASON(
1096 _In_
1097 WDFDEVICE Device,
1098 _In_
1100 _In_
1102 );
1103
1104typedef EVT_WDF_DEVICE_ARM_WAKE_FROM_SX_WITH_REASON *PFN_WDF_DEVICE_ARM_WAKE_FROM_SX_WITH_REASON;
1105
1106typedef
1107_Function_class_(EVT_WDF_DEVICE_DISARM_WAKE_FROM_S0)
1110VOID
1111STDCALL
1112EVT_WDF_DEVICE_DISARM_WAKE_FROM_S0(
1113 _In_
1114 WDFDEVICE Device
1115 );
1116
1117typedef EVT_WDF_DEVICE_DISARM_WAKE_FROM_S0 *PFN_WDF_DEVICE_DISARM_WAKE_FROM_S0;
1118
1119typedef
1120_Function_class_(EVT_WDF_DEVICE_DISARM_WAKE_FROM_SX)
1123VOID
1124STDCALL
1125EVT_WDF_DEVICE_DISARM_WAKE_FROM_SX(
1126 _In_
1127 WDFDEVICE Device
1128 );
1129
1130typedef EVT_WDF_DEVICE_DISARM_WAKE_FROM_SX *PFN_WDF_DEVICE_DISARM_WAKE_FROM_SX;
1131
1132typedef
1133_Function_class_(EVT_WDF_DEVICE_WAKE_FROM_S0_TRIGGERED)
1136VOID
1137STDCALL
1138EVT_WDF_DEVICE_WAKE_FROM_S0_TRIGGERED(
1139 _In_
1140 WDFDEVICE Device
1141 );
1142
1143typedef EVT_WDF_DEVICE_WAKE_FROM_S0_TRIGGERED *PFN_WDF_DEVICE_WAKE_FROM_S0_TRIGGERED;
1144
1145typedef
1146_Function_class_(EVT_WDF_DEVICE_WAKE_FROM_SX_TRIGGERED)
1149VOID
1150STDCALL
1151EVT_WDF_DEVICE_WAKE_FROM_SX_TRIGGERED(
1152 _In_
1153 WDFDEVICE Device
1154 );
1155
1156typedef EVT_WDF_DEVICE_WAKE_FROM_SX_TRIGGERED *PFN_WDF_DEVICE_WAKE_FROM_SX_TRIGGERED;
1157
1159 //
1160 // Size of this structure in bytes
1161 //
1163
1182
1184 //
1185 // Size of this structure in bytes
1186 //
1188
1192
1196
1198
1200
1202VOID
1205 )
1206{
1208
1210}
1211
1213VOID
1216 )
1217{
1220}
1221
1222
1224ULONG
1227 )
1228{
1229 return State & ~WdfDevStateNP;
1230}
1231
1232
1234BOOLEAN
1237 )
1238{
1239 return (State & WdfDevStateNP) ? TRUE : FALSE;
1240}
1241
1247
1249 //
1250 // Size of this structure in bytes
1251 //
1253
1254 //
1255 // Indicates whether the device can wake itself up while the machine is in
1256 // S0.
1257 //
1259
1260 //
1261 // The low power state in which the device will be placed when it is idled
1262 // out while the machine is in S0.
1263 //
1265
1266 //
1267 // Amount of time the device must be idle before idling out. Timeout is in
1268 // milliseconds.
1269 //
1271
1272 //
1273 // Inidcates whether a user can control the idle policy of the device.
1274 // By default, a user is allowed to change the policy.
1275 //
1277
1278 //
1279 // If WdfTrue, idling out while the machine is in S0 will be enabled.
1280 //
1281 // If WdfFalse, idling out will be disabled.
1282 //
1283 // If WdfUseDefault, the idling out will be enabled. If
1284 // UserControlOfIdleSettings is set to IdleAllowUserControl, the user's
1285 // settings will override the default.
1286 //
1288
1289 //
1290 // This field is applicable only when IdleCaps == IdleCannotWakeFromS0
1291 // If WdfTrue,device is powered up on System Wake even if device is idle
1292 // If WdfFalse, device is not powered up on system wake if it is idle
1293 // If WdfUseDefault, the behavior is same as WdfFalse
1294 //
1296
1297 //
1298 // This field determines how the IdleTimeout field is used.
1299 //
1300 // If the value is DriverManagedIdleTimeout, then the idle timeout value
1301 // is determined by the IdleTimeout field of this structure.
1302 //
1303 // If the value is SystemManagedIdleTimeout, then the timeout value is
1304 // determined by the power framework (PoFx) on operating systems where
1305 // the PoFx is available (i.e. Windows 8 and later). The IdleTimeout field
1306 // is ignored on these operating systems. On operating systems where the
1307 // PoFx is not available, the behavior is same as DriverManagedIdleTimeout.
1308 //
1309 // If the value is SystemManagedIdleTimeoutWithHint, then the timeout value
1310 // is determined by the power framework (PoFx) on operating systems where
1311 // the PoFx is available (i.e. Windows 8 and later). In addition, the value
1312 // specified in the IdleTimeout field is provided as a hint to the PoFx in
1313 // determining when the device should be allowed to enter a low-power state.
1314 // Since it is only a hint, the actual duration after which the PoFx allows
1315 // the device to enter a low-power state might be greater than or less than
1316 // the IdleTimeout value. On operating systems where the PoFx is not
1317 // available, the behavior is same as DriverManagedIdleTimeout.
1318 //
1320
1321 //
1322 // This field forces the device to avoid idling in the D3cold power state.
1323 // WDF will ensure, with help from the bus drivers, that the device will
1324 // idle in a D-state that can successfully generate a wake signal, if
1325 // necessary. If the client specifies that DxState == PowerDeviceD3, this
1326 // setting allows the client to distinguish betwen D3hot and D3cold. If
1327 // the client sets DxState == PowerDeviceMaximum, then WDF will pick the
1328 // deepest idle state identified by the bus driver. If that deepest state
1329 // is D3cold, this field allows the client to override that and choose
1330 // D3hot.
1331 //
1332 // If WdfTrue, device will not use D3cold in S0.
1333 // If WdfFalse, device will use D3cold in S0 if the ACPI firmware indicates
1334 // that the device can enter that state, if DxState above does not
1335 // specify some other D-state and, if the device is armed for
1336 // wake, that it can generate its wake signal from D3cold.
1337 // If WdfUseDefault, this setting will be derived from the driver's INF,
1338 // specifically the presence or absence of the following two lines in
1339 // the DDInstall.HW section:
1340 // Include=machine.inf
1341 // Needs=PciD3ColdSupported
1342 //
1344
1346
1348VOID
1352 )
1353{
1355
1357
1358 Settings->IdleTimeout = IdleTimeoutDefaultValue;
1359 Settings->UserControlOfIdleSettings = IdleAllowUserControl;
1360 Settings->Enabled = WdfUseDefault;
1361 Settings->PowerUpIdleDeviceOnSystemWake = WdfUseDefault;
1362 Settings->IdleTimeoutType = DriverManagedIdleTimeout;
1363 Settings->ExcludeD3Cold = WdfUseDefault;
1364
1365 Settings->IdleCaps = IdleCaps;
1366
1367 switch (IdleCaps) {
1369 case IdleCanWakeFromS0:
1370 Settings->DxState = PowerDeviceMaximum;
1371 break;
1372
1374 Settings->DxState = PowerDeviceD3;
1375 break;
1376#ifdef __REACTOS__
1377 /* Just to make GCC Happy */
1378 case IdleCapsInvalid:
1380 break;
1381#endif
1382 }
1383}
1384
1386 //
1387 // Size of this structure in bytes
1388 //
1390
1391 //
1392 // The low power state in which the device will be placed when it is armed
1393 // for wake from Sx.
1394 //
1396
1397 //
1398 // Inidcates whether a user can control the idle policy of the device.
1399 // By default, a user is allowed to change the policy.
1400 //
1402
1403 //
1404 // If WdfTrue, arming the device for wake while the machine is in Sx is
1405 // enabled.
1406 //
1407 // If WdfFalse, arming the device for wake while the machine is in Sx is
1408 // disabled.
1409 //
1410 // If WdfUseDefault, arming will be enabled. If UserControlOfWakeSettings
1411 // is set to WakeAllowUserControl, the user's settings will override the
1412 // default.
1413 //
1415
1416 //
1417 // If set to TRUE, arming the parent device can depend on whether there
1418 // is atleast one child device armed for wake.
1419 //
1420 // If set to FALSE, arming of the parent device will be independent of
1421 // whether any of the child devices are armed for wake.
1422 //
1424
1425 //
1426 // Indicates that whenever the parent device completes the wake irp
1427 // successfully, the status needs to be also propagated to the child
1428 // devices. This helps in tracking which devices were responsible for
1429 // waking the system.
1430 //
1432
1434
1436VOID
1439 )
1440{
1442
1444
1445 Settings->Enabled = WdfUseDefault;
1446 Settings->DxState = PowerDeviceMaximum;
1447 Settings->UserControlOfWakeSettings = WakeAllowUserControl;
1448}
1449
1450typedef struct _WDF_DEVICE_STATE {
1451 //
1452 // Size of this structure in bytes
1453 //
1455
1456 //
1457 // If set to WdfTrue, the device will be disabled
1458 //
1460
1461 //
1462 // If set to WdfTrue, the device will not be displayed in device manager.
1463 // Once hidden, the device cannot be unhidden.
1464 //
1466
1467 //
1468 // If set to WdfTrue, the device is reporting itself as failed. If set
1469 // in conjuction with ResourcesChanged to WdfTrue, the device will receive
1470 // a PnP stop and then a new PnP start device.
1471 //
1473
1474 //
1475 // If set to WdfTrue, the device cannot be subsequently disabled.
1476 //
1478
1479
1480 //
1481 // If set to WdfTrue, the device stack will be torn down.
1482 //
1484
1485 //
1486 // If set to WdfTrue, the device will be sent another PnP start. If the
1487 // Failed field is set to WdfTrue as well, a PnP stop will be sent before
1488 // the start.
1489 //
1491
1493
1495VOID
1497 _Out_ PWDF_DEVICE_STATE PnpDeviceState
1498 )
1499{
1500 RtlZeroMemory(PnpDeviceState, sizeof(WDF_DEVICE_STATE));
1501
1502 PnpDeviceState->Size = sizeof(WDF_DEVICE_STATE);
1503
1504 //
1505 // Initializes all of the fields to the WdfUseDefault enum value
1506 //
1507 PnpDeviceState->Disabled = WdfUseDefault;
1508 PnpDeviceState->DontDisplayInUI = WdfUseDefault;
1509 PnpDeviceState->Failed = WdfUseDefault;
1510 PnpDeviceState->NotDisableable = WdfUseDefault;
1511 PnpDeviceState->Removed = WdfUseDefault;
1512 PnpDeviceState->ResourcesChanged = WdfUseDefault;
1513}
1514
1516 //
1517 // Size of the structure in bytes
1518 //
1520
1521 //
1522 // NOTE: To mark a PDO as raw, call WdfPdoInitAssignRawDevice
1523 //
1524
1534
1535 //
1536 // Default values of -1 indicate not to set this value
1537 //
1540
1542
1544VOID
1547 )
1548{
1550
1551 Caps->Size = sizeof(WDF_DEVICE_PNP_CAPABILITIES);
1552
1553 Caps->LockSupported = WdfUseDefault;
1554 Caps->EjectSupported = WdfUseDefault;
1555 Caps->Removable = WdfUseDefault;
1556 Caps->DockDevice = WdfUseDefault;
1557 Caps->UniqueID = WdfUseDefault;
1558 Caps->SilentInstall = WdfUseDefault;
1559 Caps->SurpriseRemovalOK = WdfUseDefault;
1560 Caps->HardwareDisabled = WdfUseDefault;
1561 Caps->NoDisplayInUI = WdfUseDefault;
1562
1563 Caps->Address = (ULONG) -1;
1564 Caps->UINumber = (ULONG) -1;
1565}
1566
1568 //
1569 // Size of the structure in bytes
1570 //
1572
1575
1580
1581 //
1582 // Default value PowerDeviceMaximum indicates not to set this value
1583 //
1585
1586 //
1587 // Default value PowerDeviceMaximum, PowerSystemMaximum indicates not to
1588 // set this value.
1589 //
1592
1593 //
1594 // Default values of -1 indicate not to set this value
1595 //
1599
1600 //
1601 // Ideal Dx state for the device to be put into when the machine moves into
1602 // Sx and the device is not armed for wake. By default, the default will be
1603 // placed into D3. If IdealDxStateForSx is lighter then
1604 // DeviceState[Sx], then DeviceState[Sx] will be used as the Dx state.
1605 //
1607
1609
1611VOID
1614 )
1615{
1616 ULONG i;
1617
1619
1620 Caps->Size = sizeof(WDF_DEVICE_POWER_CAPABILITIES);
1621
1622 Caps->DeviceD1 = WdfUseDefault;
1623 Caps->DeviceD2 = WdfUseDefault;
1624
1625 Caps->WakeFromD0 = WdfUseDefault;
1626 Caps->WakeFromD1 = WdfUseDefault;
1627 Caps->WakeFromD2 = WdfUseDefault;
1628 Caps->WakeFromD3 = WdfUseDefault;
1629
1630 for (i = 0; i < sizeof(Caps->DeviceState)/sizeof(Caps->DeviceState[1]); i++) {
1631 Caps->DeviceState[i] = PowerDeviceMaximum;
1632 }
1633
1634 Caps->DeviceWake = PowerDeviceMaximum;
1635 Caps->SystemWake = PowerSystemMaximum;
1636
1637 Caps->D1Latency = (ULONG) -1;
1638 Caps->D2Latency = (ULONG) -1;
1639 Caps->D3Latency = (ULONG) -1;
1640
1641 Caps->IdealDxStateForSx = PowerDeviceMaximum;
1642}
1643
1647
1649 //
1650 // Size of the structure in bytes
1651 //
1653
1654 //
1655 // Bit field combination of values from the WDF_REMOVE_LOCK_OPTIONS_FLAGS
1656 // enumeration
1657 //
1660
1661
1662//
1663// Default remove lock options initialization macro
1664//
1666VOID
1670 )
1671{
1673
1675 RemoveLockOptions->Flags = Flags;
1676}
1677
1678typedef
1679_Function_class_(EVT_WDFDEVICE_WDM_IRP_PREPROCESS)
1683STDCALL
1684EVT_WDFDEVICE_WDM_IRP_PREPROCESS(
1685 _In_
1686 WDFDEVICE Device,
1687 _Inout_
1689 );
1690
1691typedef EVT_WDFDEVICE_WDM_IRP_PREPROCESS *PFN_WDFDEVICE_WDM_IRP_PREPROCESS;
1692
1693typedef
1694_Function_class_(EVT_WDFDEVICE_WDM_IRP_DISPATCH)
1698STDCALL
1699EVT_WDFDEVICE_WDM_IRP_DISPATCH(
1700 _In_
1701 WDFDEVICE Device,
1702 _In_
1704 _In_
1706 _In_
1708 _In_
1710 _Inout_
1711 PIRP Irp,
1712 _In_
1714 );
1715
1716typedef EVT_WDFDEVICE_WDM_IRP_DISPATCH *PFN_WDFDEVICE_WDM_IRP_DISPATCH;
1717
1718//
1719// This is called to pre-process a request using METHOD_NEITHER
1720//
1721typedef
1722_Function_class_(EVT_WDF_IO_IN_CALLER_CONTEXT)
1725VOID
1726STDCALL
1727EVT_WDF_IO_IN_CALLER_CONTEXT(
1728 _In_
1729 WDFDEVICE Device,
1730 _In_
1731 WDFREQUEST Request
1732 );
1733
1734typedef EVT_WDF_IO_IN_CALLER_CONTEXT *PFN_WDF_IO_IN_CALLER_CONTEXT;
1735
1736typedef
1737_Function_class_(EVT_WDFDEVICE_WDM_POST_PO_FX_REGISTER_DEVICE)
1741STDCALL
1742EVT_WDFDEVICE_WDM_POST_PO_FX_REGISTER_DEVICE(
1743 _In_
1744 WDFDEVICE Device,
1745 _In_
1746 POHANDLE PoHandle
1747 );
1748
1749typedef EVT_WDFDEVICE_WDM_POST_PO_FX_REGISTER_DEVICE *PFN_WDFDEVICE_WDM_POST_PO_FX_REGISTER_DEVICE;
1750
1751typedef
1752_Function_class_(EVT_WDFDEVICE_WDM_PRE_PO_FX_UNREGISTER_DEVICE)
1755VOID
1756STDCALL
1757EVT_WDFDEVICE_WDM_PRE_PO_FX_UNREGISTER_DEVICE(
1758 _In_
1759 WDFDEVICE Device,
1760 _In_
1761 POHANDLE PoHandle
1762 );
1763
1764typedef EVT_WDFDEVICE_WDM_PRE_PO_FX_UNREGISTER_DEVICE *PFN_WDFDEVICE_WDM_PRE_PO_FX_UNREGISTER_DEVICE;
1765
1767 //
1768 // Size of the structure, in bytes.
1769 //
1771
1772 //
1773 // Client driver's callback function that is invoked after KMDF has
1774 // registered with the power framework. This field can be NULL if the
1775 // client driver does not wish to specify this callback.
1776 //
1778
1779 //
1780 // Client driver's callback function that is invoked before KMDF
1781 // unregisters with the power framework. This field can be NULL if the
1782 // client driver does not wish to specify this callback.
1783 //
1785
1786 //
1787 // Pointer to a PO_FX_COMPONENT structure that describes the only component
1788 // in the single-component device. This field can be NULL if the client
1789 // driver wants KMDF to use the default specification for this component
1790 // (i.e. support for F0 only).
1791 //
1793
1794 //
1795 // Client driver's PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK callback
1796 // function. This field can be NULL if the client driver does not wish to
1797 // specify this callback.
1798 //
1800
1801 //
1802 // Client driver's PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK callback
1803 // function. This field can be NULL if the client driver does not wish to
1804 // specify this callback.
1805 //
1807
1808 //
1809 // Client driver's PO_FX_COMPONENT_IDLE_STATE_CALLBACK callback function.
1810 // This field can be NULL if the client driver does not wish to specify
1811 // this callback.
1812 //
1814
1815 //
1816 // Client driver's PO_FX_POWER_CONTROL_CALLBACK callback function. This
1817 // field can be NULL if the client driver does not wish to specify this
1818 // callback.
1819 //
1821
1822 //
1823 // Context value that is passed in to the ComponentIdleStateCallback and
1824 // PowerControlCallback callback functions.
1825 //
1828
1830VOID
1833 )
1834{
1838}
1839
1840
1841typedef struct _WDF_IO_TYPE_CONFIG {
1842 //
1843 // Size of this structure in bytes
1844 //
1846
1847 //
1848 // <KMDF_DOC/>
1849 // Identifies the method that the driver will use to access data buffers
1850 // that it receives for read and write requests.
1851 //
1852 // <UMDF_DOC/>
1853 // Identifies the method that the driver will "prefer" to use to access data
1854 // buffers that it receives for read and write requests. Note that UMDF
1855 // driver provides just a preference, and not a guarantee.Therefore,
1856 // even if a driver specified direct access method, UMDF might use the
1857 // buffered access method for one or more of the device's requests to
1858 // improve performance. For example, UMDF uses buffered access for small
1859 // buffers, if it can copy the data to the driver's buffer faster than it
1860 // can map the buffers for direct access.
1861 //
1863
1864 //
1865 // <UMDF_ONLY/>
1866 // Identifies the method that the driver will "prefer" to use to access data
1867 // buffers that it receives for IOCTL requests. Note that UMDF
1868 // driver provides just a preference, and not a guarantee. Therefore,
1869 // even if a driver specified direct access method, UMDF might use the
1870 // buffered access method for one or more of the device's requests to
1871 // improve performance. For example, UMDF uses buffered access for small
1872 // buffers, if it can copy the data to the driver's buffer faster than it
1873 // can map the buffers for direct access.
1874 //
1876
1877 //
1878 // <UMDF_ONLY/>
1879 // Optional, Provides the smallest buffer size (in bytes) for which
1880 // UMDF will use direct access for the buffers. For example, set
1881 // DirectTransferThreshold to "12288" to indicate that UMDF should use buffered
1882 // access for all buffers that are smaller than 12 kilobytes, and direct
1883 // access for buffers equal to or greater than that. Typically, you
1884 // do not need to provide this value because UMDF uses a value that provides
1885 // the best performance. Note that there are other requirements that must be
1886 // met in order to get direct access of buffers. See Docs for details.
1887 //
1889
1891
1893VOID
1896 )
1897{
1899 IoTypeConfig->Size = sizeof(WDF_IO_TYPE_CONFIG);
1900 IoTypeConfig->ReadWriteIoType = WdfDeviceIoBuffered;
1901 IoTypeConfig->DeviceControlIoType = WdfDeviceIoBuffered;
1902}
1903
1904
1905
1906
1907
1909 //
1910 // Size of this structure
1911 //
1913
1914 //
1915 // A pointer to a DEVPROPKEY structure that specifies the device
1916 // property key.
1917 //
1919
1920 //
1921 // A locale identifier. Set this parameter either to a language-specific
1922 // LCID value or to LOCALE_NEUTRAL. The LOCALE_NEUTRAL LCID specifies
1923 // that the property is language-neutral (that is, not specific to any
1924 // language). Do not set this parameter to LOCALE_SYSTEM_DEFAULT or
1925 // LOCALE_USER_DEFAULT. For more information about language-specific
1926 // LCID values, see LCID Structure.
1927 //
1929
1930 //
1931 // Set this parameter to PLUGPLAY_PROPERTY_PERSISTENT if the property
1932 // value set by this routine should persist across computer restarts.
1933 // Otherwise, set Flags to zero. Ignored for Query DDIs.
1934 //
1936
1938
1940VOID
1944 )
1945{
1947
1948 PropertyData->Size = sizeof(*PropertyData);
1949 PropertyData->PropertyKey = PropertyKey;
1950}
1951
1952//
1953// VOID
1954// WdfDeviceStopIdle(
1955// _In_ WDFDEVICE Device,
1956// _In_ BOOLEAN WaitForD0
1957// );
1958//
1959// VOID
1960// WdfDeviceStopIdleWithTag(
1961// _In_ WDFDEVICE Device,
1962// _In_ BOOLEAN WaitForD0,
1963// _In_ PVOID Tag
1964// );
1965//
1966// VOID
1967// WdfDeviceResumeIdle(
1968// _In_ WDFDEVICE Device
1969// );
1970//
1971// VOID
1972// WdfDeviceResumeIdleWithTag(
1973// _In_ WDFDEVICE Device
1974// _In_ PVOID Tag
1975// );
1976//
1977#define WdfDeviceStopIdle(Device, WaitForD0) \
1978 WdfDeviceStopIdleWithTag(Device, WaitForD0, NULL)
1979
1980#define WdfDeviceStopIdleWithTag(Device, WaitForD0, Tag) \
1981 WdfDeviceStopIdleActual(Device, WaitForD0, Tag, __LINE__, __FILE__)
1982
1983#define WdfDeviceResumeIdle(Device) \
1984 WdfDeviceResumeIdleWithTag(Device, NULL)
1985
1986#define WdfDeviceResumeIdleWithTag(Device, Tag) \
1987 WdfDeviceResumeIdleActual(Device, Tag, __LINE__, __FILE__)
1988
1989
1990
1991//
1992// WDF Function: WdfDeviceGetDeviceState
1993//
1994typedef
1996WDFAPI
1997VOID
1998(STDCALL *PFN_WDFDEVICEGETDEVICESTATE)(
1999 _In_
2000 PWDF_DRIVER_GLOBALS DriverGlobals,
2001 _In_
2002 WDFDEVICE Device,
2003 _Out_
2005 );
2006
2009VOID
2010WdfDeviceGetDeviceState(
2011 _In_
2012 WDFDEVICE Device,
2013 _Out_
2015 )
2016{
2018}
2019
2020//
2021// WDF Function: WdfDeviceSetDeviceState
2022//
2023typedef
2025WDFAPI
2026VOID
2027(STDCALL *PFN_WDFDEVICESETDEVICESTATE)(
2028 _In_
2029 PWDF_DRIVER_GLOBALS DriverGlobals,
2030 _In_
2031 WDFDEVICE Device,
2032 _In_
2034 );
2035
2038VOID
2039WdfDeviceSetDeviceState(
2040 _In_
2041 WDFDEVICE Device,
2042 _In_
2044 )
2045{
2047}
2048
2049//
2050// WDF Function: WdfWdmDeviceGetWdfDeviceHandle
2051//
2052typedef
2054WDFAPI
2055WDFDEVICE
2056(STDCALL *PFN_WDFWDMDEVICEGETWDFDEVICEHANDLE)(
2057 _In_
2058 PWDF_DRIVER_GLOBALS DriverGlobals,
2059 _In_
2061 );
2062
2065WDFDEVICE
2066WdfWdmDeviceGetWdfDeviceHandle(
2067 _In_
2069 )
2070{
2071 return ((PFN_WDFWDMDEVICEGETWDFDEVICEHANDLE) WdfFunctions[WdfWdmDeviceGetWdfDeviceHandleTableIndex])(WdfDriverGlobals, DeviceObject);
2072}
2073
2074//
2075// WDF Function: WdfDeviceWdmGetDeviceObject
2076//
2077typedef
2079WDFAPI
2081(STDCALL *PFN_WDFDEVICEWDMGETDEVICEOBJECT)(
2082 _In_
2083 PWDF_DRIVER_GLOBALS DriverGlobals,
2084 _In_
2085 WDFDEVICE Device
2086 );
2087
2091WdfDeviceWdmGetDeviceObject(
2092 _In_
2093 WDFDEVICE Device
2094 )
2095{
2096 return ((PFN_WDFDEVICEWDMGETDEVICEOBJECT) WdfFunctions[WdfDeviceWdmGetDeviceObjectTableIndex])(WdfDriverGlobals, Device);
2097}
2098
2099//
2100// WDF Function: WdfDeviceWdmGetAttachedDevice
2101//
2102typedef
2104WDFAPI
2106(STDCALL *PFN_WDFDEVICEWDMGETATTACHEDDEVICE)(
2107 _In_
2108 PWDF_DRIVER_GLOBALS DriverGlobals,
2109 _In_
2110 WDFDEVICE Device
2111 );
2112
2116WdfDeviceWdmGetAttachedDevice(
2117 _In_
2118 WDFDEVICE Device
2119 )
2120{
2121 return ((PFN_WDFDEVICEWDMGETATTACHEDDEVICE) WdfFunctions[WdfDeviceWdmGetAttachedDeviceTableIndex])(WdfDriverGlobals, Device);
2122}
2123
2124//
2125// WDF Function: WdfDeviceWdmGetPhysicalDevice
2126//
2127typedef
2129WDFAPI
2131(STDCALL *PFN_WDFDEVICEWDMGETPHYSICALDEVICE)(
2132 _In_
2133 PWDF_DRIVER_GLOBALS DriverGlobals,
2134 _In_
2135 WDFDEVICE Device
2136 );
2137
2141WdfDeviceWdmGetPhysicalDevice(
2142 _In_
2143 WDFDEVICE Device
2144 )
2145{
2146 return ((PFN_WDFDEVICEWDMGETPHYSICALDEVICE) WdfFunctions[WdfDeviceWdmGetPhysicalDeviceTableIndex])(WdfDriverGlobals, Device);
2147}
2148
2149//
2150// WDF Function: WdfDeviceWdmDispatchPreprocessedIrp
2151//
2152typedef
2155WDFAPI
2157(STDCALL *PFN_WDFDEVICEWDMDISPATCHPREPROCESSEDIRP)(
2158 _In_
2159 PWDF_DRIVER_GLOBALS DriverGlobals,
2160 _In_
2161 WDFDEVICE Device,
2162 _In_
2163 PIRP Irp
2164 );
2165
2170WdfDeviceWdmDispatchPreprocessedIrp(
2171 _In_
2172 WDFDEVICE Device,
2173 _In_
2174 PIRP Irp
2175 )
2176{
2177 return ((PFN_WDFDEVICEWDMDISPATCHPREPROCESSEDIRP) WdfFunctions[WdfDeviceWdmDispatchPreprocessedIrpTableIndex])(WdfDriverGlobals, Device, Irp);
2178}
2179
2180//
2181// WDF Function: WdfDeviceWdmDispatchIrp
2182//
2183typedef
2186WDFAPI
2188(STDCALL *PFN_WDFDEVICEWDMDISPATCHIRP)(
2189 _In_
2190 PWDF_DRIVER_GLOBALS DriverGlobals,
2191 _In_
2192 WDFDEVICE Device,
2193 _In_
2194 PIRP Irp,
2195 _In_
2197 );
2198
2203WdfDeviceWdmDispatchIrp(
2204 _In_
2205 WDFDEVICE Device,
2206 _In_
2207 PIRP Irp,
2208 _In_
2210 )
2211{
2213}
2214
2215//
2216// WDF Function: WdfDeviceWdmDispatchIrpToIoQueue
2217//
2218typedef
2221WDFAPI
2223(STDCALL *PFN_WDFDEVICEWDMDISPATCHIRPTOIOQUEUE)(
2224 _In_
2225 PWDF_DRIVER_GLOBALS DriverGlobals,
2226 _In_
2227 WDFDEVICE Device,
2228 _In_
2229 PIRP Irp,
2230 _In_
2231 WDFQUEUE Queue,
2232 _In_
2234 );
2235
2240WdfDeviceWdmDispatchIrpToIoQueue(
2241 _In_
2242 WDFDEVICE Device,
2243 _In_
2244 PIRP Irp,
2245 _In_
2246 WDFQUEUE Queue,
2247 _In_
2248 ULONG Flags
2249 )
2250{
2251 return ((PFN_WDFDEVICEWDMDISPATCHIRPTOIOQUEUE) WdfFunctions[WdfDeviceWdmDispatchIrpToIoQueueTableIndex])(WdfDriverGlobals, Device, Irp, Queue, Flags);
2252}
2253
2254//
2255// WDF Function: WdfDeviceAddDependentUsageDeviceObject
2256//
2257typedef
2260WDFAPI
2262(STDCALL *PFN_WDFDEVICEADDDEPENDENTUSAGEDEVICEOBJECT)(
2263 _In_
2264 PWDF_DRIVER_GLOBALS DriverGlobals,
2265 _In_
2266 WDFDEVICE Device,
2267 _In_
2269 );
2270
2275WdfDeviceAddDependentUsageDeviceObject(
2276 _In_
2277 WDFDEVICE Device,
2278 _In_
2280 )
2281{
2282 return ((PFN_WDFDEVICEADDDEPENDENTUSAGEDEVICEOBJECT) WdfFunctions[WdfDeviceAddDependentUsageDeviceObjectTableIndex])(WdfDriverGlobals, Device, DependentDevice);
2283}
2284
2285//
2286// WDF Function: WdfDeviceRemoveDependentUsageDeviceObject
2287//
2288typedef
2290WDFAPI
2291VOID
2292(STDCALL *PFN_WDFDEVICEREMOVEDEPENDENTUSAGEDEVICEOBJECT)(
2293 _In_
2294 PWDF_DRIVER_GLOBALS DriverGlobals,
2295 _In_
2296 WDFDEVICE Device,
2297 _In_
2299 );
2300
2303VOID
2304WdfDeviceRemoveDependentUsageDeviceObject(
2305 _In_
2306 WDFDEVICE Device,
2307 _In_
2309 )
2310{
2312}
2313
2314//
2315// WDF Function: WdfDeviceAddRemovalRelationsPhysicalDevice
2316//
2317typedef
2320WDFAPI
2322(STDCALL *PFN_WDFDEVICEADDREMOVALRELATIONSPHYSICALDEVICE)(
2323 _In_
2324 PWDF_DRIVER_GLOBALS DriverGlobals,
2325 _In_
2326 WDFDEVICE Device,
2327 _In_
2329 );
2330
2335WdfDeviceAddRemovalRelationsPhysicalDevice(
2336 _In_
2337 WDFDEVICE Device,
2338 _In_
2340 )
2341{
2342 return ((PFN_WDFDEVICEADDREMOVALRELATIONSPHYSICALDEVICE) WdfFunctions[WdfDeviceAddRemovalRelationsPhysicalDeviceTableIndex])(WdfDriverGlobals, Device, PhysicalDevice);
2343}
2344
2345//
2346// WDF Function: WdfDeviceRemoveRemovalRelationsPhysicalDevice
2347//
2348typedef
2350WDFAPI
2351VOID
2352(STDCALL *PFN_WDFDEVICEREMOVEREMOVALRELATIONSPHYSICALDEVICE)(
2353 _In_
2354 PWDF_DRIVER_GLOBALS DriverGlobals,
2355 _In_
2356 WDFDEVICE Device,
2357 _In_
2359 );
2360
2363VOID
2364WdfDeviceRemoveRemovalRelationsPhysicalDevice(
2365 _In_
2366 WDFDEVICE Device,
2367 _In_
2369 )
2370{
2371 ((PFN_WDFDEVICEREMOVEREMOVALRELATIONSPHYSICALDEVICE) WdfFunctions[WdfDeviceRemoveRemovalRelationsPhysicalDeviceTableIndex])(WdfDriverGlobals, Device, PhysicalDevice);
2372}
2373
2374//
2375// WDF Function: WdfDeviceClearRemovalRelationsDevices
2376//
2377typedef
2379WDFAPI
2380VOID
2381(STDCALL *PFN_WDFDEVICECLEARREMOVALRELATIONSDEVICES)(
2382 _In_
2383 PWDF_DRIVER_GLOBALS DriverGlobals,
2384 _In_
2385 WDFDEVICE Device
2386 );
2387
2390VOID
2391WdfDeviceClearRemovalRelationsDevices(
2392 _In_
2393 WDFDEVICE Device
2394 )
2395{
2396 ((PFN_WDFDEVICECLEARREMOVALRELATIONSDEVICES) WdfFunctions[WdfDeviceClearRemovalRelationsDevicesTableIndex])(WdfDriverGlobals, Device);
2397}
2398
2399//
2400// WDF Function: WdfDeviceGetDriver
2401//
2402typedef
2404WDFAPI
2405WDFDRIVER
2406(STDCALL *PFN_WDFDEVICEGETDRIVER)(
2407 _In_
2408 PWDF_DRIVER_GLOBALS DriverGlobals,
2409 _In_
2410 WDFDEVICE Device
2411 );
2412
2415WDFDRIVER
2416WdfDeviceGetDriver(
2417 _In_
2418 WDFDEVICE Device
2419 )
2420{
2421 return ((PFN_WDFDEVICEGETDRIVER) WdfFunctions[WdfDeviceGetDriverTableIndex])(WdfDriverGlobals, Device);
2422}
2423
2424//
2425// WDF Function: WdfDeviceRetrieveDeviceName
2426//
2427typedef
2430WDFAPI
2432(STDCALL *PFN_WDFDEVICERETRIEVEDEVICENAME)(
2433 _In_
2434 PWDF_DRIVER_GLOBALS DriverGlobals,
2435 _In_
2436 WDFDEVICE Device,
2437 _In_
2438 WDFSTRING String
2439 );
2440
2445WdfDeviceRetrieveDeviceName(
2446 _In_
2447 WDFDEVICE Device,
2448 _In_
2449 WDFSTRING String
2450 )
2451{
2452 return ((PFN_WDFDEVICERETRIEVEDEVICENAME) WdfFunctions[WdfDeviceRetrieveDeviceNameTableIndex])(WdfDriverGlobals, Device, String);
2453}
2454
2455//
2456// WDF Function: WdfDeviceAssignMofResourceName
2457//
2458typedef
2461WDFAPI
2463(STDCALL *PFN_WDFDEVICEASSIGNMOFRESOURCENAME)(
2464 _In_
2465 PWDF_DRIVER_GLOBALS DriverGlobals,
2466 _In_
2467 WDFDEVICE Device,
2468 _In_
2470 );
2471
2476WdfDeviceAssignMofResourceName(
2477 _In_
2478 WDFDEVICE Device,
2479 _In_
2481 )
2482{
2483 return ((PFN_WDFDEVICEASSIGNMOFRESOURCENAME) WdfFunctions[WdfDeviceAssignMofResourceNameTableIndex])(WdfDriverGlobals, Device, MofResourceName);
2484}
2485
2486//
2487// WDF Function: WdfDeviceGetIoTarget
2488//
2489typedef
2491WDFAPI
2492WDFIOTARGET
2493(STDCALL *PFN_WDFDEVICEGETIOTARGET)(
2494 _In_
2495 PWDF_DRIVER_GLOBALS DriverGlobals,
2496 _In_
2497 WDFDEVICE Device
2498 );
2499
2502WDFIOTARGET
2503WdfDeviceGetIoTarget(
2504 _In_
2505 WDFDEVICE Device
2506 )
2507{
2508 return ((PFN_WDFDEVICEGETIOTARGET) WdfFunctions[WdfDeviceGetIoTargetTableIndex])(WdfDriverGlobals, Device);
2509}
2510
2511//
2512// WDF Function: WdfDeviceGetDevicePnpState
2513//
2514typedef
2516WDFAPI
2518(STDCALL *PFN_WDFDEVICEGETDEVICEPNPSTATE)(
2519 _In_
2520 PWDF_DRIVER_GLOBALS DriverGlobals,
2521 _In_
2522 WDFDEVICE Device
2523 );
2524
2528WdfDeviceGetDevicePnpState(
2529 _In_
2530 WDFDEVICE Device
2531 )
2532{
2533 return ((PFN_WDFDEVICEGETDEVICEPNPSTATE) WdfFunctions[WdfDeviceGetDevicePnpStateTableIndex])(WdfDriverGlobals, Device);
2534}
2535
2536//
2537// WDF Function: WdfDeviceGetDevicePowerState
2538//
2539typedef
2541WDFAPI
2543(STDCALL *PFN_WDFDEVICEGETDEVICEPOWERSTATE)(
2544 _In_
2545 PWDF_DRIVER_GLOBALS DriverGlobals,
2546 _In_
2547 WDFDEVICE Device
2548 );
2549
2553WdfDeviceGetDevicePowerState(
2554 _In_
2555 WDFDEVICE Device
2556 )
2557{
2558 return ((PFN_WDFDEVICEGETDEVICEPOWERSTATE) WdfFunctions[WdfDeviceGetDevicePowerStateTableIndex])(WdfDriverGlobals, Device);
2559}
2560
2561//
2562// WDF Function: WdfDeviceGetDevicePowerPolicyState
2563//
2564typedef
2566WDFAPI
2568(STDCALL *PFN_WDFDEVICEGETDEVICEPOWERPOLICYSTATE)(
2569 _In_
2570 PWDF_DRIVER_GLOBALS DriverGlobals,
2571 _In_
2572 WDFDEVICE Device
2573 );
2574
2578WdfDeviceGetDevicePowerPolicyState(
2579 _In_
2580 WDFDEVICE Device
2581 )
2582{
2583 return ((PFN_WDFDEVICEGETDEVICEPOWERPOLICYSTATE) WdfFunctions[WdfDeviceGetDevicePowerPolicyStateTableIndex])(WdfDriverGlobals, Device);
2584}
2585
2586//
2587// WDF Function: WdfDeviceAssignS0IdleSettings
2588//
2589typedef
2592WDFAPI
2594(STDCALL *PFN_WDFDEVICEASSIGNS0IDLESETTINGS)(
2595 _In_
2596 PWDF_DRIVER_GLOBALS DriverGlobals,
2597 _In_
2598 WDFDEVICE Device,
2599 _In_
2601 );
2602
2607WdfDeviceAssignS0IdleSettings(
2608 _In_
2609 WDFDEVICE Device,
2610 _In_
2612 )
2613{
2614 return ((PFN_WDFDEVICEASSIGNS0IDLESETTINGS) WdfFunctions[WdfDeviceAssignS0IdleSettingsTableIndex])(WdfDriverGlobals, Device, Settings);
2615}
2616
2617//
2618// WDF Function: WdfDeviceAssignSxWakeSettings
2619//
2620typedef
2623WDFAPI
2625(STDCALL *PFN_WDFDEVICEASSIGNSXWAKESETTINGS)(
2626 _In_
2627 PWDF_DRIVER_GLOBALS DriverGlobals,
2628 _In_
2629 WDFDEVICE Device,
2630 _In_
2632 );
2633
2638WdfDeviceAssignSxWakeSettings(
2639 _In_
2640 WDFDEVICE Device,
2641 _In_
2643 )
2644{
2645 return ((PFN_WDFDEVICEASSIGNSXWAKESETTINGS) WdfFunctions[WdfDeviceAssignSxWakeSettingsTableIndex])(WdfDriverGlobals, Device, Settings);
2646}
2647
2648//
2649// WDF Function: WdfDeviceOpenRegistryKey
2650//
2651typedef
2654WDFAPI
2656(STDCALL *PFN_WDFDEVICEOPENREGISTRYKEY)(
2657 _In_
2658 PWDF_DRIVER_GLOBALS DriverGlobals,
2659 _In_
2660 WDFDEVICE Device,
2661 _In_
2663 _In_
2665 _In_opt_
2667 _Out_
2668 WDFKEY* Key
2669 );
2670
2675WdfDeviceOpenRegistryKey(
2676 _In_
2677 WDFDEVICE Device,
2678 _In_
2680 _In_
2682 _In_opt_
2684 _Out_
2685 WDFKEY* Key
2686 )
2687{
2689}
2690
2691//
2692// WDF Function: WdfDeviceOpenDevicemapKey
2693//
2694typedef
2697WDFAPI
2699(STDCALL *PFN_WDFDEVICEOPENDEVICEMAPKEY)(
2700 _In_
2701 PWDF_DRIVER_GLOBALS DriverGlobals,
2702 _In_
2703 WDFDEVICE Device,
2704 _In_
2706 _In_
2708 _In_opt_
2710 _Out_
2711 WDFKEY* Key
2712 );
2713
2718WdfDeviceOpenDevicemapKey(
2719 _In_
2720 WDFDEVICE Device,
2721 _In_
2723 _In_
2725 _In_opt_
2727 _Out_
2728 WDFKEY* Key
2729 )
2730{
2732}
2733
2734//
2735// WDF Function: WdfDeviceSetSpecialFileSupport
2736//
2737typedef
2739WDFAPI
2740VOID
2741(STDCALL *PFN_WDFDEVICESETSPECIALFILESUPPORT)(
2742 _In_
2743 PWDF_DRIVER_GLOBALS DriverGlobals,
2744 _In_
2745 WDFDEVICE Device,
2746 _In_
2748 _In_
2750 );
2751
2754VOID
2755WdfDeviceSetSpecialFileSupport(
2756 _In_
2757 WDFDEVICE Device,
2758 _In_
2760 _In_
2762 )
2763{
2765}
2766
2767//
2768// WDF Function: WdfDeviceSetCharacteristics
2769//
2770typedef
2772WDFAPI
2773VOID
2774(STDCALL *PFN_WDFDEVICESETCHARACTERISTICS)(
2775 _In_
2776 PWDF_DRIVER_GLOBALS DriverGlobals,
2777 _In_
2778 WDFDEVICE Device,
2779 _In_
2781 );
2782
2785VOID
2786WdfDeviceSetCharacteristics(
2787 _In_
2788 WDFDEVICE Device,
2789 _In_
2791 )
2792{
2794}
2795
2796//
2797// WDF Function: WdfDeviceGetCharacteristics
2798//
2799typedef
2801WDFAPI
2802ULONG
2803(STDCALL *PFN_WDFDEVICEGETCHARACTERISTICS)(
2804 _In_
2805 PWDF_DRIVER_GLOBALS DriverGlobals,
2806 _In_
2807 WDFDEVICE Device
2808 );
2809
2812ULONG
2813WdfDeviceGetCharacteristics(
2814 _In_
2815 WDFDEVICE Device
2816 )
2817{
2818 return ((PFN_WDFDEVICEGETCHARACTERISTICS) WdfFunctions[WdfDeviceGetCharacteristicsTableIndex])(WdfDriverGlobals, Device);
2819}
2820
2821//
2822// WDF Function: WdfDeviceGetAlignmentRequirement
2823//
2824typedef
2826WDFAPI
2827ULONG
2828(STDCALL *PFN_WDFDEVICEGETALIGNMENTREQUIREMENT)(
2829 _In_
2830 PWDF_DRIVER_GLOBALS DriverGlobals,
2831 _In_
2832 WDFDEVICE Device
2833 );
2834
2837ULONG
2838WdfDeviceGetAlignmentRequirement(
2839 _In_
2840 WDFDEVICE Device
2841 )
2842{
2843 return ((PFN_WDFDEVICEGETALIGNMENTREQUIREMENT) WdfFunctions[WdfDeviceGetAlignmentRequirementTableIndex])(WdfDriverGlobals, Device);
2844}
2845
2846//
2847// WDF Function: WdfDeviceSetAlignmentRequirement
2848//
2849typedef
2851WDFAPI
2852VOID
2853(STDCALL *PFN_WDFDEVICESETALIGNMENTREQUIREMENT)(
2854 _In_
2855 PWDF_DRIVER_GLOBALS DriverGlobals,
2856 _In_
2857 WDFDEVICE Device,
2858 _In_
2860 );
2861
2864VOID
2865WdfDeviceSetAlignmentRequirement(
2866 _In_
2867 WDFDEVICE Device,
2868 _In_
2870 )
2871{
2873}
2874
2875//
2876// WDF Function: WdfDeviceInitFree
2877//
2878typedef
2880WDFAPI
2881VOID
2882(STDCALL *PFN_WDFDEVICEINITFREE)(
2883 _In_
2884 PWDF_DRIVER_GLOBALS DriverGlobals,
2885 _In_
2887 );
2888
2891VOID
2892WdfDeviceInitFree(
2893 _In_
2895 )
2896{
2898}
2899
2900//
2901// WDF Function: WdfDeviceInitSetPnpPowerEventCallbacks
2902//
2903typedef
2905WDFAPI
2906VOID
2907(STDCALL *PFN_WDFDEVICEINITSETPNPPOWEREVENTCALLBACKS)(
2908 _In_
2909 PWDF_DRIVER_GLOBALS DriverGlobals,
2910 _In_
2912 _In_
2914 );
2915
2918VOID
2919WdfDeviceInitSetPnpPowerEventCallbacks(
2920 _In_
2922 _In_
2924 )
2925{
2927}
2928
2929//
2930// WDF Function: WdfDeviceInitSetPowerPolicyEventCallbacks
2931//
2932typedef
2934WDFAPI
2935VOID
2936(STDCALL *PFN_WDFDEVICEINITSETPOWERPOLICYEVENTCALLBACKS)(
2937 _In_
2938 PWDF_DRIVER_GLOBALS DriverGlobals,
2939 _In_
2941 _In_
2943 );
2944
2947VOID
2948WdfDeviceInitSetPowerPolicyEventCallbacks(
2949 _In_
2951 _In_
2953 )
2954{
2956}
2957
2958//
2959// WDF Function: WdfDeviceInitSetPowerPolicyOwnership
2960//
2961typedef
2963WDFAPI
2964VOID
2965(STDCALL *PFN_WDFDEVICEINITSETPOWERPOLICYOWNERSHIP)(
2966 _In_
2967 PWDF_DRIVER_GLOBALS DriverGlobals,
2968 _In_
2970 _In_
2972 );
2973
2976VOID
2977WdfDeviceInitSetPowerPolicyOwnership(
2978 _In_
2980 _In_
2982 )
2983{
2985}
2986
2987//
2988// WDF Function: WdfDeviceInitRegisterPnpStateChangeCallback
2989//
2990typedef
2993WDFAPI
2995(STDCALL *PFN_WDFDEVICEINITREGISTERPNPSTATECHANGECALLBACK)(
2996 _In_
2997 PWDF_DRIVER_GLOBALS DriverGlobals,
2998 _In_
3000 _In_
3002 _In_
3004 _In_
3006 );
3007
3012WdfDeviceInitRegisterPnpStateChangeCallback(
3013 _In_
3015 _In_
3017 _In_
3019 _In_
3021 )
3022{
3024}
3025
3026//
3027// WDF Function: WdfDeviceInitRegisterPowerStateChangeCallback
3028//
3029typedef
3032WDFAPI
3034(STDCALL *PFN_WDFDEVICEINITREGISTERPOWERSTATECHANGECALLBACK)(
3035 _In_
3036 PWDF_DRIVER_GLOBALS DriverGlobals,
3037 _In_
3039 _In_
3041 _In_
3043 _In_
3045 );
3046
3051WdfDeviceInitRegisterPowerStateChangeCallback(
3052 _In_
3054 _In_
3056 _In_
3058 _In_
3060 )
3061{
3063}
3064
3065//
3066// WDF Function: WdfDeviceInitRegisterPowerPolicyStateChangeCallback
3067//
3068typedef
3071WDFAPI
3073(STDCALL *PFN_WDFDEVICEINITREGISTERPOWERPOLICYSTATECHANGECALLBACK)(
3074 _In_
3075 PWDF_DRIVER_GLOBALS DriverGlobals,
3076 _In_
3078 _In_
3080 _In_
3082 _In_
3084 );
3085
3090WdfDeviceInitRegisterPowerPolicyStateChangeCallback(
3091 _In_
3093 _In_
3095 _In_
3097 _In_
3099 )
3100{
3102}
3103
3104//
3105// WDF Function: WdfDeviceInitSetExclusive
3106//
3107typedef
3109WDFAPI
3110VOID
3111(STDCALL *PFN_WDFDEVICEINITSETEXCLUSIVE)(
3112 _In_
3113 PWDF_DRIVER_GLOBALS DriverGlobals,
3114 _In_
3116 _In_
3118 );
3119
3122VOID
3123WdfDeviceInitSetExclusive(
3124 _In_
3126 _In_
3128 )
3129{
3131}
3132
3133//
3134// WDF Function: WdfDeviceInitSetIoType
3135//
3136typedef
3138WDFAPI
3139VOID
3140(STDCALL *PFN_WDFDEVICEINITSETIOTYPE)(
3141 _In_
3142 PWDF_DRIVER_GLOBALS DriverGlobals,
3143 _In_
3145 _In_
3147 );
3148
3151VOID
3152WdfDeviceInitSetIoType(
3153 _In_
3155 _In_
3157 )
3158{
3160}
3161
3162//
3163// WDF Function: WdfDeviceInitSetPowerNotPageable
3164//
3165typedef
3167WDFAPI
3168VOID
3169(STDCALL *PFN_WDFDEVICEINITSETPOWERNOTPAGEABLE)(
3170 _In_
3171 PWDF_DRIVER_GLOBALS DriverGlobals,
3172 _In_
3174 );
3175
3178VOID
3179WdfDeviceInitSetPowerNotPageable(
3180 _In_
3182 )
3183{
3184 ((PFN_WDFDEVICEINITSETPOWERNOTPAGEABLE) WdfFunctions[WdfDeviceInitSetPowerNotPageableTableIndex])(WdfDriverGlobals, DeviceInit);
3185}
3186
3187//
3188// WDF Function: WdfDeviceInitSetPowerPageable
3189//
3190typedef
3192WDFAPI
3193VOID
3194(STDCALL *PFN_WDFDEVICEINITSETPOWERPAGEABLE)(
3195 _In_
3196 PWDF_DRIVER_GLOBALS DriverGlobals,
3197 _In_
3199 );
3200
3203VOID
3204WdfDeviceInitSetPowerPageable(
3205 _In_
3207 )
3208{
3210}
3211
3212//
3213// WDF Function: WdfDeviceInitSetPowerInrush
3214//
3215typedef
3217WDFAPI
3218VOID
3219(STDCALL *PFN_WDFDEVICEINITSETPOWERINRUSH)(
3220 _In_
3221 PWDF_DRIVER_GLOBALS DriverGlobals,
3222 _In_
3224 );
3225
3228VOID
3229WdfDeviceInitSetPowerInrush(
3230 _In_
3232 )
3233{
3235}
3236
3237//
3238// WDF Function: WdfDeviceInitSetDeviceType
3239//
3240typedef
3242WDFAPI
3243VOID
3244(STDCALL *PFN_WDFDEVICEINITSETDEVICETYPE)(
3245 _In_
3246 PWDF_DRIVER_GLOBALS DriverGlobals,
3247 _In_
3249 _In_
3251 );
3252
3255VOID
3256WdfDeviceInitSetDeviceType(
3257 _In_
3259 _In_
3261 )
3262{
3264}
3265
3266//
3267// WDF Function: WdfDeviceInitAssignName
3268//
3269typedef
3272WDFAPI
3274(STDCALL *PFN_WDFDEVICEINITASSIGNNAME)(
3275 _In_
3276 PWDF_DRIVER_GLOBALS DriverGlobals,
3277 _In_
3279 _In_opt_
3281 );
3282
3287WdfDeviceInitAssignName(
3288 _In_
3290 _In_opt_
3292 )
3293{
3294 return ((PFN_WDFDEVICEINITASSIGNNAME) WdfFunctions[WdfDeviceInitAssignNameTableIndex])(WdfDriverGlobals, DeviceInit, DeviceName);
3295}
3296
3297//
3298// WDF Function: WdfDeviceInitAssignSDDLString
3299//
3300typedef
3303WDFAPI
3305(STDCALL *PFN_WDFDEVICEINITASSIGNSDDLSTRING)(
3306 _In_
3307 PWDF_DRIVER_GLOBALS DriverGlobals,
3308 _In_
3310 _In_opt_
3312 );
3313
3318WdfDeviceInitAssignSDDLString(
3319 _In_
3321 _In_opt_
3323 )
3324{
3325 return ((PFN_WDFDEVICEINITASSIGNSDDLSTRING) WdfFunctions[WdfDeviceInitAssignSDDLStringTableIndex])(WdfDriverGlobals, DeviceInit, SDDLString);
3326}
3327
3328//
3329// WDF Function: WdfDeviceInitSetDeviceClass
3330//
3331typedef
3333WDFAPI
3334VOID
3335(STDCALL *PFN_WDFDEVICEINITSETDEVICECLASS)(
3336 _In_
3337 PWDF_DRIVER_GLOBALS DriverGlobals,
3338 _In_
3340 _In_
3342 );
3343
3346VOID
3347WdfDeviceInitSetDeviceClass(
3348 _In_
3350 _In_
3352 )
3353{
3355}
3356
3357//
3358// WDF Function: WdfDeviceInitSetCharacteristics
3359//
3360typedef
3362WDFAPI
3363VOID
3364(STDCALL *PFN_WDFDEVICEINITSETCHARACTERISTICS)(
3365 _In_
3366 PWDF_DRIVER_GLOBALS DriverGlobals,
3367 _In_
3369 _In_
3371 _In_
3373 );
3374
3377VOID
3378WdfDeviceInitSetCharacteristics(
3379 _In_
3381 _In_
3383 _In_
3385 )
3386{
3388}
3389
3390//
3391// WDF Function: WdfDeviceInitSetFileObjectConfig
3392//
3393typedef
3395WDFAPI
3396VOID
3397(STDCALL *PFN_WDFDEVICEINITSETFILEOBJECTCONFIG)(
3398 _In_
3399 PWDF_DRIVER_GLOBALS DriverGlobals,
3400 _In_
3402 _In_
3404 _In_opt_
3406 );
3407
3410VOID
3411WdfDeviceInitSetFileObjectConfig(
3412 _In_
3414 _In_
3416 _In_opt_
3418 )
3419{
3421}
3422
3423//
3424// WDF Function: WdfDeviceInitSetRequestAttributes
3425//
3426typedef
3428WDFAPI
3429VOID
3430(STDCALL *PFN_WDFDEVICEINITSETREQUESTATTRIBUTES)(
3431 _In_
3432 PWDF_DRIVER_GLOBALS DriverGlobals,
3433 _In_
3435 _In_
3437 );
3438
3441VOID
3442WdfDeviceInitSetRequestAttributes(
3443 _In_
3445 _In_
3447 )
3448{
3450}
3451
3452//
3453// WDF Function: WdfDeviceInitAssignWdmIrpPreprocessCallback
3454//
3455typedef
3458WDFAPI
3460(STDCALL *PFN_WDFDEVICEINITASSIGNWDMIRPPREPROCESSCALLBACK)(
3461 _In_
3462 PWDF_DRIVER_GLOBALS DriverGlobals,
3463 _In_
3465 _In_
3467 _In_
3472 _In_
3474 );
3475
3480WdfDeviceInitAssignWdmIrpPreprocessCallback(
3481 _In_
3483 _In_
3485 _In_
3490 _In_
3492 )
3493{
3495}
3496
3497//
3498// WDF Function: WdfDeviceInitSetIoInCallerContextCallback
3499//
3500typedef
3502WDFAPI
3503VOID
3504(STDCALL *PFN_WDFDEVICEINITSETIOINCALLERCONTEXTCALLBACK)(
3505 _In_
3506 PWDF_DRIVER_GLOBALS DriverGlobals,
3507 _In_
3509 _In_
3511 );
3512
3515VOID
3516WdfDeviceInitSetIoInCallerContextCallback(
3517 _In_
3519 _In_
3521 )
3522{
3524}
3525
3526//
3527// WDF Function: WdfDeviceInitSetRemoveLockOptions
3528//
3529typedef
3531WDFAPI
3532VOID
3533(STDCALL *PFN_WDFDEVICEINITSETREMOVELOCKOPTIONS)(
3534 _In_
3535 PWDF_DRIVER_GLOBALS DriverGlobals,
3536 _In_
3538 _In_
3540 );
3541
3544VOID
3545WdfDeviceInitSetRemoveLockOptions(
3546 _In_
3548 _In_
3550 )
3551{
3553}
3554
3555//
3556// WDF Function: WdfDeviceCreate
3557//
3558typedef
3561WDFAPI
3563(STDCALL *PFN_WDFDEVICECREATE)(
3564 _In_
3565 PWDF_DRIVER_GLOBALS DriverGlobals,
3566 _Inout_
3568 _In_opt_
3570 _Out_
3571 WDFDEVICE* Device
3572 );
3573
3578WdfDeviceCreate(
3579 _Inout_
3581 _In_opt_
3583 _Out_
3584 WDFDEVICE* Device
3585 )
3586{
3588}
3589
3590//
3591// WDF Function: WdfDeviceSetStaticStopRemove
3592//
3593typedef
3595WDFAPI
3596VOID
3597(STDCALL *PFN_WDFDEVICESETSTATICSTOPREMOVE)(
3598 _In_
3599 PWDF_DRIVER_GLOBALS DriverGlobals,
3600 _In_
3601 WDFDEVICE Device,
3602 _In_
3604 );
3605
3608VOID
3609WdfDeviceSetStaticStopRemove(
3610 _In_
3611 WDFDEVICE Device,
3612 _In_
3614 )
3615{
3617}
3618
3619//
3620// WDF Function: WdfDeviceCreateDeviceInterface
3621//
3622typedef
3625WDFAPI
3627(STDCALL *PFN_WDFDEVICECREATEDEVICEINTERFACE)(
3628 _In_
3629 PWDF_DRIVER_GLOBALS DriverGlobals,
3630 _In_
3631 WDFDEVICE Device,
3632 _In_
3634 _In_opt_
3636 );
3637
3642WdfDeviceCreateDeviceInterface(
3643 _In_
3644 WDFDEVICE Device,
3645 _In_
3647 _In_opt_
3649 )
3650{
3652}
3653
3654//
3655// WDF Function: WdfDeviceSetDeviceInterfaceState
3656//
3657typedef
3659WDFAPI
3660VOID
3661(STDCALL *PFN_WDFDEVICESETDEVICEINTERFACESTATE)(
3662 _In_
3663 PWDF_DRIVER_GLOBALS DriverGlobals,
3664 _In_
3665 WDFDEVICE Device,
3666 _In_
3668 _In_opt_
3670 _In_
3672 );
3673
3676VOID
3677WdfDeviceSetDeviceInterfaceState(
3678 _In_
3679 WDFDEVICE Device,
3680 _In_
3682 _In_opt_
3684 _In_
3686 )
3687{
3689}
3690
3691//
3692// WDF Function: WdfDeviceRetrieveDeviceInterfaceString
3693//
3694typedef
3697WDFAPI
3699(STDCALL *PFN_WDFDEVICERETRIEVEDEVICEINTERFACESTRING)(
3700 _In_
3701 PWDF_DRIVER_GLOBALS DriverGlobals,
3702 _In_
3703 WDFDEVICE Device,
3704 _In_
3706 _In_opt_
3708 _In_
3709 WDFSTRING String
3710 );
3711
3716WdfDeviceRetrieveDeviceInterfaceString(
3717 _In_
3718 WDFDEVICE Device,
3719 _In_
3721 _In_opt_
3723 _In_
3724 WDFSTRING String
3725 )
3726{
3728}
3729
3730//
3731// WDF Function: WdfDeviceCreateSymbolicLink
3732//
3733typedef
3736WDFAPI
3738(STDCALL *PFN_WDFDEVICECREATESYMBOLICLINK)(
3739 _In_
3740 PWDF_DRIVER_GLOBALS DriverGlobals,
3741 _In_
3742 WDFDEVICE Device,
3743 _In_
3745 );
3746
3751WdfDeviceCreateSymbolicLink(
3752 _In_
3753 WDFDEVICE Device,
3754 _In_
3756 )
3757{
3758 return ((PFN_WDFDEVICECREATESYMBOLICLINK) WdfFunctions[WdfDeviceCreateSymbolicLinkTableIndex])(WdfDriverGlobals, Device, SymbolicLinkName);
3759}
3760
3761//
3762// WDF Function: WdfDeviceQueryProperty
3763//
3764typedef
3767WDFAPI
3769(STDCALL *PFN_WDFDEVICEQUERYPROPERTY)(
3770 _In_
3771 PWDF_DRIVER_GLOBALS DriverGlobals,
3772 _In_
3773 WDFDEVICE Device,
3774 _In_
3776 _In_
3780 _Out_
3782 );
3783
3788WdfDeviceQueryProperty(
3789 _In_
3790 WDFDEVICE Device,
3791 _In_
3793 _In_
3797 _Out_
3799 )
3800{
3802}
3803
3804//
3805// WDF Function: WdfDeviceAllocAndQueryProperty
3806//
3807typedef
3810WDFAPI
3812(STDCALL *PFN_WDFDEVICEALLOCANDQUERYPROPERTY)(
3813 _In_
3814 PWDF_DRIVER_GLOBALS DriverGlobals,
3815 _In_
3816 WDFDEVICE Device,
3817 _In_
3819 _In_
3822 _In_opt_
3824 _Out_
3826 );
3827
3832WdfDeviceAllocAndQueryProperty(
3833 _In_
3834 WDFDEVICE Device,
3835 _In_
3837 _In_
3840 _In_opt_
3842 _Out_
3843 WDFMEMORY* PropertyMemory
3844 )
3845{
3847}
3848
3849//
3850// WDF Function: WdfDeviceSetPnpCapabilities
3851//
3852typedef
3854WDFAPI
3855VOID
3856(STDCALL *PFN_WDFDEVICESETPNPCAPABILITIES)(
3857 _In_
3858 PWDF_DRIVER_GLOBALS DriverGlobals,
3859 _In_
3860 WDFDEVICE Device,
3861 _In_
3863 );
3864
3867VOID
3868WdfDeviceSetPnpCapabilities(
3869 _In_
3870 WDFDEVICE Device,
3871 _In_
3873 )
3874{
3876}
3877
3878//
3879// WDF Function: WdfDeviceSetPowerCapabilities
3880//
3881typedef
3883WDFAPI
3884VOID
3885(STDCALL *PFN_WDFDEVICESETPOWERCAPABILITIES)(
3886 _In_
3887 PWDF_DRIVER_GLOBALS DriverGlobals,
3888 _In_
3889 WDFDEVICE Device,
3890 _In_
3892 );
3893
3896VOID
3897WdfDeviceSetPowerCapabilities(
3898 _In_
3899 WDFDEVICE Device,
3900 _In_
3902 )
3903{
3905}
3906
3907//
3908// WDF Function: WdfDeviceSetBusInformationForChildren
3909//
3910typedef
3912WDFAPI
3913VOID
3914(STDCALL *PFN_WDFDEVICESETBUSINFORMATIONFORCHILDREN)(
3915 _In_
3916 PWDF_DRIVER_GLOBALS DriverGlobals,
3917 _In_
3918 WDFDEVICE Device,
3919 _In_
3921 );
3922
3925VOID
3926WdfDeviceSetBusInformationForChildren(
3927 _In_
3928 WDFDEVICE Device,
3929 _In_
3931 )
3932{
3934}
3935
3936//
3937// WDF Function: WdfDeviceIndicateWakeStatus
3938//
3939typedef
3942WDFAPI
3944(STDCALL *PFN_WDFDEVICEINDICATEWAKESTATUS)(
3945 _In_
3946 PWDF_DRIVER_GLOBALS DriverGlobals,
3947 _In_
3948 WDFDEVICE Device,
3949 _In_
3951 );
3952
3957WdfDeviceIndicateWakeStatus(
3958 _In_
3959 WDFDEVICE Device,
3960 _In_
3962 )
3963{
3964 return ((PFN_WDFDEVICEINDICATEWAKESTATUS) WdfFunctions[WdfDeviceIndicateWakeStatusTableIndex])(WdfDriverGlobals, Device, WaitWakeStatus);
3965}
3966
3967//
3968// WDF Function: WdfDeviceSetFailed
3969//
3970typedef
3972WDFAPI
3973VOID
3974(STDCALL *PFN_WDFDEVICESETFAILED)(
3975 _In_
3976 PWDF_DRIVER_GLOBALS DriverGlobals,
3977 _In_
3978 WDFDEVICE Device,
3979 _In_
3981 );
3982
3985VOID
3986WdfDeviceSetFailed(
3987 _In_
3988 WDFDEVICE Device,
3989 _In_
3991 )
3992{
3994}
3995
3996//
3997// WDF Function: WdfDeviceStopIdleNoTrack
3998//
3999typedef
4003WDFAPI
4005(STDCALL *PFN_WDFDEVICESTOPIDLENOTRACK)(
4006 _In_
4007 PWDF_DRIVER_GLOBALS DriverGlobals,
4008 _In_
4009 WDFDEVICE Device,
4010 _In_
4012 );
4013
4019WdfDeviceStopIdleNoTrack(
4020 _In_
4021 WDFDEVICE Device,
4022 _In_
4024 )
4025{
4026 return ((PFN_WDFDEVICESTOPIDLENOTRACK) WdfFunctions[WdfDeviceStopIdleNoTrackTableIndex])(WdfDriverGlobals, Device, WaitForD0);
4027}
4028
4029//
4030// WDF Function: WdfDeviceResumeIdleNoTrack
4031//
4032typedef
4034WDFAPI
4035VOID
4036(STDCALL *PFN_WDFDEVICERESUMEIDLENOTRACK)(
4037 _In_
4038 PWDF_DRIVER_GLOBALS DriverGlobals,
4039 _In_
4040 WDFDEVICE Device
4041 );
4042
4045VOID
4046WdfDeviceResumeIdleNoTrack(
4047 _In_
4048 WDFDEVICE Device
4049 )
4050{
4051 ((PFN_WDFDEVICERESUMEIDLENOTRACK) WdfFunctions[WdfDeviceResumeIdleNoTrackTableIndex])(WdfDriverGlobals, Device);
4052}
4053
4054//
4055// WDF Function: WdfDeviceStopIdleActual
4056//
4057typedef
4061WDFAPI
4063(STDCALL *PFN_WDFDEVICESTOPIDLEACTUAL)(
4064 _In_
4065 PWDF_DRIVER_GLOBALS DriverGlobals,
4066 _In_
4067 WDFDEVICE Device,
4068 _In_
4070 _In_opt_
4072 _In_
4074 _In_z_
4076 );
4077
4083WdfDeviceStopIdleActual(
4084 _In_
4085 WDFDEVICE Device,
4086 _In_
4088 _In_opt_
4089 PVOID Tag,
4090 _In_
4092 _In_z_
4093 PCHAR File
4094 )
4095{
4096 return ((PFN_WDFDEVICESTOPIDLEACTUAL) WdfFunctions[WdfDeviceStopIdleActualTableIndex])(WdfDriverGlobals, Device, WaitForD0, Tag, Line, File);
4097}
4098
4099//
4100// WDF Function: WdfDeviceResumeIdleActual
4101//
4102typedef
4104WDFAPI
4105VOID
4106(STDCALL *PFN_WDFDEVICERESUMEIDLEACTUAL)(
4107 _In_
4108 PWDF_DRIVER_GLOBALS DriverGlobals,
4109 _In_
4110 WDFDEVICE Device,
4111 _In_opt_
4112 PVOID Tag,
4113 _In_
4114 LONG Line,
4115 _In_z_
4116 PCHAR File
4117 );
4118
4121VOID
4122WdfDeviceResumeIdleActual(
4123 _In_
4124 WDFDEVICE Device,
4125 _In_opt_
4126 PVOID Tag,
4127 _In_
4128 LONG Line,
4129 _In_z_
4130 PCHAR File
4131 )
4132{
4134}
4135
4136//
4137// WDF Function: WdfDeviceGetFileObject
4138//
4139typedef
4141WDFAPI
4142WDFFILEOBJECT
4143(STDCALL *PFN_WDFDEVICEGETFILEOBJECT)(
4144 _In_
4145 PWDF_DRIVER_GLOBALS DriverGlobals,
4146 _In_
4147 WDFDEVICE Device,
4148 _In_
4150 );
4151
4154WDFFILEOBJECT
4155WdfDeviceGetFileObject(
4156 _In_
4157 WDFDEVICE Device,
4158 _In_
4160 )
4161{
4162 return ((PFN_WDFDEVICEGETFILEOBJECT) WdfFunctions[WdfDeviceGetFileObjectTableIndex])(WdfDriverGlobals, Device, FileObject);
4163}
4164
4165//
4166// WDF Function: WdfDeviceEnqueueRequest
4167//
4168typedef
4171WDFAPI
4173(STDCALL *PFN_WDFDEVICEENQUEUEREQUEST)(
4174 _In_
4175 PWDF_DRIVER_GLOBALS DriverGlobals,
4176 _In_
4177 WDFDEVICE Device,
4178 _In_
4179 WDFREQUEST Request
4180 );
4181
4186WdfDeviceEnqueueRequest(
4187 _In_
4188 WDFDEVICE Device,
4189 _In_
4190 WDFREQUEST Request
4191 )
4192{
4193 return ((PFN_WDFDEVICEENQUEUEREQUEST) WdfFunctions[WdfDeviceEnqueueRequestTableIndex])(WdfDriverGlobals, Device, Request);
4194}
4195
4196//
4197// WDF Function: WdfDeviceGetDefaultQueue
4198//
4199typedef
4201WDFAPI
4202WDFQUEUE
4203(STDCALL *PFN_WDFDEVICEGETDEFAULTQUEUE)(
4204 _In_
4205 PWDF_DRIVER_GLOBALS DriverGlobals,
4206 _In_
4207 WDFDEVICE Device
4208 );
4209
4212WDFQUEUE
4213WdfDeviceGetDefaultQueue(
4214 _In_
4215 WDFDEVICE Device
4216 )
4217{
4218 return ((PFN_WDFDEVICEGETDEFAULTQUEUE) WdfFunctions[WdfDeviceGetDefaultQueueTableIndex])(WdfDriverGlobals, Device);
4219}
4220
4221//
4222// WDF Function: WdfDeviceConfigureRequestDispatching
4223//
4224typedef
4227WDFAPI
4229(STDCALL *PFN_WDFDEVICECONFIGUREREQUESTDISPATCHING)(
4230 _In_
4231 PWDF_DRIVER_GLOBALS DriverGlobals,
4232 _In_
4233 WDFDEVICE Device,
4234 _In_
4235 WDFQUEUE Queue,
4236 _In_
4239 );
4240
4245WdfDeviceConfigureRequestDispatching(
4246 _In_
4247 WDFDEVICE Device,
4248 _In_
4249 WDFQUEUE Queue,
4250 _In_
4253 )
4254{
4255 return ((PFN_WDFDEVICECONFIGUREREQUESTDISPATCHING) WdfFunctions[WdfDeviceConfigureRequestDispatchingTableIndex])(WdfDriverGlobals, Device, Queue, RequestType);
4256}
4257
4258//
4259// WDF Function: WdfDeviceConfigureWdmIrpDispatchCallback
4260//
4261typedef
4264WDFAPI
4266(STDCALL *PFN_WDFDEVICECONFIGUREWDMIRPDISPATCHCALLBACK)(
4267 _In_
4268 PWDF_DRIVER_GLOBALS DriverGlobals,
4269 _In_
4270 WDFDEVICE Device,
4271 _In_opt_
4272 WDFDRIVER Driver,
4273 _In_
4275 _In_
4277 _In_opt_
4279 );
4280
4285WdfDeviceConfigureWdmIrpDispatchCallback(
4286 _In_
4287 WDFDEVICE Device,
4288 _In_opt_
4289 WDFDRIVER Driver,
4290 _In_
4292 _In_
4294 _In_opt_
4296 )
4297{
4299}
4300
4301//
4302// WDF Function: WdfDeviceGetSystemPowerAction
4303//
4304typedef
4306WDFAPI
4308(STDCALL *PFN_WDFDEVICEGETSYSTEMPOWERACTION)(
4309 _In_
4310 PWDF_DRIVER_GLOBALS DriverGlobals,
4311 _In_
4312 WDFDEVICE Device
4313 );
4314
4318WdfDeviceGetSystemPowerAction(
4319 _In_
4320 WDFDEVICE Device
4321 )
4322{
4323 return ((PFN_WDFDEVICEGETSYSTEMPOWERACTION) WdfFunctions[WdfDeviceGetSystemPowerActionTableIndex])(WdfDriverGlobals, Device);
4324}
4325
4326//
4327// WDF Function: WdfDeviceWdmAssignPowerFrameworkSettings
4328//
4329typedef
4332WDFAPI
4334(STDCALL *PFN_WDFDEVICEWDMASSIGNPOWERFRAMEWORKSETTINGS)(
4335 _In_
4336 PWDF_DRIVER_GLOBALS DriverGlobals,
4337 _In_
4338 WDFDEVICE Device,
4339 _In_
4341 );
4342
4347WdfDeviceWdmAssignPowerFrameworkSettings(
4348 _In_
4349 WDFDEVICE Device,
4350 _In_
4352 )
4353{
4354 return ((PFN_WDFDEVICEWDMASSIGNPOWERFRAMEWORKSETTINGS) WdfFunctions[WdfDeviceWdmAssignPowerFrameworkSettingsTableIndex])(WdfDriverGlobals, Device, PowerFrameworkSettings);
4355}
4356
4357//
4358// WDF Function: WdfDeviceInitSetReleaseHardwareOrderOnFailure
4359//
4360typedef
4362WDFAPI
4363VOID
4364(STDCALL *PFN_WDFDEVICEINITSETRELEASEHARDWAREORDERONFAILURE)(
4365 _In_
4366 PWDF_DRIVER_GLOBALS DriverGlobals,
4367 _In_
4369 _In_
4371 );
4372
4375VOID
4376WdfDeviceInitSetReleaseHardwareOrderOnFailure(
4377 _In_
4379 _In_
4381 )
4382{
4384}
4385
4386//
4387// WDF Function: WdfDeviceInitSetIoTypeEx
4388//
4389typedef
4391WDFAPI
4392VOID
4393(STDCALL *PFN_WDFDEVICEINITSETIOTYPEEX)(
4394 _In_
4395 PWDF_DRIVER_GLOBALS DriverGlobals,
4396 _In_
4398 _In_
4400 );
4401
4404VOID
4405WdfDeviceInitSetIoTypeEx(
4406 _In_
4408 _In_
4410 )
4411{
4413}
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425//
4426// WDF Function: WdfDeviceQueryPropertyEx
4427//
4428typedef
4431WDFAPI
4433(STDCALL *PFN_WDFDEVICEQUERYPROPERTYEX)(
4434 _In_
4435 PWDF_DRIVER_GLOBALS DriverGlobals,
4436 _In_
4437 WDFDEVICE Device,
4438 _In_
4440 _In_
4442 _Out_
4444 _Out_
4446 _Out_
4448 );
4449
4454WdfDeviceQueryPropertyEx(
4455 _In_
4456 WDFDEVICE Device,
4457 _In_
4459 _In_
4461 _Out_
4463 _Out_
4465 _Out_
4467 )
4468{
4470}
4471
4472//
4473// WDF Function: WdfDeviceAllocAndQueryPropertyEx
4474//
4475typedef
4478WDFAPI
4480(STDCALL *PFN_WDFDEVICEALLOCANDQUERYPROPERTYEX)(
4481 _In_
4482 PWDF_DRIVER_GLOBALS DriverGlobals,
4483 _In_
4484 WDFDEVICE Device,
4485 _In_
4487 _In_
4490 _In_opt_
4492 _Out_
4493 WDFMEMORY* PropertyMemory,
4494 _Out_
4496 );
4497
4502WdfDeviceAllocAndQueryPropertyEx(
4503 _In_
4504 WDFDEVICE Device,
4505 _In_
4507 _In_
4510 _In_opt_
4512 _Out_
4513 WDFMEMORY* PropertyMemory,
4514 _Out_
4516 )
4517{
4519}
4520
4521//
4522// WDF Function: WdfDeviceAssignProperty
4523//
4524typedef
4527WDFAPI
4529(STDCALL *PFN_WDFDEVICEASSIGNPROPERTY)(
4530 _In_
4531 PWDF_DRIVER_GLOBALS DriverGlobals,
4532 _In_
4533 WDFDEVICE Device,
4534 _In_
4536 _In_
4538 _In_
4540 _In_opt_
4542 );
4543
4548WdfDeviceAssignProperty(
4549 _In_
4550 WDFDEVICE Device,
4551 _In_
4553 _In_
4555 _In_
4556 ULONG Size,
4557 _In_opt_
4558 PVOID Data
4559 )
4560{
4562}
4563
4564
4565
4566#endif // (NTDDI_VERSION >= NTDDI_WIN2K)
4567
4568
4570
4571#endif // _WDFDEVICE_H_
4572
4573
unsigned char BOOLEAN
Type
Definition: Type.h:7
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
const struct winhelp_callbacks Callbacks
Definition: callback.c:161
Definition: File.h:16
_In_ PIRP Irp
Definition: csq.h:116
ULONG DEVPROPTYPE
Definition: devpropdef.h:24
ULONG * PDEVPROPTYPE
Definition: devpropdef.h:24
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define NTSTATUS
Definition: precomp.h:19
#define DEVICE_TYPE
Definition: guid.c:10
#define _IRQL_requires_same_
Definition: driverspecs.h:232
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
struct _DEVICE_OBJECT * PDEVICE_OBJECT
#define APC_LEVEL
Definition: env_spec_w32.h:695
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData
__in PWDFDEVICE_INIT __in PWDF_REMOVE_LOCK_OPTIONS RemoveLockOptions
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
DeviceType
Definition: mmdrv.h:42
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _Inout_
Definition: no_sal2.h:162
#define _In_z_
Definition: no_sal2.h:164
#define _Must_inspect_result_
Definition: no_sal2.h:62
#define _Out_
Definition: no_sal2.h:160
#define _Strict_type_match_
Definition: no_sal2.h:406
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _Function_class_(n)
Definition: no_sal2.h:398
ULONG ACCESS_MASK
Definition: nt_native.h:40
@ PowerSystemMaximum
Definition: ntpoapi.h:42
POWER_ACTION
Definition: ntpoapi.h:122
@ PowerDeviceUnspecified
Definition: ntpoapi.h:48
@ PowerDeviceD3
Definition: ntpoapi.h:52
@ PowerDeviceMaximum
Definition: ntpoapi.h:53
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
#define CONST
Definition: pedump.c:81
long LONG
Definition: pedump.c:60
DWORD LCID
Definition: nls.h:13
Definition: ncftp.h:79
WDF_TRI_STATE EjectSupported
Definition: wdfdevice.h:1526
WDF_TRI_STATE SurpriseRemovalOK
Definition: wdfdevice.h:1531
WDF_TRI_STATE HardwareDisabled
Definition: wdfdevice.h:1532
WDF_DEVICE_PNP_STATE CurrentState
Definition: wdfdevice.h:653
struct _WDF_DEVICE_PNP_NOTIFICATION_DATA::@3964::@3967 LeaveState
struct _WDF_DEVICE_PNP_NOTIFICATION_DATA::@3964::@3966 PostProcessState
WDF_DEVICE_PNP_STATE NewState
Definition: wdfdevice.h:658
struct _WDF_DEVICE_PNP_NOTIFICATION_DATA::@3964::@3965 EnterState
WDF_STATE_NOTIFICATION_TYPE Type
Definition: wdfdevice.h:646
union _WDF_DEVICE_PNP_NOTIFICATION_DATA::@3964 Data
DEVICE_POWER_STATE DeviceWake
Definition: wdfdevice.h:1590
SYSTEM_POWER_STATE SystemWake
Definition: wdfdevice.h:1591
DEVICE_POWER_STATE IdealDxStateForSx
Definition: wdfdevice.h:1606
WDF_DEVICE_POWER_STATE NewState
Definition: wdfdevice.h:701
struct _WDF_DEVICE_POWER_NOTIFICATION_DATA::@3968::@3969 EnterState
WDF_STATE_NOTIFICATION_TYPE Type
Definition: wdfdevice.h:689
WDF_DEVICE_POWER_STATE CurrentState
Definition: wdfdevice.h:696
struct _WDF_DEVICE_POWER_NOTIFICATION_DATA::@3968::@3970 PostProcessState
union _WDF_DEVICE_POWER_NOTIFICATION_DATA::@3968 Data
struct _WDF_DEVICE_POWER_NOTIFICATION_DATA::@3968::@3971 LeaveState
WDF_POWER_POLICY_S0_IDLE_USER_CONTROL UserControlOfIdleSettings
Definition: wdfdevice.h:1276
WDF_POWER_POLICY_S0_IDLE_CAPABILITIES IdleCaps
Definition: wdfdevice.h:1258
WDF_POWER_POLICY_IDLE_TIMEOUT_TYPE IdleTimeoutType
Definition: wdfdevice.h:1319
WDF_DEVICE_POWER_POLICY_STATE NewState
Definition: wdfdevice.h:744
struct _WDF_DEVICE_POWER_POLICY_NOTIFICATION_DATA::@3972::@3975 LeaveState
struct _WDF_DEVICE_POWER_POLICY_NOTIFICATION_DATA::@3972::@3973 EnterState
union _WDF_DEVICE_POWER_POLICY_NOTIFICATION_DATA::@3972 Data
struct _WDF_DEVICE_POWER_POLICY_NOTIFICATION_DATA::@3972::@3974 PostProcessState
WDF_STATE_NOTIFICATION_TYPE Type
Definition: wdfdevice.h:732
WDF_DEVICE_POWER_POLICY_STATE CurrentState
Definition: wdfdevice.h:739
WDF_POWER_POLICY_SX_WAKE_USER_CONTROL UserControlOfWakeSettings
Definition: wdfdevice.h:1401
_In_ const DEVPROPKEY * PropertyKey
Definition: wdfdevice.h:1918
WDF_TRI_STATE NotDisableable
Definition: wdfdevice.h:1477
WDF_TRI_STATE ResourcesChanged
Definition: wdfdevice.h:1490
WDF_TRI_STATE DontDisplayInUI
Definition: wdfdevice.h:1465
WDF_TRI_STATE Disabled
Definition: wdfdevice.h:1459
WDF_TRI_STATE Removed
Definition: wdfdevice.h:1483
WDF_TRI_STATE Failed
Definition: wdfdevice.h:1472
WDF_TRI_STATE AutoForwardCleanupClose
Definition: wdfdevice.h:612
PFN_WDF_DEVICE_FILE_CREATE EvtDeviceFileCreate
Definition: wdfdevice.h:589
WDF_FILEOBJECT_CLASS FileObjectClass
Definition: wdfdevice.h:619
PFN_WDF_FILE_CLEANUP EvtFileCleanup
Definition: wdfdevice.h:599
PFN_WDF_FILE_CLOSE EvtFileClose
Definition: wdfdevice.h:594
WDF_DEVICE_IO_TYPE DeviceControlIoType
Definition: wdfdevice.h:1875
WDF_DEVICE_IO_TYPE ReadWriteIoType
Definition: wdfdevice.h:1862
ULONG DirectTransferThreshold
Definition: wdfdevice.h:1888
PFN_WDF_DEVICE_D0_ENTRY EvtDeviceD0Entry
Definition: wdfdevice.h:1164
PFN_WDF_DEVICE_RELATIONS_QUERY EvtDeviceRelationsQuery
Definition: wdfdevice.h:1179
PFN_WDF_DEVICE_SELF_MANAGED_IO_RESTART EvtDeviceSelfManagedIoRestart
Definition: wdfdevice.h:1174
PFN_WDF_DEVICE_SELF_MANAGED_IO_INIT EvtDeviceSelfManagedIoInit
Definition: wdfdevice.h:1172
PFN_WDF_DEVICE_QUERY_STOP EvtDeviceQueryStop
Definition: wdfdevice.h:1177
PFN_WDF_DEVICE_QUERY_REMOVE EvtDeviceQueryRemove
Definition: wdfdevice.h:1176
PFN_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND EvtDeviceSelfManagedIoSuspend
Definition: wdfdevice.h:1173
PFN_WDF_DEVICE_D0_EXIT EvtDeviceD0Exit
Definition: wdfdevice.h:1166
PFN_WDF_DEVICE_SURPRISE_REMOVAL EvtDeviceSurpriseRemoval
Definition: wdfdevice.h:1175
PFN_WDF_DEVICE_USAGE_NOTIFICATION EvtDeviceUsageNotification
Definition: wdfdevice.h:1178
PFN_WDF_DEVICE_SELF_MANAGED_IO_FLUSH EvtDeviceSelfManagedIoFlush
Definition: wdfdevice.h:1171
PFN_WDF_DEVICE_PREPARE_HARDWARE EvtDevicePrepareHardware
Definition: wdfdevice.h:1168
PFN_WDF_DEVICE_D0_ENTRY_POST_INTERRUPTS_ENABLED EvtDeviceD0EntryPostInterruptsEnabled
Definition: wdfdevice.h:1165
PFN_WDF_DEVICE_SELF_MANAGED_IO_CLEANUP EvtDeviceSelfManagedIoCleanup
Definition: wdfdevice.h:1170
PFN_WDF_DEVICE_USAGE_NOTIFICATION_EX EvtDeviceUsageNotificationEx
Definition: wdfdevice.h:1180
PFN_WDF_DEVICE_D0_EXIT_PRE_INTERRUPTS_DISABLED EvtDeviceD0ExitPreInterruptsDisabled
Definition: wdfdevice.h:1167
PFN_WDF_DEVICE_RELEASE_HARDWARE EvtDeviceReleaseHardware
Definition: wdfdevice.h:1169
PFN_WDFDEVICE_WDM_POST_PO_FX_REGISTER_DEVICE EvtDeviceWdmPostPoFxRegisterDevice
Definition: wdfdevice.h:1777
PFN_WDFDEVICE_WDM_PRE_PO_FX_UNREGISTER_DEVICE EvtDeviceWdmPrePoFxUnregisterDevice
Definition: wdfdevice.h:1784
PPO_FX_COMPONENT_IDLE_STATE_CALLBACK ComponentIdleStateCallback
Definition: wdfdevice.h:1813
PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK ComponentIdleConditionCallback
Definition: wdfdevice.h:1806
PPO_FX_POWER_CONTROL_CALLBACK PowerControlCallback
Definition: wdfdevice.h:1820
PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK ComponentActiveConditionCallback
Definition: wdfdevice.h:1799
PPO_FX_COMPONENT Component
Definition: wdfdevice.h:1792
PFN_WDF_DEVICE_ARM_WAKE_FROM_S0 EvtDeviceArmWakeFromS0
Definition: wdfdevice.h:1189
PFN_WDF_DEVICE_DISARM_WAKE_FROM_S0 EvtDeviceDisarmWakeFromS0
Definition: wdfdevice.h:1190
PFN_WDF_DEVICE_ARM_WAKE_FROM_SX_WITH_REASON EvtDeviceArmWakeFromSxWithReason
Definition: wdfdevice.h:1197
PFN_WDF_DEVICE_WAKE_FROM_SX_TRIGGERED EvtDeviceWakeFromSxTriggered
Definition: wdfdevice.h:1195
PFN_WDF_DEVICE_WAKE_FROM_S0_TRIGGERED EvtDeviceWakeFromS0Triggered
Definition: wdfdevice.h:1191
PFN_WDF_DEVICE_ARM_WAKE_FROM_SX EvtDeviceArmWakeFromSx
Definition: wdfdevice.h:1193
PFN_WDF_DEVICE_DISARM_WAKE_FROM_SX EvtDeviceDisarmWakeFromSx
Definition: wdfdevice.h:1194
uint32_t * PULONG
Definition: typedefs.h:59
INT POOL_TYPE
Definition: typedefs.h:78
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
char * PCHAR
Definition: typedefs.h:51
#define STDCALL
Definition: wdf.h:45
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_Must_inspect_result_ _In_ WDFDRIVER Driver
Definition: wdfcontrol.h:83
_Must_inspect_result_ _In_ WDFDRIVER _In_ CONST UNICODE_STRING * SDDLString
Definition: wdfcontrol.h:86
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfcontrol.h:113
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061
_In_ PWDFDEVICE_INIT _In_ PWDF_FILEOBJECT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES FileObjectAttributes
Definition: wdfdevice.h:3406
EVT_WDF_DEVICE_QUERY_STOP * PFN_WDF_DEVICE_QUERY_STOP
Definition: wdfdevice.h:986
enum _WDF_DEVICE_POWER_STATE * PWDF_DEVICE_POWER_STATE
enum _WDF_POWER_POLICY_IDLE_TIMEOUT_TYPE * PWDF_POWER_POLICY_IDLE_TIMEOUT_TYPE
const WDF_DEVICE_POWER_POLICY_NOTIFICATION_DATA * PCWDF_DEVICE_POWER_POLICY_NOTIFICATION_DATA
Definition: wdfdevice.h:769
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK _In_opt_ PWDF_OBJECT_ATTRIBUTES KeyAttributes
Definition: wdfdevice.h:2666
_WDF_POWER_POLICY_SX_WAKE_USER_CONTROL
Definition: wdfdevice.h:415
@ WakeUserControlInvalid
Definition: wdfdevice.h:416
@ WakeAllowUserControl
Definition: wdfdevice.h:418
@ WakeDoNotAllowUserControl
Definition: wdfdevice.h:417
FORCEINLINE VOID WDF_DEVICE_PNP_CAPABILITIES_INIT(_Out_ PWDF_DEVICE_PNP_CAPABILITIES Caps)
Definition: wdfdevice.h:1545
_In_ WDF_POWER_DEVICE_STATE PreviousState
Definition: wdfdevice.h:829
_WDF_DEVICE_PNP_STATE
Definition: wdfdevice.h:62
@ WdfDevStatePnpInit
Definition: wdfdevice.h:69
@ WdfDevStatePnpFailedPowerPolicyRemoved
Definition: wdfdevice.h:121
@ WdfDevStatePnpFinal
Definition: wdfdevice.h:117
@ WdfDevStatePnpFailedSurpriseRemoved
Definition: wdfdevice.h:108
@ WdfDevStatePnpFailed
Definition: wdfdevice.h:107
@ WdfDevStatePnpInitQueryRemove
Definition: wdfdevice.h:98
@ WdfDevStatePnpHardwareAvailablePowerPolicyFailed
Definition: wdfdevice.h:74
@ WdfDevStatePnpQueryRemovePending
Definition: wdfdevice.h:76
@ WdfDevStatePnpStartedStopping
Definition: wdfdevice.h:96
@ WdfDevStatePnpInitSurpriseRemoved
Definition: wdfdevice.h:71
@ WdfDevStatePnpRemovedChildrenRemoved
Definition: wdfdevice.h:118
@ WdfDevStatePnpEjectedWaitingForRemove
Definition: wdfdevice.h:68
@ WdfDevStatePnpRemovingDisableInterfaces
Definition: wdfdevice.h:87
@ WdfDevStatePnpRemoved
Definition: wdfdevice.h:83
@ WdfDevStatePnpStartedCancelStop
Definition: wdfdevice.h:90
@ WdfDevStatePnpStartedRemoving
Definition: wdfdevice.h:92
@ WdfDevStatePnpRemovedWaitForChildren
Definition: wdfdevice.h:101
@ WdfDevStatePnpQueryStopAskDriver
Definition: wdfdevice.h:79
@ WdfDevStatePnpQueriedSurpriseRemove
Definition: wdfdevice.h:102
@ WdfDevStatePnpFailedIoStarting
Definition: wdfdevice.h:105
@ WdfDevStatePnpRestart
Definition: wdfdevice.h:113
@ WdfDevStatePnpStarted
Definition: wdfdevice.h:89
@ WdfDevStatePnpPdoRemoved
Definition: wdfdevice.h:84
@ WdfDevStatePnpInitStarting
Definition: wdfdevice.h:70
@ WdfDevStatePnpFailedPowerDown
Definition: wdfdevice.h:104
@ WdfDevStatePnpStartingFromStopped
Definition: wdfdevice.h:93
@ WdfDevStatePnpFdoRemoved
Definition: wdfdevice.h:100
@ WdfDevStatePnpStopped
Definition: wdfdevice.h:94
@ WdfDevStatePnpSurpriseRemove
Definition: wdfdevice.h:97
@ WdfDevStatePnpQueryStopStaticCheck
Definition: wdfdevice.h:81
@ WdfDevStatePnpEnableInterfaces
Definition: wdfdevice.h:73
@ WdfDevStatePnpFailedOwnHardware
Definition: wdfdevice.h:106
@ WdfDevStatePnpRemovedPdoWait
Definition: wdfdevice.h:85
@ WdfDevStatePnpQueryRemoveStaticCheck
Definition: wdfdevice.h:77
@ WdfDevStatePnpRestartHardwareAvailable
Definition: wdfdevice.h:115
@ WdfDevStatePnpFailedStarted
Definition: wdfdevice.h:109
@ WdfDevStatePnpQueryRemoveEnsureDeviceAwake
Definition: wdfdevice.h:119
@ WdfDevStatePnpStartedCancelRemove
Definition: wdfdevice.h:91
@ WdfDevStatePnpQueriedRemoving
Definition: wdfdevice.h:78
@ WdfDevStatePnpEjectHardware
Definition: wdfdevice.h:67
@ WdfDevStatePnpQueryStopEnsureDeviceAwake
Definition: wdfdevice.h:120
@ WdfDevStatePnpQueryStopPending
Definition: wdfdevice.h:80
@ WdfDevStatePnpPdoRestart
Definition: wdfdevice.h:116
@ WdfDevStatePnpQueryCanceled
Definition: wdfdevice.h:82
@ WdfDevStatePnpQueryRemoveAskDriver
Definition: wdfdevice.h:75
@ WdfDevStatePnpRemovedPdoSurpriseRemoved
Definition: wdfdevice.h:86
@ WdfDevStatePnpStoppedWaitForStartCompletion
Definition: wdfdevice.h:95
@ WdfDevStatePnpRestarting
Definition: wdfdevice.h:88
@ WdfDevStatePnpFailedInit
Definition: wdfdevice.h:111
@ WdfDevStatePnpPdoInitFailed
Definition: wdfdevice.h:112
@ WdfDevStatePnpCheckForDevicePresence
Definition: wdfdevice.h:65
@ WdfDevStatePnpRestartReleaseHardware
Definition: wdfdevice.h:114
@ WdfDevStatePnpNull
Definition: wdfdevice.h:122
@ WdfDevStatePnpInitQueryRemoveCanceled
Definition: wdfdevice.h:99
@ WdfDevStatePnpObjectCreated
Definition: wdfdevice.h:64
@ WdfDevStatePnpFailedWaitForRemove
Definition: wdfdevice.h:110
@ WdfDevStatePnpSurpriseRemoveIoStarted
Definition: wdfdevice.h:103
@ WdfDevStatePnpEjectFailed
Definition: wdfdevice.h:66
@ WdfDevStatePnpHardwareAvailable
Definition: wdfdevice.h:72
@ WdfDevStatePnpInvalid
Definition: wdfdevice.h:63
_In_ DEVICE_RELATION_TYPE RelationType
Definition: wdfdevice.h:1059
FORCEINLINE VOID WDF_DEVICE_STATE_INIT(_Out_ PWDF_DEVICE_STATE PnpDeviceState)
Definition: wdfdevice.h:1496
const WDF_DEVICE_PNP_NOTIFICATION_DATA * PCWDF_DEVICE_PNP_NOTIFICATION_DATA
Definition: wdfdevice.h:683
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes
Definition: wdfdevice.h:3823
_In_ PWDFDEVICE_INIT _In_ BOOLEAN IsPowerPolicyOwner
Definition: wdfdevice.h:2972
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFKEY * Key
Definition: wdfdevice.h:2669
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY * PropertyMemory
Definition: wdfdevice.h:3826
_In_ PWDFDEVICE_INIT _In_ PWDF_PNPPOWER_EVENT_CALLBACKS PnpPowerEventCallbacks
Definition: wdfdevice.h:2914
_In_ UCHAR _In_ UCHAR _In_ ULONG _In_ WDFCONTEXT DriverContext
Definition: wdfdevice.h:1709
_In_ WDFDEVICE _Out_ PWDF_DEVICE_STATE DeviceState
Definition: wdfdevice.h:2005
_WDF_POWER_DEVICE_STATE
Definition: wdfdevice.h:421
@ WdfPowerDevicePrepareForHibernation
Definition: wdfdevice.h:428
@ WdfPowerDeviceD3Final
Definition: wdfdevice.h:427
@ WdfPowerDeviceD1
Definition: wdfdevice.h:424
@ WdfPowerDeviceInvalid
Definition: wdfdevice.h:422
@ WdfPowerDeviceD2
Definition: wdfdevice.h:425
@ WdfPowerDeviceMaximum
Definition: wdfdevice.h:429
@ WdfPowerDeviceD0
Definition: wdfdevice.h:423
@ WdfPowerDeviceD3
Definition: wdfdevice.h:426
_Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFDEVICEWDMDISPATCHPREPROCESSEDIRP)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
Definition: wdfdevice.h:2154
struct _WDF_POWER_POLICY_EVENT_CALLBACKS WDF_POWER_POLICY_EVENT_CALLBACKS
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
Definition: wdfdevice.h:3782
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfdevice.h:2887
enum _WDF_POWER_POLICY_IDLE_TIMEOUT_CONSTANTS WDF_POWER_POLICY_IDLE_TIMEOUT_CONSTANTS
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4071
EVT_WDFDEVICE_WDM_PRE_PO_FX_UNREGISTER_DEVICE * PFN_WDFDEVICE_WDM_PRE_PO_FX_UNREGISTER_DEVICE
Definition: wdfdevice.h:1764
_In_ UCHAR _In_ UCHAR _In_ ULONG _In_ WDFCONTEXT _Inout_ PIRP _In_ WDFCONTEXT DispatchContext
Definition: wdfdevice.h:1714
struct _WDF_PNPPOWER_EVENT_CALLBACKS WDF_PNPPOWER_EVENT_CALLBACKS
enum _WDF_SPECIAL_FILE_TYPE WDF_SPECIAL_FILE_TYPE
_Must_inspect_result_ _In_ WDFDEVICE _In_ CONST GUID _In_opt_ PCUNICODE_STRING ReferenceString
Definition: wdfdevice.h:3636
struct _WDF_DEVICE_PNP_NOTIFICATION_DATA WDF_DEVICE_PNP_NOTIFICATION_DATA
WDF_EXTERN_C_START enum _WDF_DEVICE_STATE_FLAGS WDF_DEVICE_STATE_FLAGS
EVT_WDFDEVICE_WDM_IRP_DISPATCH * PFN_WDFDEVICE_WDM_IRP_DISPATCH
Definition: wdfdevice.h:1716
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2664
FORCEINLINE ULONG WdfDevStateNormalize(_In_ ULONG State)
Definition: wdfdevice.h:1225
struct _WDF_PNPPOWER_EVENT_CALLBACKS * PWDF_PNPPOWER_EVENT_CALLBACKS
_In_ PWDFDEVICE_INIT _In_ PFN_WDF_IO_IN_CALLER_CONTEXT EvtIoInCallerContext
Definition: wdfdevice.h:3511
_In_ WDFDEVICE _In_ CONST GUID _In_opt_ PCUNICODE_STRING _In_ BOOLEAN IsInterfaceEnabled
Definition: wdfdevice.h:3672
_In_ WDFDEVICE _In_ ULONG AlignmentRequirement
Definition: wdfdevice.h:2860
enum _WDF_STATE_NOTIFICATION_TYPE WDF_STATE_NOTIFICATION_TYPE
_In_ PWDFDEVICE_INIT _In_ PWDF_OBJECT_ATTRIBUTES RequestAttributes
Definition: wdfdevice.h:3437
#define WDF_EXTERN_C_END
Definition: wdfdevice.h:39
FORCEINLINE BOOLEAN WdfDevStateIsNP(_In_ ULONG State)
Definition: wdfdevice.h:1235
_WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE
Definition: wdfdevice.h:473
@ WdfReleaseHardwareOrderOnFailureEarly
Definition: wdfdevice.h:475
@ WdfReleaseHardwareOrderOnFailureAfterDescendants
Definition: wdfdevice.h:476
@ WdfReleaseHardwareOrderOnFailureInvalid
Definition: wdfdevice.h:474
_WDF_DISPATCH_IRP_TO_IO_QUEUE_FLAGS
Definition: wdfdevice.h:434
@ WDF_DISPATCH_IRP_TO_IO_QUEUE_NO_FLAGS
Definition: wdfdevice.h:435
@ WDF_DISPATCH_IRP_TO_IO_QUEUE_PREPROCESSED_IRP
Definition: wdfdevice.h:437
@ WDF_DISPATCH_IRP_TO_IO_QUEUE_INVOKE_INCALLERCTX_CALLBACK
Definition: wdfdevice.h:436
enum _WDF_POWER_DEVICE_STATE WDF_POWER_DEVICE_STATE
EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND * PFN_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND
Definition: wdfdevice.h:960
struct _WDF_POWER_FRAMEWORK_SETTINGS WDF_POWER_FRAMEWORK_SETTINGS
_In_ WDFCMRESLIST _In_ WDFCMRESLIST ResourcesTranslated
Definition: wdfdevice.h:891
_In_ WDFDEVICE Device
Definition: wdfdevice.h:2002
EVT_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION * PFN_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION
Definition: wdfdevice.h:784
_Must_inspect_result_ _In_ WDFDEVICE _In_ PDEVICE_OBJECT PhysicalDevice
Definition: wdfdevice.h:2329
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG DeviceInstanceKeyType
Definition: wdfdevice.h:2662
enum _WDF_DEVICE_PNP_STATE * PWDF_DEVICE_PNP_STATE
enum _WDF_REQUEST_TYPE WDF_REQUEST_TYPE
_In_ WDF_SPECIAL_FILE_TYPE _In_ BOOLEAN IsInNotificationPath
Definition: wdfdevice.h:1027
EVT_WDF_DEVICE_USAGE_NOTIFICATION_EX * PFN_WDF_DEVICE_USAGE_NOTIFICATION_EX
Definition: wdfdevice.h:1046
enum _WDF_POWER_POLICY_S0_IDLE_USER_CONTROL WDF_POWER_POLICY_S0_IDLE_USER_CONTROL
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3821
EVT_WDF_DEVICE_PREPARE_HARDWARE * PFN_WDF_DEVICE_PREPARE_HARDWARE
Definition: wdfdevice.h:893
FORCEINLINE VOID WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT(_Out_ PWDF_DEVICE_POWER_POLICY_IDLE_SETTINGS Settings, _In_ WDF_POWER_POLICY_S0_IDLE_CAPABILITIES IdleCaps)
Definition: wdfdevice.h:1349
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING SDDLString
Definition: wdfdevice.h:3312
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_PNP_STATE PnpState
Definition: wdfdevice.h:3001
_In_ POHANDLE PoHandle
Definition: wdfdevice.h:1747
enum _WDF_DEVICE_POWER_STATE WDF_DEVICE_POWER_STATE
EVT_WDF_DEVICE_ARM_WAKE_FROM_SX * PFN_WDF_DEVICE_ARM_WAKE_FROM_SX
Definition: wdfdevice.h:1087
enum _WDF_FILEOBJECT_CLASS WDF_FILEOBJECT_CLASS
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_PNP_STATE _In_ PFN_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION _In_ ULONG CallbackTypes
Definition: wdfdevice.h:3006
_WDF_POWER_POLICY_IDLE_TIMEOUT_CONSTANTS
Definition: wdfdevice.h:411
@ IdleTimeoutDefaultConstant
Definition: wdfdevice.h:412
EVT_WDF_DEVICE_DISARM_WAKE_FROM_S0 * PFN_WDF_DEVICE_DISARM_WAKE_FROM_S0
Definition: wdfdevice.h:1117
_WDF_STATE_NOTIFICATION_TYPE
Definition: wdfdevice.h:390
@ StateNotificationInvalid
Definition: wdfdevice.h:391
@ StateNotificationEnterState
Definition: wdfdevice.h:392
@ StateNotificationAllStates
Definition: wdfdevice.h:395
@ StateNotificationPostProcessState
Definition: wdfdevice.h:393
@ StateNotificationLeaveState
Definition: wdfdevice.h:394
enum _WDF_DISPATCH_IRP_TO_IO_QUEUE_FLAGS WDF_DISPATCH_IRP_TO_IO_QUEUE_FLAGS
_In_ WDF_SPECIAL_FILE_TYPE NotificationType
Definition: wdfdevice.h:1024
_In_ PWDFDEVICE_INIT _In_ DEVICE_TYPE DeviceType
Definition: wdfdevice.h:3251
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PFN_WDFDEVICE_WDM_IRP_PREPROCESS EvtDeviceWdmIrpPreprocess
Definition: wdfdevice.h:3466
EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 * PFN_WDF_DEVICE_ARM_WAKE_FROM_S0
Definition: wdfdevice.h:1074
struct _WDF_DEVICE_STATE WDF_DEVICE_STATE
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_POLICY_STATE PowerPolicyState
Definition: wdfdevice.h:3079
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_POWER_POLICY_IDLE_SETTINGS Settings
Definition: wdfdevice.h:2601
_WDF_DEVICE_FAILED_ACTION
Definition: wdfdevice.h:467
@ WdfDeviceFailedNoRestart
Definition: wdfdevice.h:470
@ WdfDeviceFailedAttemptRestart
Definition: wdfdevice.h:469
@ WdfDeviceFailedUndefined
Definition: wdfdevice.h:468
enum _WDF_DEVICE_IO_TYPE * PWDF_DEVICE_IO_TYPE
EVT_WDF_DEVICE_WAKE_FROM_SX_TRIGGERED * PFN_WDF_DEVICE_WAKE_FROM_SX_TRIGGERED
Definition: wdfdevice.h:1156
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE _In_ ULONG Flags
Definition: wdfdevice.h:2234
EVT_WDF_DEVICE_D0_EXIT_PRE_INTERRUPTS_DISABLED * PFN_WDF_DEVICE_D0_EXIT_PRE_INTERRUPTS_DISABLED
Definition: wdfdevice.h:876
struct _WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS * PWDF_DEVICE_POWER_POLICY_WAKE_SETTINGS
struct _WDF_DEVICE_POWER_CAPABILITIES WDF_DEVICE_POWER_CAPABILITIES
struct _WDF_DEVICE_PNP_CAPABILITIES * PWDF_DEVICE_PNP_CAPABILITIES
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING MofResourceName
Definition: wdfdevice.h:2470
struct _WDF_FILEOBJECT_CONFIG WDF_FILEOBJECT_CONFIG
EVT_WDF_DEVICE_SELF_MANAGED_IO_INIT * PFN_WDF_DEVICE_SELF_MANAGED_IO_INIT
Definition: wdfdevice.h:947
EVT_WDFDEVICE_WDM_POST_PO_FX_REGISTER_DEVICE * PFN_WDFDEVICE_WDM_POST_PO_FX_REGISTER_DEVICE
Definition: wdfdevice.h:1749
_WDF_REMOVE_LOCK_OPTIONS_FLAGS
Definition: wdfdevice.h:1644
@ WDF_REMOVE_LOCK_OPTION_ACQUIRE_FOR_IO
Definition: wdfdevice.h:1645
EVT_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION * PFN_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION
Definition: wdfdevice.h:814
struct _WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS
struct _WDF_POWER_FRAMEWORK_SETTINGS * PWDF_POWER_FRAMEWORK_SETTINGS
_WDF_SPECIAL_FILE_TYPE
Definition: wdfdevice.h:440
@ WdfSpecialFileBoot
Definition: wdfdevice.h:445
@ WdfSpecialFileMax
Definition: wdfdevice.h:446
@ WdfSpecialFileHibernation
Definition: wdfdevice.h:443
@ WdfSpecialFileUndefined
Definition: wdfdevice.h:441
@ WdfSpecialFileDump
Definition: wdfdevice.h:444
@ WdfSpecialFilePaging
Definition: wdfdevice.h:442
enum _WDF_POWER_DEVICE_STATE * PWDF_POWER_DEVICE_STATE
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PFN_WDFDEVICE_WDM_IRP_PREPROCESS _In_ UCHAR _In_opt_ PUCHAR _In_ ULONG NumMinorFunctions
Definition: wdfdevice.h:3474
struct _WDF_FILEOBJECT_CONFIG * PWDF_FILEOBJECT_CONFIG
_In_ PWDFDEVICE_INIT _In_ PWDF_FILEOBJECT_CONFIG FileObjectConfig
Definition: wdfdevice.h:3403
#define WDF_EXTERN_C_START
Definition: wdfdevice.h:38
EVT_WDF_DEVICE_RELATIONS_QUERY * PFN_WDF_DEVICE_RELATIONS_QUERY
Definition: wdfdevice.h:1061
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
Definition: wdfdevice.h:4443
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_POLICY_STATE _In_ PFN_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION EvtDevicePowerPolicyStateChange
Definition: wdfdevice.h:3081
FORCEINLINE VOID WDF_DEVICE_PROPERTY_DATA_INIT(_Out_ PWDF_DEVICE_PROPERTY_DATA PropertyData, _In_ const DEVPROPKEY *PropertyKey)
Definition: wdfdevice.h:1941
struct _WDF_DEVICE_POWER_CAPABILITIES * PWDF_DEVICE_POWER_CAPABILITIES
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
Definition: wdfdevice.h:2231
struct _WDF_IO_TYPE_CONFIG * PWDF_IO_TYPE_CONFIG
struct _WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS * PWDF_DEVICE_POWER_POLICY_IDLE_SETTINGS
EVT_WDF_DEVICE_D0_ENTRY_POST_INTERRUPTS_ENABLED * PFN_WDF_DEVICE_D0_ENTRY_POST_INTERRUPTS_ENABLED
Definition: wdfdevice.h:846
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID _In_ LONG Line
Definition: wdfdevice.h:4073
FORCEINLINE VOID WDF_PNPPOWER_EVENT_CALLBACKS_INIT(_Out_ PWDF_PNPPOWER_EVENT_CALLBACKS Callbacks)
Definition: wdfdevice.h:1214
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN WaitForD0
Definition: wdfdevice.h:4012
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING SymbolicLinkName
Definition: wdfdevice.h:3745
_In_ BOOLEAN _In_ BOOLEAN ChildrenArmedForWake
Definition: wdfdevice.h:1102
EVT_WDF_DEVICE_FILE_CREATE * PFN_WDF_DEVICE_FILE_CREATE
Definition: wdfdevice.h:552
_In_ WDFDEVICE _In_ WDF_SPECIAL_FILE_TYPE FileType
Definition: wdfdevice.h:2747
#define IdleTimeoutDefaultValue
Definition: wdfdevice.h:816
EVT_WDF_DEVICE_ARM_WAKE_FROM_SX_WITH_REASON * PFN_WDF_DEVICE_ARM_WAKE_FROM_SX_WITH_REASON
Definition: wdfdevice.h:1104
_In_ WDFDEVICE _In_ WDF_DEVICE_FAILED_ACTION FailedAction
Definition: wdfdevice.h:3981
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3540
struct _WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS
enum _WDF_POWER_POLICY_IDLE_TIMEOUT_TYPE WDF_POWER_POLICY_IDLE_TIMEOUT_TYPE
EVT_WDF_DEVICE_SELF_MANAGED_IO_RESTART * PFN_WDF_DEVICE_SELF_MANAGED_IO_RESTART
Definition: wdfdevice.h:973
struct _WDF_IO_TYPE_CONFIG WDF_IO_TYPE_CONFIG
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4539
_Inout_ PIRP Irp
Definition: wdfdevice.h:1689
_In_ WDF_POWER_DEVICE_STATE TargetState
Definition: wdfdevice.h:859
_WDF_REQUEST_TYPE
Definition: wdfdevice.h:502
@ WdfRequestTypeDeviceChange
Definition: wdfdevice.h:527
@ WdfRequestTypeDeviceControlInternal
Definition: wdfdevice.h:518
@ WdfRequestTypeCreateNamedPipe
Definition: wdfdevice.h:504
@ WdfRequestTypeSetInformation
Definition: wdfdevice.h:509
@ WdfRequestTypeCleanup
Definition: wdfdevice.h:521
@ WdfRequestTypePnp
Definition: wdfdevice.h:530
@ WdfRequestTypeFlushBuffers
Definition: wdfdevice.h:512
@ WdfRequestTypeMax
Definition: wdfdevice.h:534
@ WdfRequestTypePower
Definition: wdfdevice.h:525
@ WdfRequestTypeShutdown
Definition: wdfdevice.h:519
@ WdfRequestTypeOther
Definition: wdfdevice.h:531
@ WdfRequestTypeQuerySecurity
Definition: wdfdevice.h:523
@ WdfRequestTypeCreate
Definition: wdfdevice.h:503
@ WdfRequestTypeSetVolumeInformation
Definition: wdfdevice.h:514
@ WdfRequestTypeSetEA
Definition: wdfdevice.h:511
@ WdfRequestTypeFileSystemControl
Definition: wdfdevice.h:516
@ WdfRequestTypeQueryVolumeInformation
Definition: wdfdevice.h:513
@ WdfRequestTypeUsb
Definition: wdfdevice.h:532
@ WdfRequestTypeClose
Definition: wdfdevice.h:505
@ WdfRequestTypeSystemControl
Definition: wdfdevice.h:526
@ WdfRequestTypeSetQuota
Definition: wdfdevice.h:529
@ WdfRequestTypeLockControl
Definition: wdfdevice.h:520
@ WdfRequestTypeCreateMailSlot
Definition: wdfdevice.h:522
@ WdfRequestTypeSetSecurity
Definition: wdfdevice.h:524
@ WdfRequestTypeWrite
Definition: wdfdevice.h:507
@ WdfRequestTypeQueryEA
Definition: wdfdevice.h:510
@ WdfRequestTypeQueryQuota
Definition: wdfdevice.h:528
@ WdfRequestTypeQueryInformation
Definition: wdfdevice.h:508
@ WdfRequestTypeRead
Definition: wdfdevice.h:506
@ WdfRequestTypeDeviceControl
Definition: wdfdevice.h:517
@ WdfRequestTypeDirectoryControl
Definition: wdfdevice.h:515
@ WdfRequestTypeNoFormat
Definition: wdfdevice.h:533
enum _WDF_DEVICE_POWER_POLICY_STATE WDF_DEVICE_POWER_POLICY_STATE
_Must_inspect_result_ _In_ WDFDEVICE _In_ NTSTATUS WaitWakeStatus
Definition: wdfdevice.h:3951
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
Definition: wdfdevice.h:3775
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG _In_opt_ PVOID Data
Definition: wdfdevice.h:4542
_In_ BOOLEAN DeviceWakeEnabled
Definition: wdfdevice.h:1099
EVT_WDF_DEVICE_D0_ENTRY * PFN_WDF_DEVICE_D0_ENTRY
Definition: wdfdevice.h:831
_Must_inspect_result_ _In_ WDFDEVICE _In_ PDEVICE_OBJECT DependentDevice
Definition: wdfdevice.h:2269
_In_ PCWDF_DEVICE_PNP_NOTIFICATION_DATA NotificationData
Definition: wdfdevice.h:782
enum _WDF_FILEOBJECT_CLASS * PWDF_FILEOBJECT_CLASS
_WDF_POWER_POLICY_S0_IDLE_USER_CONTROL
Definition: wdfdevice.h:405
@ IdleDoNotAllowUserControl
Definition: wdfdevice.h:407
@ IdleAllowUserControl
Definition: wdfdevice.h:408
@ IdleUserControlInvalid
Definition: wdfdevice.h:406
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
Definition: wdfdevice.h:4445
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PFN_WDFDEVICE_WDM_IRP_PREPROCESS _In_ UCHAR _In_opt_ PUCHAR MinorFunctions
Definition: wdfdevice.h:3471
_In_ PWDFDEVICE_INIT _In_ PWDF_IO_TYPE_CONFIG IoTypeConfig
Definition: wdfdevice.h:4400
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG _Out_ PDEVPROPTYPE Type
Definition: wdfdevice.h:4448
_In_ UCHAR _In_ UCHAR _In_ ULONG Code
Definition: wdfdevice.h:1707
EVT_WDF_DEVICE_SELF_MANAGED_IO_FLUSH * PFN_WDF_DEVICE_SELF_MANAGED_IO_FLUSH
Definition: wdfdevice.h:934
EVT_WDF_DEVICE_WAKE_FROM_S0_TRIGGERED * PFN_WDF_DEVICE_WAKE_FROM_S0_TRIGGERED
Definition: wdfdevice.h:1143
EVT_WDF_IO_IN_CALLER_CONTEXT * PFN_WDF_IO_IN_CALLER_CONTEXT
Definition: wdfdevice.h:1734
EVT_WDF_DEVICE_DISARM_WAKE_FROM_SX * PFN_WDF_DEVICE_DISARM_WAKE_FROM_SX
Definition: wdfdevice.h:1130
struct _WDF_REMOVE_LOCK_OPTIONS * PWDF_REMOVE_LOCK_OPTIONS
_Must_inspect_result_ _Inout_ PWDFDEVICE_INIT _In_opt_ PWDF_OBJECT_ATTRIBUTES DeviceAttributes
Definition: wdfdevice.h:3569
EVT_WDF_FILE_CLOSE * PFN_WDF_FILE_CLOSE
Definition: wdfdevice.h:565
_In_ WDFDEVICE _In_ PWDF_DEVICE_PNP_CAPABILITIES PnpCapabilities
Definition: wdfdevice.h:3863
_In_ UCHAR MajorFunction
Definition: wdfdevice.h:1703
struct _WDF_DEVICE_STATE * PWDF_DEVICE_STATE
enum _WDF_POWER_POLICY_SX_WAKE_USER_CONTROL WDF_POWER_POLICY_SX_WAKE_USER_CONTROL
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PFN_WDFDEVICE_WDM_IRP_PREPROCESS _In_ UCHAR _When_(NumMinorFunctions > 0, _In_reads_bytes_(NumMinorFunctions)) _When_(NumMinorFunctions
Definition: wdfdevice.h:3469
enum _WDF_DEVICE_IO_TYPE WDF_DEVICE_IO_TYPE
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
Definition: wdfdevice.h:2705
enum _WDF_POWER_POLICY_S0_IDLE_CAPABILITIES WDF_POWER_POLICY_S0_IDLE_CAPABILITIES
struct _WDF_REMOVE_LOCK_OPTIONS WDF_REMOVE_LOCK_OPTIONS
FORCEINLINE VOID WDF_DEVICE_POWER_CAPABILITIES_INIT(_Out_ PWDF_DEVICE_POWER_CAPABILITIES Caps)
Definition: wdfdevice.h:1612
_In_ WDFCMRESLIST ResourcesRaw
Definition: wdfdevice.h:888
_Must_inspect_result_ _In_ WDFDEVICE _In_ CONST GUID * InterfaceClassGUID
Definition: wdfdevice.h:3633
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ WDFDRIVER Driver
Definition: wdfdevice.h:4272
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3777
EVT_WDFDEVICE_WDM_IRP_PREPROCESS * PFN_WDFDEVICE_WDM_IRP_PREPROCESS
Definition: wdfdevice.h:1691
struct _WDF_DEVICE_PROPERTY_DATA WDF_DEVICE_PROPERTY_DATA
enum _WDF_DEVICE_PNP_STATE WDF_DEVICE_PNP_STATE
_In_ WDFDEVICE _In_ PWDF_DEVICE_POWER_CAPABILITIES PowerCapabilities
Definition: wdfdevice.h:3892
EVT_WDF_FILE_CLEANUP * PFN_WDF_FILE_CLEANUP
Definition: wdfdevice.h:578
struct _WDF_POWER_POLICY_EVENT_CALLBACKS * PWDF_POWER_POLICY_EVENT_CALLBACKS
_In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_IO_TYPE IoType
Definition: wdfdevice.h:3147
_WDF_POWER_POLICY_IDLE_TIMEOUT_TYPE
Definition: wdfdevice.h:1242
@ SystemManagedIdleTimeout
Definition: wdfdevice.h:1244
@ SystemManagedIdleTimeoutWithHint
Definition: wdfdevice.h:1245
@ DriverManagedIdleTimeout
Definition: wdfdevice.h:1243
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_writes_bytes_all_(BufferLength) PVOID PropertyBuffer
Definition: wdfdevice.h:3778
EVT_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION * PFN_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION
Definition: wdfdevice.h:799
struct _WDF_DEVICE_POWER_NOTIFICATION_DATA WDF_DEVICE_POWER_NOTIFICATION_DATA
_WDF_FILEOBJECT_CLASS
Definition: wdfdevice.h:458
@ WdfFileObjectWdfCanUseFsContext
Definition: wdfdevice.h:461
@ WdfFileObjectInvalid
Definition: wdfdevice.h:459
@ WdfFileObjectNotRequired
Definition: wdfdevice.h:460
@ WdfFileObjectWdfCanUseFsContext2
Definition: wdfdevice.h:462
@ WdfFileObjectWdfCannotUseFsContexts
Definition: wdfdevice.h:463
@ WdfFileObjectCanBeOptional
Definition: wdfdevice.h:464
EVT_WDF_DEVICE_USAGE_NOTIFICATION * PFN_WDF_DEVICE_USAGE_NOTIFICATION
Definition: wdfdevice.h:1029
EVT_WDF_DEVICE_RELEASE_HARDWARE * PFN_WDF_DEVICE_RELEASE_HARDWARE
Definition: wdfdevice.h:908
_WDF_DEVICE_IO_TYPE
Definition: wdfdevice.h:449
@ WdfDeviceIoNeither
Definition: wdfdevice.h:451
@ WdfDeviceIoUndefined
Definition: wdfdevice.h:450
@ WdfDeviceIoBuffered
Definition: wdfdevice.h:452
@ WdfDeviceIoMaximum
Definition: wdfdevice.h:455
@ WdfDeviceIoBufferedOrDirect
Definition: wdfdevice.h:454
@ WdfDeviceIoDirect
Definition: wdfdevice.h:453
_In_ PWDFDEVICE_INIT _In_ PWDF_POWER_POLICY_EVENT_CALLBACKS PowerPolicyEventCallbacks
Definition: wdfdevice.h:2943
_In_ PWDFDEVICE_INIT _In_ CONST GUID * DeviceClassGuid
Definition: wdfdevice.h:3342
FORCEINLINE VOID WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS_INIT(_Out_ PWDF_DEVICE_POWER_POLICY_WAKE_SETTINGS Settings)
Definition: wdfdevice.h:1437
FORCEINLINE VOID WDF_POWER_POLICY_EVENT_CALLBACKS_INIT(_Out_ PWDF_POWER_POLICY_EVENT_CALLBACKS Callbacks)
Definition: wdfdevice.h:1203
EVT_WDF_DEVICE_SELF_MANAGED_IO_CLEANUP * PFN_WDF_DEVICE_SELF_MANAGED_IO_CLEANUP
Definition: wdfdevice.h:921
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2439
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID _In_ LONG _In_z_ PCHAR File
Definition: wdfdevice.h:4076
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFQUEUE _In_ _Strict_type_match_ WDF_REQUEST_TYPE RequestType
Definition: wdfdevice.h:4239
EVT_WDF_DEVICE_QUERY_REMOVE * PFN_WDF_DEVICE_QUERY_REMOVE
Definition: wdfdevice.h:999
enum _WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
Definition: wdfdevice.h:3040
EVT_WDF_DEVICE_D0_EXIT * PFN_WDF_DEVICE_D0_EXIT
Definition: wdfdevice.h:861
_In_ WDFDEVICE _In_ PPNP_BUS_INFORMATION BusInformation
Definition: wdfdevice.h:3921
_In_ WDFDEVICE _In_ WDF_SPECIAL_FILE_TYPE _In_ BOOLEAN FileTypeIsSupported
Definition: wdfdevice.h:2750
enum _WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE * PWDF_RELEASE_HARDWARE_ORDER_ON_FAILURE
struct _WDF_DEVICE_PROPERTY_DATA * PWDF_DEVICE_PROPERTY_DATA
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ WDFDRIVER _In_ UCHAR _In_ PFN_WDFDEVICE_WDM_IRP_DISPATCH EvtDeviceWdmIrpDisptach
Definition: wdfdevice.h:4276
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
Definition: wdfdevice.h:3281
enum _WDF_SPECIAL_FILE_TYPE * PWDF_SPECIAL_FILE_TYPE
_In_ WDFDEVICE _In_ BOOLEAN Stoppable
Definition: wdfdevice.h:3604
enum _WDF_DEVICE_FAILED_ACTION WDF_DEVICE_FAILED_ACTION
_WDF_DEVICE_POWER_POLICY_STATE
Definition: wdfdevice.h:230
@ WdfDevStatePwrPolGotoD0InD0
Definition: wdfdevice.h:347
@ WdfDevStatePwrPolSleepingWakePowerDownFailed
Definition: wdfdevice.h:260
@ WdfDevStatePwrPolStopping
Definition: wdfdevice.h:323
@ WdfDevStatePwrPolCancelingWakeForSystemSleepWakeCanceled
Definition: wdfdevice.h:309
@ WdfDevStatePwrPolWaitingArmed
Definition: wdfdevice.h:294
@ WdfDevStatePwrPolStartingFailed
Definition: wdfdevice.h:235
@ WdfDevStatePwrPolStoppingSendStatus
Definition: wdfdevice.h:325
@ WdfDevStatePwrPolTimerExpiredWakeCompletedPowerUp
Definition: wdfdevice.h:292
@ WdfDevStatePwrPolRestartingFailed
Definition: wdfdevice.h:376
@ WdfDevStatePwrPolSystemSleepFromDeviceWaitingUnarmed
Definition: wdfdevice.h:244
@ WdfDevStatePwrPolStartedWakeCapableWaitForIdleTimeout
Definition: wdfdevice.h:337
@ WdfDevStatePwrPolStoppingCancelTimer
Definition: wdfdevice.h:326
@ WdfDevStatePwrPolStoppingPoweringDown
Definition: wdfdevice.h:355
@ WdfDevStatePwrPolTimerExpiredWakeCapableWakeInterruptArrived
Definition: wdfdevice.h:382
@ WdfDevStatePwrPolWaitingArmedWakeInterruptFired
Definition: wdfdevice.h:379
@ WdfDevStatePwrPolWaitingUnarmed
Definition: wdfdevice.h:240
@ WdfDevStatePwrPolTimerExpiredNoWakeCompletePowerDown
Definition: wdfdevice.h:239
@ WdfDevStatePwrPolStoppingResetDevice
Definition: wdfdevice.h:315
@ WdfDevStatePwrPolStoppingDisarmWake
Definition: wdfdevice.h:320
@ WdfDevStatePwrPolWaitingArmedIoPresentCancelUsbSS
Definition: wdfdevice.h:359
@ WdfDevStatePwrPolSleepingNoWakeCompletePowerDown
Definition: wdfdevice.h:272
@ WdfDevStatePwrPolGotoDx
Definition: wdfdevice.h:343
@ WdfDevStatePwrPolTimerExpiredWakeCapableCancelWake
Definition: wdfdevice.h:287
@ WdfDevStatePwrPolS0NoWakeCompletePowerUp
Definition: wdfdevice.h:243
@ WdfDevStatePwrPolSleepingSendWake
Definition: wdfdevice.h:275
@ WdfDevStatePwrPolSystemSleepNeedWake
Definition: wdfdevice.h:245
@ WdfDevStatePwrPolSleepingWakeWakeArrived
Definition: wdfdevice.h:249
@ WdfDevStatePwrPolWakeCapableDeviceIdle
Definition: wdfdevice.h:369
@ WdfDevStatePwrPolTimerExpiredNoWakePoweredDownDisableIdleTimer
Definition: wdfdevice.h:352
@ WdfDevStatePwrPolS0NoWakePowerUp
Definition: wdfdevice.h:242
@ WdfDevStatePwrPolStoppingCancelUsbSS
Definition: wdfdevice.h:328
@ WdfDevStatePwrPolIoPresentArmedWakeCanceled
Definition: wdfdevice.h:297
@ WdfDevStatePwrPolTimerExpiredNoWakeUndoPowerDown
Definition: wdfdevice.h:368
@ WdfDevStatePwrPolSleepingNoWakeDxRequestFailed
Definition: wdfdevice.h:273
@ WdfDevStatePwrPolWaitingArmedWakeInterruptFiredDuringPowerDown
Definition: wdfdevice.h:384
@ WdfDevStatePwrPolDeviceIdleSleeping
Definition: wdfdevice.h:366
@ WdfDevStatePwrPolRemoved
Definition: wdfdevice.h:374
@ WdfDevStatePwrPolTimerExpiredWakeCapablePowerDown
Definition: wdfdevice.h:283
@ WdfDevStatePwrPolSystemWakeQueryIdle
Definition: wdfdevice.h:280
@ WdfDevStatePwrPolStoppingPoweringUp
Definition: wdfdevice.h:354
@ WdfDevStatePwrPolWaitingUnarmedQueryIdle
Definition: wdfdevice.h:241
@ WdfDevStatePwrPolSystemWakeDeviceWakeDisarmNP
Definition: wdfdevice.h:265
@ WdfDevStatePwrPolDeviceIdleReturnToActive
Definition: wdfdevice.h:365
@ WdfDevStatePwrPolTimerExpiredWakeCompletedPowerDown
Definition: wdfdevice.h:291
@ WdfDevStatePwrPolSleepingWakePowerDownFailedWakeCanceled
Definition: wdfdevice.h:261
@ WdfDevStatePwrPolTimerExpiredWakeCapablePowerDownNotProcessed
Definition: wdfdevice.h:350
@ WdfDevStatePwrPolCancelingWakeForSystemSleep
Definition: wdfdevice.h:308
@ WdfDevStatePwrPolWaitingArmedQueryIdle
Definition: wdfdevice.h:295
@ WdfDevStatePwrPolStoppingDisarmWakeWakeCanceled
Definition: wdfdevice.h:322
@ WdfDevStatePwrPolTimerExpiredWakeCapableWakeArrived
Definition: wdfdevice.h:286
@ WdfDevStatePwrPolStartingPoweredUpFailed
Definition: wdfdevice.h:377
@ WdfDevStatePwrPolStarted
Definition: wdfdevice.h:333
@ WdfDevStatePwrPolSystemWakeDeviceWakeTriggeredNP
Definition: wdfdevice.h:266
@ WdfDevStatePwrPolStartedWakeCapable
Definition: wdfdevice.h:281
@ WdfDevStatePwrPolStopped
Definition: wdfdevice.h:331
@ WdfDevStatePwrPolIdleCapableDeviceIdle
Definition: wdfdevice.h:364
@ WdfDevStatePwrPolTimerExpiredNoWakeReturnToActive
Definition: wdfdevice.h:378
@ WdfDevStatePwrPolStoppingCancelWake
Definition: wdfdevice.h:330
@ WdfDevStatePwrPolSleepingWakeWakeArrivedNP
Definition: wdfdevice.h:258
@ WdfDevStatePwrPolIoPresentArmed
Definition: wdfdevice.h:296
@ WdfDevStatePwrPolTimerExpiredWakeCapableUndoPowerDown
Definition: wdfdevice.h:371
@ WdfDevStatePwrPolStartedWakeCapableCancelTimerForSleep
Definition: wdfdevice.h:336
@ WdfDevStatePwrPolSleepingWakeRevertArmWake
Definition: wdfdevice.h:250
@ WdfDevStatePwrPolSystemWakeDeviceToD0
Definition: wdfdevice.h:278
@ WdfDevStatePwrPolNull
Definition: wdfdevice.h:385
@ WdfDevStatePwrPolTimerExpiredWakeSucceeded
Definition: wdfdevice.h:300
@ WdfDevStatePwrPolCheckPowerPageable
Definition: wdfdevice.h:248
@ WdfDevStatePwrPolSystemWakeDeviceWakeTriggeredS0
Definition: wdfdevice.h:256
@ WdfDevStatePwrPolSystemWakeDeviceWokeDisarm
Definition: wdfdevice.h:257
@ WdfDevStatePwrPolGotoD0
Definition: wdfdevice.h:346
@ WdfDevStatePwrPolWokeFromS0
Definition: wdfdevice.h:313
@ WdfDevStatePwrPolSystemWakeDeviceWakeCompletePowerUp
Definition: wdfdevice.h:269
@ WdfDevStatePwrPolStartedCancelTimer
Definition: wdfdevice.h:334
@ WdfDevStatePwrPolSleepingNoWakePowerDown
Definition: wdfdevice.h:271
@ WdfDevStatePwrPolSystemWakeDeviceWakeInterruptFired
Definition: wdfdevice.h:380
@ WdfDevStatePwrPolStartedIdleCapableWaitForIdleTimeout
Definition: wdfdevice.h:340
@ WdfDevStatePwrPolTimerExpiredWakeCapablePowerDownFailedWakeInterruptArrived
Definition: wdfdevice.h:383
@ WdfDevStatePwrPolStartedIdleCapable
Definition: wdfdevice.h:237
@ WdfDevStatePwrPolSystemWakeDeviceWakeEnabledWakeCanceledNP
Definition: wdfdevice.h:264
@ WdfDevStatePwrPolStartingDecideS0Wake
Definition: wdfdevice.h:236
@ WdfDevStatePwrPolSystemWakeDeviceToD0CompletePowerUp
Definition: wdfdevice.h:279
@ WdfDevStatePwrPolStartedWaitForIdleTimeout
Definition: wdfdevice.h:335
@ WdfDevStatePwrPolRestarting
Definition: wdfdevice.h:375
@ WdfDevStatePwrPolSystemWakeDeviceWakeInterruptFiredNP
Definition: wdfdevice.h:381
@ WdfDevStatePwrPolDeviceD0PowerRequestFailed
Definition: wdfdevice.h:341
@ WdfDevStatePwrPolStoppingD0
Definition: wdfdevice.h:318
@ WdfDevStatePwrPolDisarmingWakeForSystemSleepCompletePowerUp
Definition: wdfdevice.h:310
@ WdfDevStatePwrPolS0WakeCompletePowerUp
Definition: wdfdevice.h:299
@ WdfDevStatePwrPolSystemWakeDeviceWakeDisarm
Definition: wdfdevice.h:254
@ WdfDevStatePwrPolStoppingWaitForUsbSSCompletion
Definition: wdfdevice.h:329
@ WdfDevStatePwrPolFinal
Definition: wdfdevice.h:348
@ WdfDevStatePwrPolGotoDxInDx
Definition: wdfdevice.h:344
@ WdfDevStatePwrPolTimerExpiredWakeCapablePowerDownFailedCancelWake
Definition: wdfdevice.h:305
@ WdfDevStatePwrPolSystemWakeDeviceWakeEnabled
Definition: wdfdevice.h:252
@ WdfDevStatePwrPolStartingSucceeded
Definition: wdfdevice.h:234
@ WdfDevStatePwrPolWaitingArmedWakeFailedCancelUsbSS
Definition: wdfdevice.h:358
@ WdfDevStatePwrPolStartingPoweredUp
Definition: wdfdevice.h:363
@ WdfDevStatePwrPolSystemWakeDeviceWakeEnabledWakeCanceled
Definition: wdfdevice.h:253
@ WdfDevStatePwrPolStoppingResetDeviceCompletePowerUp
Definition: wdfdevice.h:316
@ WdfDevStatePwrPolPowerUpForSystemSleepFailed
Definition: wdfdevice.h:311
@ WdfDevStatePwrPolSystemAsleepNoWake
Definition: wdfdevice.h:276
@ WdfDevStatePwrPolStoppingWaitForIdleTimeout
Definition: wdfdevice.h:327
@ WdfDevStatePwrPolPowerUpForSystemSleepNotSeen
Definition: wdfdevice.h:356
@ WdfDevStatePwrPolTimerExpiredWakeCapableWakeFailed
Definition: wdfdevice.h:303
@ WdfDevStatePwrPolTimerExpiredWakeCapableUsbSS
Definition: wdfdevice.h:285
@ WdfDevStatePwrPolSleeping
Definition: wdfdevice.h:270
@ WdfDevStatePwrPolStartedWakeCapableSleepingUsbSS
Definition: wdfdevice.h:338
@ WdfDevStatePwrPolDeviceIdleStopping
Definition: wdfdevice.h:367
@ WdfDevStatePwrPolSystemWakeDeviceWakeTriggered
Definition: wdfdevice.h:255
@ WdfDevStatePwrPolTimerExpiredNoWake
Definition: wdfdevice.h:238
@ WdfDevStatePwrPolStoppingFailed
Definition: wdfdevice.h:324
@ WdfDevStatePwrPolCancelUsbSS
Definition: wdfdevice.h:332
@ WdfDevStatePwrPolStarting
Definition: wdfdevice.h:233
@ WdfDevStatePwrPolTimerExpiredWakeCompletedDisarm
Definition: wdfdevice.h:301
@ WdfDevStatePwrPolTimerExpiredWakeCapableCleanup
Definition: wdfdevice.h:289
@ WdfDevStatePwrPolTimerExpiredNoWakePowerDownNotProcessed
Definition: wdfdevice.h:351
@ WdfDevStatePwrPolStoppingD0CancelUsbSS
Definition: wdfdevice.h:362
@ WdfDevStatePwrPolDevicePowerRequestFailed
Definition: wdfdevice.h:342
@ WdfDevStatePwrPolSystemSleepNeedWakeCompletePowerUp
Definition: wdfdevice.h:246
@ WdfDevStatePwrPolWaitingArmedUsbSS
Definition: wdfdevice.h:293
@ WdfDevStatePwrPolSystemWakeDeviceWakeDisabled
Definition: wdfdevice.h:277
@ WdfDevStatePwrPolTimerExpiredDecideUsbSS
Definition: wdfdevice.h:282
@ WdfDevStatePwrPolSleepingWakePowerDown
Definition: wdfdevice.h:274
@ WdfDevStatePwrPolStoppingResetDeviceFailed
Definition: wdfdevice.h:317
@ WdfDevStatePwrPolTimerExpiredWakeCapableWakeCanceled
Definition: wdfdevice.h:288
@ WdfDevStatePwrPolTimerExpiredWakeCapableDxAllocFailed
Definition: wdfdevice.h:290
@ WdfDevStatePwrPolTimerExpiredWakeCapablePowerDownFailedUsbSS
Definition: wdfdevice.h:307
@ WdfDevStatePwrPolTimerExpiredWakeCapablePowerDownFailedWakeCanceled
Definition: wdfdevice.h:306
@ WdfDevStatePwrPolSystemWakeDeviceWakeTriggeredS0NP
Definition: wdfdevice.h:267
@ WdfDevStatePwrPolSystemAsleepWakeArmed
Definition: wdfdevice.h:251
@ WdfDevStatePwrPolCancelingUsbSSForSystemSleep
Definition: wdfdevice.h:361
@ WdfDevStatePwrPolStoppingDisarmWakeCancelWake
Definition: wdfdevice.h:321
@ WdfDevStatePwrPolStartedIdleCapableCancelTimerForSleep
Definition: wdfdevice.h:339
@ WdfDevStatePwrPolSleepingWakeRevertArmWakeNP
Definition: wdfdevice.h:259
@ WdfDevStatePwrPolSystemWakeDeviceWakeEnabledNP
Definition: wdfdevice.h:263
@ WdfDevStatePwrPolSystemWakeDeviceWokeDisarmNP
Definition: wdfdevice.h:268
@ WdfDevStatePwrPolInvalid
Definition: wdfdevice.h:231
@ WdfDevStatePwrPolStoppingD0Failed
Definition: wdfdevice.h:319
@ WdfDevStatePwrPolS0WakeDisarm
Definition: wdfdevice.h:298
@ WdfDevStatePwrPolWokeFromS0UsbSS
Definition: wdfdevice.h:312
@ WdfDevStatePwrPolWokeFromS0NotifyDriver
Definition: wdfdevice.h:314
@ WdfDevStatePwrPolSystemSleepPowerRequestFailed
Definition: wdfdevice.h:247
@ WdfDevStatePwrPolTimerExpiredWakeCapableSendWake
Definition: wdfdevice.h:284
@ WdfDevStatePwrPolSleepingPowerDownNotProcessed
Definition: wdfdevice.h:349
@ WdfDevStatePwrPolStoppedRemoving
Definition: wdfdevice.h:373
@ WdfDevStatePwrPolTimerExpiredWakeCapableWakeSucceeded
Definition: wdfdevice.h:302
@ WdfDevStatePwrPolObjectCreated
Definition: wdfdevice.h:232
@ WdfDevStatePwrPolWaitingArmedStoppingCancelUsbSS
Definition: wdfdevice.h:357
@ WdfDevStatePwrPolWaitingArmedWakeSucceededCancelUsbSS
Definition: wdfdevice.h:360
@ WdfDevStatePwrPolWakeCapableUsbSSCompleted
Definition: wdfdevice.h:370
@ WdfDevStatePwrPolSystemAsleepWakeArmedNP
Definition: wdfdevice.h:262
@ WdfDevStatePwrPolStoppingWaitingForImplicitPowerDown
Definition: wdfdevice.h:353
@ WdfDevStatePwrPolTimerExpiredWakeCompletedHardwareStarted
Definition: wdfdevice.h:372
@ WdfDevStatePwrPolWakeFailedUsbSS
Definition: wdfdevice.h:304
@ WdfDevStatePwrPolDx
Definition: wdfdevice.h:345
struct _WDF_DEVICE_PNP_CAPABILITIES WDF_DEVICE_PNP_CAPABILITIES
const WDF_DEVICE_POWER_NOTIFICATION_DATA * PCWDF_DEVICE_POWER_NOTIFICATION_DATA
Definition: wdfdevice.h:726
_In_ PWDFDEVICE_INIT _In_ ULONG _In_ BOOLEAN OrInValues
Definition: wdfdevice.h:3373
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE _In_ PFN_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION EvtDevicePowerStateChange
Definition: wdfdevice.h:3042
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_POWER_FRAMEWORK_SETTINGS PowerFrameworkSettings
Definition: wdfdevice.h:4341
enum _WDF_REMOVE_LOCK_OPTIONS_FLAGS WDF_REMOVE_LOCK_OPTIONS_FLAGS
_WDF_DEVICE_POWER_STATE
Definition: wdfdevice.h:128
@ WdfDevStatePowerStartingChild
Definition: wdfdevice.h:153
@ WdfDevStatePowerD0StartingDmaEnable
Definition: wdfdevice.h:147
@ WdfDevStatePowerDxStoppedArmForWakeNP
Definition: wdfdevice.h:209
@ WdfDevStatePowerDxStoppedDecideDxState
Definition: wdfdevice.h:207
@ WdfDevStatePowerDxStoppedDisarmWakeNP
Definition: wdfdevice.h:201
@ WdfDevStatePowerWakingConnectInterruptFailed
Definition: wdfdevice.h:185
@ WdfDevStatePowerNotifyingD0ExitToWakeInterruptsNP
Definition: wdfdevice.h:221
@ WdfDevStatePowerInitialPowerUpFailedDerefParent
Definition: wdfdevice.h:198
@ WdfDevStatePowerWakingDmaEnableFailedNP
Definition: wdfdevice.h:190
@ WdfDevStatePowerCheckParentStateNP
Definition: wdfdevice.h:134
@ WdfDevStatePowerDxDisablingWakeAtBusNP
Definition: wdfdevice.h:155
@ WdfDevStatePowerUpFailed
Definition: wdfdevice.h:213
@ WdfDevStatePowerD0StartingStartSelfManagedIo
Definition: wdfdevice.h:148
@ WdfDevStatePowerGotoDxIoStoppedArmedForWakeNP
Definition: wdfdevice.h:166
@ WdfDevStatePowerStartSelfManagedIoFailed
Definition: wdfdevice.h:175
@ WdfDevStatePowerCheckDeviceTypeNP
Definition: wdfdevice.h:132
@ WdfDevStatePowerGotoDxStopped
Definition: wdfdevice.h:203
@ WdfDevStatePowerWakePendingNP
Definition: wdfdevice.h:180
@ WdfDevStatePowerD0BusWakeOwner
Definition: wdfdevice.h:139
@ WdfDevStatePowerDxStopped
Definition: wdfdevice.h:204
@ WdfDevStatePowerGotoDxNPFailed
Definition: wdfdevice.h:160
@ WdfDevStatePowerD0BusWakeOwnerNP
Definition: wdfdevice.h:140
@ WdfDevStatePowerGotoDxStoppedDisableInterruptNP
Definition: wdfdevice.h:202
@ WdfDevStatePowerNotifyingD0ExitToWakeInterrupts
Definition: wdfdevice.h:219
@ WdfDevStatePowerD0ArmedForWake
Definition: wdfdevice.h:141
@ WdfDevStatePowerWakingDmaEnable
Definition: wdfdevice.h:187
@ WdfDevStatePowerWaitForParentArmedForWake
Definition: wdfdevice.h:171
@ WdfDevStatePowerD0DisarmingWakeAtBus
Definition: wdfdevice.h:143
@ WdfDevStatePowerDxNP
Definition: wdfdevice.h:162
@ WdfDevStatePowerD0Starting
Definition: wdfdevice.h:145
@ WdfDevStatePowerGotoDxFailed
Definition: wdfdevice.h:215
@ WdfDevStatePowerWakingConnectInterruptFailedNP
Definition: wdfdevice.h:186
@ WdfDevStatePowerCheckDeviceType
Definition: wdfdevice.h:131
@ WdfDevStatePowerD0StartingConnectInterrupt
Definition: wdfdevice.h:146
@ WdfDevStatePowerStartSelfManagedIoFailedNP
Definition: wdfdevice.h:176
@ WdfDevStatePowerUpFailedNP
Definition: wdfdevice.h:217
@ WdfDevStatePowerWaitForParentNP
Definition: wdfdevice.h:178
@ WdfDevStatePowerWaking
Definition: wdfdevice.h:181
@ WdfDevStatePowerWaitForParent
Definition: wdfdevice.h:177
@ WdfDevStatePowerGotoImplicitD3DisarmWakeAtBus
Definition: wdfdevice.h:212
@ WdfDevStatePowerEnablingWakeAtBus
Definition: wdfdevice.h:135
@ WdfDevStatePowerD0
Definition: wdfdevice.h:137
@ WdfDevStatePowerReportPowerUpFailedDerefParent
Definition: wdfdevice.h:191
@ WdfDevStatePowerDxDisablingWakeAtBus
Definition: wdfdevice.h:154
@ WdfDevStatePowerFinalPowerDownFailed
Definition: wdfdevice.h:210
@ WdfDevStatePowerDxArmedForWake
Definition: wdfdevice.h:167
@ WdfDevStatePowerReportPowerUpFailed
Definition: wdfdevice.h:192
@ WdfDevStatePowerGotoDxArmedForWakeNP
Definition: wdfdevice.h:164
@ WdfDevStatePowerCheckParentStateArmedForWake
Definition: wdfdevice.h:169
@ WdfDevStatePowerGotoDxIoStoppedArmedForWake
Definition: wdfdevice.h:165
@ WdfDevStatePowerGotoDxIoStopped
Definition: wdfdevice.h:158
@ WdfDevStatePowerWakingConnectInterruptNP
Definition: wdfdevice.h:184
@ WdfDevStatePowerWakingDmaEnableNP
Definition: wdfdevice.h:188
@ WdfDevStatePowerInitialSelfManagedIoFailed
Definition: wdfdevice.h:197
@ WdfDevStatePowerCheckParentStateArmedForWakeNP
Definition: wdfdevice.h:170
@ WdfDevStatePowerGotoDxStoppedDisableInterrupt
Definition: wdfdevice.h:216
@ WdfDevStatePowerStartSelfManagedIoNP
Definition: wdfdevice.h:174
@ WdfDevStatePowerStopped
Definition: wdfdevice.h:151
@ WdfDevStatePowerWakingConnectInterrupt
Definition: wdfdevice.h:183
@ WdfDevStatePowerFinal
Definition: wdfdevice.h:211
@ WdfDevStatePowerD0ArmedForWakeNP
Definition: wdfdevice.h:142
@ WdfDevStatePowerDxArmedForWakeNP
Definition: wdfdevice.h:168
@ WdfDevStatePowerGotoDx
Definition: wdfdevice.h:156
@ WdfDevStatePowerCheckParentState
Definition: wdfdevice.h:133
@ WdfDevStatePowerInvalid
Definition: wdfdevice.h:129
@ WdfDevStatePowerInitialDmaEnableFailed
Definition: wdfdevice.h:196
@ WdfDevStatePowerWakePending
Definition: wdfdevice.h:179
@ WdfDevStatePowerWakingDmaEnableFailed
Definition: wdfdevice.h:189
@ WdfDevStatePowerInitialConnectInterruptFailed
Definition: wdfdevice.h:195
@ WdfDevStatePowerD0NP
Definition: wdfdevice.h:138
@ WdfDevStatePowerWaitForParentArmedForWakeNP
Definition: wdfdevice.h:172
@ WdfDevStatePowerUpFailedDerefParent
Definition: wdfdevice.h:214
@ WdfDevStatePowerD0DisarmingWakeAtBusNP
Definition: wdfdevice.h:144
@ WdfDevStatePowerDxStoppedDisarmWake
Definition: wdfdevice.h:200
@ WdfDevStatePowerGotoD3Stopped
Definition: wdfdevice.h:150
@ WdfDevStatePowerDecideD0State
Definition: wdfdevice.h:149
@ WdfDevStatePowerEnablingWakeAtBusNP
Definition: wdfdevice.h:136
@ WdfDevStatePowerReportPowerDownFailed
Definition: wdfdevice.h:194
@ WdfDevStatePowerNull
Definition: wdfdevice.h:223
@ WdfDevStatePowerGotoStopped
Definition: wdfdevice.h:205
@ WdfDevStatePowerGotoDxNP
Definition: wdfdevice.h:157
@ WdfDevStatePowerNotifyingD0EntryToWakeInterruptsNP
Definition: wdfdevice.h:222
@ WdfDevStatePowerStartingCheckDeviceType
Definition: wdfdevice.h:152
@ WdfDevStatePowerDxStoppedArmForWake
Definition: wdfdevice.h:208
@ WdfDevStatePowerObjectCreated
Definition: wdfdevice.h:130
@ WdfDevStatePowerDx
Definition: wdfdevice.h:161
@ WdfDevStatePowerGotoDxIoStoppedNP
Definition: wdfdevice.h:159
@ WdfDevStatePowerStoppedCompleteDx
Definition: wdfdevice.h:206
@ WdfDevStatePowerNotifyingD0EntryToWakeInterrupts
Definition: wdfdevice.h:220
@ WdfDevStatePowerWakingNP
Definition: wdfdevice.h:182
@ WdfDevStatePowerUpFailedDerefParentNP
Definition: wdfdevice.h:218
@ WdfDevStatePowerInitialPowerUpFailed
Definition: wdfdevice.h:199
@ WdfDevStatePowerGotoDxArmedForWake
Definition: wdfdevice.h:163
@ WdfDevStatePowerStartSelfManagedIo
Definition: wdfdevice.h:173
@ WdfDevStatePowerPowerFailedPowerDown
Definition: wdfdevice.h:193
_In_ UCHAR _In_ UCHAR MinorFunction
Definition: wdfdevice.h:1705
_In_ WDFDEVICE _In_ ULONG DeviceCharacteristics
Definition: wdfdevice.h:2781
_WDF_DEVICE_STATE_FLAGS
Definition: wdfdevice.h:55
@ WdfDevStateNP
Definition: wdfdevice.h:56
_WDF_POWER_POLICY_S0_IDLE_CAPABILITIES
Definition: wdfdevice.h:398
@ IdleCapsInvalid
Definition: wdfdevice.h:399
@ IdleUsbSelectiveSuspend
Definition: wdfdevice.h:402
@ IdleCanWakeFromS0
Definition: wdfdevice.h:401
@ IdleCannotWakeFromS0
Definition: wdfdevice.h:400
enum _WDF_DEVICE_POWER_POLICY_STATE * PWDF_DEVICE_POWER_POLICY_STATE
_In_ PWDFDEVICE_INIT _In_ WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE ReleaseHardwareOrderOnFailure
Definition: wdfdevice.h:4371
EVT_WDF_DEVICE_SURPRISE_REMOVAL * PFN_WDF_DEVICE_SURPRISE_REMOVAL
Definition: wdfdevice.h:1012
FORCEINLINE VOID WDF_POWER_FRAMEWORK_SETTINGS_INIT(_Out_ PWDF_POWER_FRAMEWORK_SETTINGS PowerFrameworkSettings)
Definition: wdfdevice.h:1831
_In_ PWDFDEVICE_INIT _In_ BOOLEAN IsExclusive
Definition: wdfdevice.h:3118
FORCEINLINE VOID WDF_REMOVE_LOCK_OPTIONS_INIT(_Out_ PWDF_REMOVE_LOCK_OPTIONS RemoveLockOptions, _In_ ULONG Flags)
Definition: wdfdevice.h:1667
FORCEINLINE VOID WDF_IO_TYPE_CONFIG_INIT(_Out_ PWDF_IO_TYPE_CONFIG IoTypeConfig)
Definition: wdfdevice.h:1894
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
FORCEINLINE VOID WDF_FILEOBJECT_CONFIG_INIT(_Out_ PWDF_FILEOBJECT_CONFIG FileEventCallbacks, _In_opt_ PFN_WDF_DEVICE_FILE_CREATE EvtDeviceFileCreate, _In_opt_ PFN_WDF_FILE_CLOSE EvtFileClose, _In_opt_ PFN_WDF_FILE_CLEANUP EvtFileCleanup)
Definition: wdfdevice.h:625
struct _WDF_DEVICE_POWER_POLICY_NOTIFICATION_DATA WDF_DEVICE_POWER_POLICY_NOTIFICATION_DATA
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_PNP_STATE _In_ PFN_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION EvtDevicePnpStateChange
Definition: wdfdevice.h:3003
PWDF_DRIVER_GLOBALS WdfDriverGlobals
@ WdfDeviceInitSetPowerNotPageableTableIndex
Definition: wdffuncenum.h:88
@ WdfDeviceGetCharacteristicsTableIndex
Definition: wdffuncenum.h:76
@ WdfDeviceGetDevicePnpStateTableIndex
Definition: wdffuncenum.h:68
@ WdfDeviceAssignSxWakeSettingsTableIndex
Definition: wdffuncenum.h:72
@ WdfDeviceGetDevicePowerPolicyStateTableIndex
Definition: wdffuncenum.h:70
@ WdfDeviceInitFreeTableIndex
Definition: wdffuncenum.h:79
@ WdfDeviceCreateDeviceInterfaceTableIndex
Definition: wdffuncenum.h:102
@ WdfDeviceGetDefaultQueueTableIndex
Definition: wdffuncenum.h:117
@ WdfDeviceInitSetDeviceTypeTableIndex
Definition: wdffuncenum.h:91
@ WdfDeviceInitSetPowerInrushTableIndex
Definition: wdffuncenum.h:90
@ WdfDeviceInitSetPnpPowerEventCallbacksTableIndex
Definition: wdffuncenum.h:80
@ WdfDeviceOpenDevicemapKeyTableIndex
Definition: wdffuncenum.h:468
@ WdfDeviceEnqueueRequestTableIndex
Definition: wdffuncenum.h:116
@ WdfDeviceInitAssignNameTableIndex
Definition: wdffuncenum.h:92
@ WdfDeviceWdmAssignPowerFrameworkSettingsTableIndex
Definition: wdffuncenum.h:450
@ WdfDeviceCreateTableIndex
Definition: wdffuncenum.h:100
@ WdfDeviceInitSetExclusiveTableIndex
Definition: wdffuncenum.h:87
@ WdfDeviceAssignMofResourceNameTableIndex
Definition: wdffuncenum.h:66
@ WdfDeviceInitSetIoInCallerContextCallbackTableIndex
Definition: wdffuncenum.h:99
@ WdfDeviceSetPnpCapabilitiesTableIndex
Definition: wdffuncenum.h:108
@ WdfDeviceQueryPropertyTableIndex
Definition: wdffuncenum.h:106
@ WdfDeviceInitAssignWdmIrpPreprocessCallbackTableIndex
Definition: wdffuncenum.h:98
@ WdfDeviceGetIoTargetTableIndex
Definition: wdffuncenum.h:67
@ WdfDeviceWdmGetDeviceObjectTableIndex
Definition: wdffuncenum.h:56
@ WdfDeviceInitSetPowerPolicyOwnershipTableIndex
Definition: wdffuncenum.h:82
@ WdfDeviceRemoveDependentUsageDeviceObjectTableIndex
Definition: wdffuncenum.h:412
@ WdfDeviceStopIdleNoTrackTableIndex
Definition: wdffuncenum.h:113
@ WdfDeviceSetBusInformationForChildrenTableIndex
Definition: wdffuncenum.h:110
@ WdfDeviceClearRemovalRelationsDevicesTableIndex
Definition: wdffuncenum.h:63
@ WdfDeviceInitSetCharacteristicsTableIndex
Definition: wdffuncenum.h:95
@ WdfDeviceInitSetDeviceClassTableIndex
Definition: wdffuncenum.h:94
@ WdfDeviceSetFailedTableIndex
Definition: wdffuncenum.h:112
@ WdfDeviceInitSetRequestAttributesTableIndex
Definition: wdffuncenum.h:97
@ WdfDeviceSetCharacteristicsTableIndex
Definition: wdffuncenum.h:75
@ WdfDeviceInitRegisterPnpStateChangeCallbackTableIndex
Definition: wdffuncenum.h:83
@ WdfWdmDeviceGetWdfDeviceHandleTableIndex
Definition: wdffuncenum.h:55
@ WdfDeviceInitSetRemoveLockOptionsTableIndex
Definition: wdffuncenum.h:428
@ WdfDeviceAddDependentUsageDeviceObjectTableIndex
Definition: wdffuncenum.h:60
@ WdfDeviceInitSetIoTypeExTableIndex
Definition: wdffuncenum.h:457
@ WdfDeviceIndicateWakeStatusTableIndex
Definition: wdffuncenum.h:111
@ WdfDeviceOpenRegistryKeyTableIndex
Definition: wdffuncenum.h:73
@ WdfDeviceWdmGetAttachedDeviceTableIndex
Definition: wdffuncenum.h:57
@ WdfDeviceRemoveRemovalRelationsPhysicalDeviceTableIndex
Definition: wdffuncenum.h:62
@ WdfDeviceAllocAndQueryPropertyExTableIndex
Definition: wdffuncenum.h:459
@ WdfDeviceSetPowerCapabilitiesTableIndex
Definition: wdffuncenum.h:109
@ WdfDeviceAssignS0IdleSettingsTableIndex
Definition: wdffuncenum.h:71
@ WdfDeviceSetSpecialFileSupportTableIndex
Definition: wdffuncenum.h:74
@ WdfDeviceInitAssignSDDLStringTableIndex
Definition: wdffuncenum.h:93
@ WdfDeviceInitSetIoTypeTableIndex
Definition: wdffuncenum.h:86
@ WdfDeviceRetrieveDeviceNameTableIndex
Definition: wdffuncenum.h:65
@ WdfDeviceWdmGetPhysicalDeviceTableIndex
Definition: wdffuncenum.h:58
@ WdfDeviceSetAlignmentRequirementTableIndex
Definition: wdffuncenum.h:78
@ WdfDeviceQueryPropertyExTableIndex
Definition: wdffuncenum.h:458
@ WdfDeviceAllocAndQueryPropertyTableIndex
Definition: wdffuncenum.h:107
@ WdfDeviceGetSystemPowerActionTableIndex
Definition: wdffuncenum.h:413
@ WdfDeviceInitRegisterPowerPolicyStateChangeCallbackTableIndex
Definition: wdffuncenum.h:85
@ WdfDeviceRetrieveDeviceInterfaceStringTableIndex
Definition: wdffuncenum.h:104
@ WdfDeviceCreateSymbolicLinkTableIndex
Definition: wdffuncenum.h:105
@ WdfDeviceWdmDispatchIrpToIoQueueTableIndex
Definition: wdffuncenum.h:427
@ WdfDeviceSetStaticStopRemoveTableIndex
Definition: wdffuncenum.h:101
@ WdfDeviceAddRemovalRelationsPhysicalDeviceTableIndex
Definition: wdffuncenum.h:61
@ WdfDeviceInitSetReleaseHardwareOrderOnFailureTableIndex
Definition: wdffuncenum.h:455
@ WdfDeviceWdmDispatchPreprocessedIrpTableIndex
Definition: wdffuncenum.h:59
@ WdfDeviceInitSetPowerPageableTableIndex
Definition: wdffuncenum.h:89
@ WdfDeviceWdmDispatchIrpTableIndex
Definition: wdffuncenum.h:426
@ WdfDeviceSetDeviceStateTableIndex
Definition: wdffuncenum.h:54
@ WdfDeviceInitRegisterPowerStateChangeCallbackTableIndex
Definition: wdffuncenum.h:84
@ WdfDeviceResumeIdleActualTableIndex
Definition: wdffuncenum.h:464
@ WdfDeviceStopIdleActualTableIndex
Definition: wdffuncenum.h:463
@ WdfDeviceGetFileObjectTableIndex
Definition: wdffuncenum.h:115
@ WdfDeviceInitSetFileObjectConfigTableIndex
Definition: wdffuncenum.h:96
@ WdfDeviceAssignPropertyTableIndex
Definition: wdffuncenum.h:460
@ WdfDeviceGetAlignmentRequirementTableIndex
Definition: wdffuncenum.h:77
@ WdfDeviceConfigureRequestDispatchingTableIndex
Definition: wdffuncenum.h:118
@ WdfDeviceInitSetPowerPolicyEventCallbacksTableIndex
Definition: wdffuncenum.h:81
@ WdfDeviceGetDriverTableIndex
Definition: wdffuncenum.h:64
@ WdfDeviceGetDevicePowerStateTableIndex
Definition: wdffuncenum.h:69
@ WdfDeviceSetDeviceInterfaceStateTableIndex
Definition: wdffuncenum.h:103
@ WdfDeviceConfigureWdmIrpDispatchCallbackTableIndex
Definition: wdffuncenum.h:429
@ WdfDeviceResumeIdleNoTrackTableIndex
Definition: wdffuncenum.h:114
@ WdfDeviceGetDeviceStateTableIndex
Definition: wdffuncenum.h:53
@ WdfUseDefault
Definition: wdftypes.h:89
#define WDFAPI
Definition: wdftypes.h:53
#define FORCEINLINE
Definition: wdftypes.h:67
enum _WDF_TRI_STATE WDF_TRI_STATE
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_In_ CONST DEVPROPKEY * PropertyKey
Definition: iofuncs.h:2414
DEVICE_REGISTRY_PROPERTY
Definition: iotypes.h:1194
* PFILE_OBJECT
Definition: iotypes.h:1998
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK * PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK
Definition: potypes.h:501
PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK * PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK
Definition: potypes.h:511
PO_FX_COMPONENT_IDLE_STATE_CALLBACK * PPO_FX_COMPONENT_IDLE_STATE_CALLBACK
Definition: potypes.h:522
PO_FX_POWER_CONTROL_CALLBACK * PPO_FX_POWER_CONTROL_CALLBACK
Definition: potypes.h:555
unsigned char UCHAR
Definition: xmlstorage.h:181