ReactOS 0.4.17-dev-1268-g5608ce5
iotypes.h
Go to the documentation of this file.
2/******************************************************************************
3 * I/O Manager Types *
4 ******************************************************************************/
6
8
9#define STATUS_CONTINUE_COMPLETION STATUS_SUCCESS
10
11#define CONNECT_FULLY_SPECIFIED 0x1
12#define CONNECT_LINE_BASED 0x2
13#define CONNECT_MESSAGE_BASED 0x3
14#define CONNECT_FULLY_SPECIFIED_GROUP 0x4
15#define CONNECT_CURRENT_VERSION 0x4
16
17#define POOL_QUOTA_FAIL_INSTEAD_OF_RAISE 0x8
18#define POOL_RAISE_IF_ALLOCATION_FAILURE 0x10
19#define POOL_COLD_ALLOCATION 0x100
20#define POOL_NX_ALLOCATION 0x200
21#define POOL_ZERO_ALLOCATION 0x400
22
23#define IO_TYPE_ADAPTER 1
24#define IO_TYPE_CONTROLLER 2
25#define IO_TYPE_DEVICE 3
26#define IO_TYPE_DRIVER 4
27#define IO_TYPE_FILE 5
28#define IO_TYPE_IRP 6
29#define IO_TYPE_MASTER_ADAPTER 7
30#define IO_TYPE_OPEN_PACKET 8
31#define IO_TYPE_TIMER 9
32#define IO_TYPE_VPB 10
33#define IO_TYPE_ERROR_LOG 11
34#define IO_TYPE_ERROR_MESSAGE 12
35#define IO_TYPE_DEVICE_OBJECT_EXTENSION 13
36
37#define IO_TYPE_CSQ_IRP_CONTEXT 1
38#define IO_TYPE_CSQ 2
39#define IO_TYPE_CSQ_EX 3
40
41/* IO_RESOURCE_DESCRIPTOR.Option */
42#define IO_RESOURCE_PREFERRED 0x01
43#define IO_RESOURCE_DEFAULT 0x02
44#define IO_RESOURCE_ALTERNATIVE 0x08
45
48/* DEVICE_OBJECT.DeviceType */
49#define DEVICE_TYPE ULONG
50
51#define FILE_DEVICE_BEEP 0x00000001
52#define FILE_DEVICE_CD_ROM 0x00000002
53#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003
54#define FILE_DEVICE_CONTROLLER 0x00000004
55#define FILE_DEVICE_DATALINK 0x00000005
56#define FILE_DEVICE_DFS 0x00000006
57#define FILE_DEVICE_DISK 0x00000007
58#define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008
59#define FILE_DEVICE_FILE_SYSTEM 0x00000009
60#define FILE_DEVICE_INPORT_PORT 0x0000000a
61#define FILE_DEVICE_KEYBOARD 0x0000000b
62#define FILE_DEVICE_MAILSLOT 0x0000000c
63#define FILE_DEVICE_MIDI_IN 0x0000000d
64#define FILE_DEVICE_MIDI_OUT 0x0000000e
65#define FILE_DEVICE_MOUSE 0x0000000f
66#define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010
67#define FILE_DEVICE_NAMED_PIPE 0x00000011
68#define FILE_DEVICE_NETWORK 0x00000012
69#define FILE_DEVICE_NETWORK_BROWSER 0x00000013
70#define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014
71#define FILE_DEVICE_NULL 0x00000015
72#define FILE_DEVICE_PARALLEL_PORT 0x00000016
73#define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017
74#define FILE_DEVICE_PRINTER 0x00000018
75#define FILE_DEVICE_SCANNER 0x00000019
76#define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a
77#define FILE_DEVICE_SERIAL_PORT 0x0000001b
78#define FILE_DEVICE_SCREEN 0x0000001c
79#define FILE_DEVICE_SOUND 0x0000001d
80#define FILE_DEVICE_STREAMS 0x0000001e
81#define FILE_DEVICE_TAPE 0x0000001f
82#define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020
83#define FILE_DEVICE_TRANSPORT 0x00000021
84#define FILE_DEVICE_UNKNOWN 0x00000022
85#define FILE_DEVICE_VIDEO 0x00000023
86#define FILE_DEVICE_VIRTUAL_DISK 0x00000024
87#define FILE_DEVICE_WAVE_IN 0x00000025
88#define FILE_DEVICE_WAVE_OUT 0x00000026
89#define FILE_DEVICE_8042_PORT 0x00000027
90#define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028
91#define FILE_DEVICE_BATTERY 0x00000029
92#define FILE_DEVICE_BUS_EXTENDER 0x0000002a
93#define FILE_DEVICE_MODEM 0x0000002b
94#define FILE_DEVICE_VDM 0x0000002c
95#define FILE_DEVICE_MASS_STORAGE 0x0000002d
96#define FILE_DEVICE_SMB 0x0000002e
97#define FILE_DEVICE_KS 0x0000002f
98#define FILE_DEVICE_CHANGER 0x00000030
99#define FILE_DEVICE_SMARTCARD 0x00000031
100#define FILE_DEVICE_ACPI 0x00000032
101#define FILE_DEVICE_DVD 0x00000033
102#define FILE_DEVICE_FULLSCREEN_VIDEO 0x00000034
103#define FILE_DEVICE_DFS_FILE_SYSTEM 0x00000035
104#define FILE_DEVICE_DFS_VOLUME 0x00000036
105#define FILE_DEVICE_SERENUM 0x00000037
106#define FILE_DEVICE_TERMSRV 0x00000038
107#define FILE_DEVICE_KSEC 0x00000039
108#define FILE_DEVICE_FIPS 0x0000003a
109#define FILE_DEVICE_INFINIBAND 0x0000003b
110#define FILE_DEVICE_VMBUS 0x0000003e
111#define FILE_DEVICE_CRYPT_PROVIDER 0x0000003f
112#define FILE_DEVICE_WPD 0x00000040
113#define FILE_DEVICE_BLUETOOTH 0x00000041
114#define FILE_DEVICE_MT_COMPOSITE 0x00000042
115#define FILE_DEVICE_MT_TRANSPORT 0x00000043
116#define FILE_DEVICE_BIOMETRIC 0x00000044
117#define FILE_DEVICE_PMI 0x00000045
118#define FILE_DEVICE_EHSTOR 0x00000046
119#define FILE_DEVICE_DEVAPI 0x00000047
120#define FILE_DEVICE_GPIO 0x00000048
121#define FILE_DEVICE_USBEX 0x00000049
122#define FILE_DEVICE_CONSOLE 0x00000050
123#define FILE_DEVICE_NFP 0x00000051
124#define FILE_DEVICE_SYSENV 0x00000052
125#define FILE_DEVICE_VIRTUAL_BLOCK 0x00000053
126#define FILE_DEVICE_POINT_OF_SERVICE 0x00000054
127#define FILE_DEVICE_STORAGE_REPLICATION 0x00000055
128#define FILE_DEVICE_TRUST_ENV 0x00000056
129#define FILE_DEVICE_UCM 0x00000057
130#define FILE_DEVICE_UCMTCPCI 0x00000058
131#define FILE_DEVICE_PERSISTENT_MEMORY 0x00000059
132#define FILE_DEVICE_NVDIMM 0x0000005a
133#define FILE_DEVICE_HOLOGRAPHIC 0x0000005b
134#define FILE_DEVICE_SDFXHCI 0x0000005c
135#define FILE_DEVICE_UCMUCSI 0x0000005d
136
139#if defined(NT_PROCESSOR_GROUPS)
140
142
143enum _IRQ_DEVICE_POLICY_USHORT {
148 IrqPolicyAllProcessorsInGroup = 3,
151
152#else /* defined(NT_PROCESSOR_GROUPS) */
153
154typedef enum _IRQ_DEVICE_POLICY {
162
163#endif
164
165typedef enum _IRQ_PRIORITY {
171
172typedef enum _IRQ_GROUP_POLICY {
176
177#define MAXIMUM_VOLUME_LABEL_LENGTH (32 * sizeof(WCHAR))
178
183
184typedef struct _CLIENT_ID {
188
189typedef struct _VPB {
200
206
207_Function_class_(DRIVER_CONTROL)
210(NTAPI DRIVER_CONTROL)(
212 _Inout_ struct _IRP *Irp,
215typedef DRIVER_CONTROL *PDRIVER_CONTROL;
216
217typedef struct _WAIT_CONTEXT_BLOCK {
226
228$if (_NTDDK_)
229/* DEVICE_OBJECT.Flags */
230#define DO_DEVICE_HAS_NAME 0x00000040
231#define DO_SYSTEM_BOOT_PARTITION 0x00000100
232#define DO_LONG_TERM_REQUESTS 0x00000200
233#define DO_NEVER_LAST_DEVICE 0x00000400
234#define DO_LOW_PRIORITY_FILESYSTEM 0x00010000
235#define DO_SUPPORTS_TRANSACTIONS 0x00040000
236#define DO_FORCE_NEITHER_IO 0x00080000
237#define DO_VOLUME_DEVICE_OBJECT 0x00100000
238#define DO_SYSTEM_SYSTEM_PARTITION 0x00200000
239#define DO_SYSTEM_CRITICAL_PARTITION 0x00400000
240#define DO_DISALLOW_EXECUTE 0x00800000
241
244/* DEVICE_OBJECT.Flags */
245#define DO_UNLOAD_PENDING 0x00000001
246#define DO_VERIFY_VOLUME 0x00000002
247#define DO_BUFFERED_IO 0x00000004
248#define DO_EXCLUSIVE 0x00000008
249#define DO_DIRECT_IO 0x00000010
250#define DO_MAP_IO_BUFFER 0x00000020
251#define DO_DEVICE_INITIALIZING 0x00000080
252#define DO_SHUTDOWN_REGISTERED 0x00000800
253#define DO_BUS_ENUMERATED_DEVICE 0x00001000
254#define DO_POWER_PAGABLE 0x00002000
255#define DO_POWER_INRUSH 0x00004000
256
257/* DEVICE_OBJECT.Characteristics */
258#define FILE_REMOVABLE_MEDIA 0x00000001
259#define FILE_READ_ONLY_DEVICE 0x00000002
260#define FILE_FLOPPY_DISKETTE 0x00000004
261#define FILE_WRITE_ONCE_MEDIA 0x00000008
262#define FILE_REMOTE_DEVICE 0x00000010
263#define FILE_DEVICE_IS_MOUNTED 0x00000020
264#define FILE_VIRTUAL_VOLUME 0x00000040
265#define FILE_AUTOGENERATED_DEVICE_NAME 0x00000080
266#define FILE_DEVICE_SECURE_OPEN 0x00000100
267#define FILE_CHARACTERISTIC_PNP_DEVICE 0x00000800
268#define FILE_CHARACTERISTIC_TS_DEVICE 0x00001000
269#define FILE_CHARACTERISTIC_WEBDAV_DEVICE 0x00002000
270#define FILE_PORTABLE_DEVICE 0x00004000
271#define FILE_DEVICE_ALLOW_APPCONTAINER_TRAVERSAL 0x00020000
272
273/* DEVICE_OBJECT.AlignmentRequirement */
274#define FILE_BYTE_ALIGNMENT 0x00000000
275#define FILE_WORD_ALIGNMENT 0x00000001
276#define FILE_LONG_ALIGNMENT 0x00000003
277#define FILE_QUAD_ALIGNMENT 0x00000007
278#define FILE_OCTA_ALIGNMENT 0x0000000f
279#define FILE_32_BYTE_ALIGNMENT 0x0000001f
280#define FILE_64_BYTE_ALIGNMENT 0x0000003f
281#define FILE_128_BYTE_ALIGNMENT 0x0000007f
282#define FILE_256_BYTE_ALIGNMENT 0x000000ff
283#define FILE_512_BYTE_ALIGNMENT 0x000001ff
284
286
288typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _DEVICE_OBJECT {
289 CSHORT Type;
290 USHORT Size;
291 LONG ReferenceCount;
293 struct _DEVICE_OBJECT *NextDevice;
294 struct _DEVICE_OBJECT *AttachedDevice;
295 struct _IRP *CurrentIrp;
297 ULONG Flags;
298 ULONG Characteristics;
299 volatile PVPB Vpb;
300 PVOID DeviceExtension;
303 union {
304 LIST_ENTRY ListEntry;
306 } Queue;
308 KDEVICE_QUEUE DeviceQueue;
309 KDPC Dpc;
310 ULONG ActiveThreadCount;
312 KEVENT DeviceLock;
314 USHORT Spare1;
315 struct _DEVOBJ_EXTENSION *DeviceObjectExtension;
318
319typedef enum _IO_SESSION_STATE {
330
335
346
352
368
378
381 union {
385 } ConnectionContext;
393
396 _ANONYMOUS_UNION union {
402
405 union {
409 } ConnectionContext;
411
413{
415 union
416 {
420 } ConnectionContext;
422
423typedef enum _IO_ACCESS_TYPE {
428
429typedef enum _IO_ACCESS_MODE {
433
438
446
451
457
458#if (NTDDI_VERSION >= NTDDI_WIN7)
459
460typedef NTSTATUS
462 VOID);
463
464typedef NTSTATUS
465(NTAPI IO_SESSION_NOTIFICATION_FUNCTION)(
466 _In_ PVOID SessionObject,
472
473typedef IO_SESSION_NOTIFICATION_FUNCTION *PIO_SESSION_NOTIFICATION_FUNCTION;
474
475#endif
476
478
482 volatile LONG IoCount;
485
498
499typedef struct _IO_REMOVE_LOCK {
501#if DBG
503#endif
505
507
508_Function_class_(IO_WORKITEM_ROUTINE)
511typedef VOID
512(NTAPI IO_WORKITEM_ROUTINE)(
515typedef IO_WORKITEM_ROUTINE *PIO_WORKITEM_ROUTINE;
516
517typedef VOID
518(NTAPI IO_WORKITEM_ROUTINE_EX)(
522typedef IO_WORKITEM_ROUTINE_EX *PIO_WORKITEM_ROUTINE_EX;
523
524typedef struct _SHARE_ACCESS {
533
534typedef enum _CREATE_FILE_TYPE {
539
540#define IO_FORCE_ACCESS_CHECK 0x001
541#define IO_NO_PARAMETER_CHECKING 0x100
542
543#define IO_REPARSE 0x0
544#define IO_REMOUNT 0x1
545
546typedef struct _IO_STATUS_BLOCK {
547 _ANONYMOUS_UNION union {
549 PVOID Pointer;
553
554#if defined(_WIN64)
555typedef struct _IO_STATUS_BLOCK32 {
558} IO_STATUS_BLOCK32, *PIO_STATUS_BLOCK32;
559#endif
560
561typedef VOID
566
567#define PIO_APC_ROUTINE_DEFINED
568
569typedef enum _IO_SESSION_EVENT {
579
580#define IO_SESSION_STATE_ALL_EVENTS 0xffffffff
581#define IO_SESSION_STATE_CREATION_EVENT 0x00000001
582#define IO_SESSION_STATE_TERMINATION_EVENT 0x00000002
583#define IO_SESSION_STATE_CONNECT_EVENT 0x00000004
584#define IO_SESSION_STATE_DISCONNECT_EVENT 0x00000008
585#define IO_SESSION_STATE_LOGON_EVENT 0x00000010
586#define IO_SESSION_STATE_LOGOFF_EVENT 0x00000020
587
588#define IO_SESSION_STATE_VALID_EVENT_MASK 0x0000003f
589
590#define IO_SESSION_MAX_PAYLOAD_SIZE 256L
591
596
597#define EVENT_INCREMENT 1
598#define IO_NO_INCREMENT 0
599#define IO_CD_ROM_INCREMENT 1
600#define IO_DISK_INCREMENT 1
601#define IO_KEYBOARD_INCREMENT 6
602#define IO_MAILSLOT_INCREMENT 2
603#define IO_MOUSE_INCREMENT 6
604#define IO_NAMED_PIPE_INCREMENT 2
605#define IO_NETWORK_INCREMENT 2
606#define IO_PARALLEL_INCREMENT 1
607#define IO_SERIAL_INCREMENT 2
608#define IO_SOUND_INCREMENT 8
609#define IO_VIDEO_INCREMENT 1
610#define SEMAPHORE_INCREMENT 1
611
612#define MM_MAXIMUM_DISK_IO_SIZE (0x10000)
613
614typedef struct _BOOTDISK_INFORMATION {
620
631
632#if (NTDDI_VERSION >= NTDDI_WIN7)
633
637 _ANONYMOUS_UNION union {
643
648
649#else
650
651#if (NTDDI_VERSION >= NTDDI_VISTA)
652typedef struct _BOOTDISK_INFORMATION_LITE {
653 ULONG BootDeviceSignature;
654 ULONG SystemDeviceSignature;
655 GUID BootDeviceGuid;
656 GUID SystemDeviceGuid;
657 BOOLEAN BootDeviceIsGpt;
658 BOOLEAN SystemDeviceIsGpt;
660#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
661
662#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
663
664#include <pshpack1.h>
665
666typedef struct _EISA_MEMORY_TYPE {
675
683
684typedef struct _EISA_IRQ_DESCRIPTOR {
691
696
703
710
715
716typedef struct _EISA_PORT_DESCRIPTOR {
722
727
738
745 UCHAR Selections[26];
747 UCHAR TypeString[80];
754
755#include <poppack.h>
756
757/* CM_EISA_FUNCTION_INFORMATION.FunctionFlags */
758
759#define EISA_FUNCTION_ENABLED 0x80
760#define EISA_FREE_FORM_DATA 0x40
761#define EISA_HAS_PORT_INIT_ENTRY 0x20
762#define EISA_HAS_PORT_RANGE 0x10
763#define EISA_HAS_DMA_ENTRY 0x08
764#define EISA_HAS_IRQ_ENTRY 0x04
765#define EISA_HAS_MEMORY_ENTRY 0x02
766#define EISA_HAS_TYPE_ENTRY 0x01
767#define EISA_HAS_INFORMATION \
768 (EISA_HAS_PORT_RANGE + EISA_HAS_DMA_ENTRY + EISA_HAS_IRQ_ENTRY \
769 + EISA_HAS_MEMORY_ENTRY + EISA_HAS_TYPE_ENTRY)
770
771#define EISA_MORE_ENTRIES 0x80
772#define EISA_SYSTEM_MEMORY 0x00
773#define EISA_MEMORY_TYPE_RAM 0x01
774
775/* CM_EISA_SLOT_INFORMATION.ReturnCode */
776
777#define EISA_INVALID_SLOT 0x80
778#define EISA_INVALID_FUNCTION 0x81
779#define EISA_INVALID_CONFIGURATION 0x82
780#define EISA_EMPTY_SLOT 0x83
781#define EISA_INVALID_BIOS_CALL 0x86
782
783/*
784** Plug and Play structures
785*/
786
787typedef VOID
789 PVOID Context);
790
791typedef VOID
793 PVOID Context);
794
795_Function_class_(TRANSLATE_BUS_ADDRESS)
797typedef BOOLEAN
798(NTAPI TRANSLATE_BUS_ADDRESS)(
804typedef TRANSLATE_BUS_ADDRESS *PTRANSLATE_BUS_ADDRESS;
805
806_Function_class_(GET_DMA_ADAPTER)
808typedef struct _DMA_ADAPTER*
809(NTAPI GET_DMA_ADAPTER)(
813typedef GET_DMA_ADAPTER *PGET_DMA_ADAPTER;
814
815_Function_class_(GET_SET_DEVICE_DATA)
817typedef ULONG
818(NTAPI GET_SET_DEVICE_DATA)(
824typedef GET_SET_DEVICE_DATA *PGET_SET_DEVICE_DATA;
825
832
838
844
845typedef VOID
848
857
858typedef VOID
862
863#define PCI_DEVICE_PRESENT_INTERFACE_VERSION 1
864
865/* PCI_DEVICE_PRESENCE_PARAMETERS.Flags */
866#define PCI_USE_SUBSYSTEM_IDS 0x00000001
867#define PCI_USE_REVISION 0x00000002
868#define PCI_USE_VENDEV_IDS 0x00000004
869#define PCI_USE_CLASS_SUBCLASS 0x00000008
870#define PCI_USE_PROGIF 0x00000010
871#define PCI_USE_LOCAL_BUS 0x00000020
872#define PCI_USE_LOCAL_DEVICE 0x00000040
873
886
889typedef BOOLEAN
890(NTAPI PCI_IS_DEVICE_PRESENT)(
897typedef PCI_IS_DEVICE_PRESENT *PPCI_IS_DEVICE_PRESENT;
898
901typedef BOOLEAN
902(NTAPI PCI_IS_DEVICE_PRESENT_EX)(
905typedef PCI_IS_DEVICE_PRESENT_EX *PPCI_IS_DEVICE_PRESENT_EX;
906
918
928
930typedef struct _DEVICE_CAPABILITIES {
931 _Field_range_(==, sizeof(struct _DEVICE_CAPABILITIES)) USHORT Size;
933 ULONG DeviceD1:1;
934 ULONG DeviceD2:1;
935 ULONG LockSupported:1;
936 ULONG EjectSupported:1;
938 ULONG DockDevice:1;
939 ULONG UniqueID:1;
940 ULONG SilentInstall:1;
941 ULONG RawDeviceOK:1;
942 ULONG SurpriseRemovalOK:1;
943 ULONG WakeFromD0:1;
944 ULONG WakeFromD1:1;
945 ULONG WakeFromD2:1;
946 ULONG WakeFromD3:1;
947 ULONG HardwareDisabled:1;
948 ULONG NonDynamic:1;
949 ULONG WarmEjectSupported:1;
950 ULONG NoDisplayInUI:1;
952 ULONG WakeFromInterrupt:1;
953 ULONG SecureDevice:1;
954 ULONG ChildOfVgaEnabledBridge:1;
955 ULONG DecodeIoOnBoot:1;
956 ULONG Reserved:9;
958 ULONG UINumber;
960 SYSTEM_POWER_STATE SystemWake;
961 DEVICE_POWER_STATE DeviceWake;
962 ULONG D1Latency;
963 ULONG D2Latency;
964 ULONG D3Latency;
966
974
980
981#undef INTERFACE
982
983typedef struct _INTERFACE {
984 USHORT Size;
990
996
998
999/* PNP_DEVICE_STATE */
1000
1001#define PNP_DEVICE_DISABLED 0x00000001
1002#define PNP_DEVICE_DONT_DISPLAY_IN_UI 0x00000002
1003#define PNP_DEVICE_FAILED 0x00000004
1004#define PNP_DEVICE_REMOVED 0x00000008
1005#define PNP_DEVICE_RESOURCE_REQUIREMENTS_CHANGED 0x00000010
1006#define PNP_DEVICE_NOT_DISABLEABLE 0x00000020
1007
1012 struct _FILE_OBJECT *FileObject;
1014 UCHAR CustomDataBuffer[1];
1016
1021 struct _FILE_OBJECT *FileObject;
1023
1024#if (NTDDI_VERSION >= NTDDI_VISTA) || defined(__REACTOS__)
1025#include <devpropdef.h>
1026#define PLUGPLAY_PROPERTY_PERSISTENT 0x00000001
1027#endif
1028
1029#define PNP_REPLACE_NO_MAP MAXLONGLONG
1030
1033(NTAPI *PREPLACE_MAP_MEMORY)(
1034 _In_ PHYSICAL_ADDRESS TargetPhysicalAddress,
1039
1044 struct {
1047 } Ranges[ANYSIZE_ARRAY];
1049
1052 _Field_range_(<=, MAXIMUM_GROUPS) ULONG GroupCount;
1057
1064
1065#define PNP_REPLACE_PARAMETERS_VERSION 2
1066
1076 PREPLACE_MAP_MEMORY MapMemory;
1078
1079typedef VOID
1081 VOID);
1082
1084typedef NTSTATUS
1085(NTAPI *PREPLACE_BEGIN)(
1088
1090typedef NTSTATUS
1091(NTAPI *PREPLACE_END)(
1093
1095typedef NTSTATUS
1096(NTAPI *PREPLACE_MIRROR_PHYSICAL_MEMORY)(
1100
1102typedef NTSTATUS
1103(NTAPI *PREPLACE_SET_PROCESSOR_ID)(
1107
1109typedef NTSTATUS
1110(NTAPI *PREPLACE_SWAP)(
1112
1114typedef NTSTATUS
1115(NTAPI *PREPLACE_INITIATE_HARDWARE_MIRROR)(
1117
1119typedef NTSTATUS
1120(NTAPI *PREPLACE_MIRROR_PLATFORM_MEMORY)(
1122
1124typedef NTSTATUS
1125(NTAPI *PREPLACE_GET_MEMORY_DESTINATION)(
1129
1131typedef NTSTATUS
1132(NTAPI *PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE)(
1135
1136#define PNP_REPLACE_DRIVER_INTERFACE_VERSION 1
1137#define PNP_REPLACE_DRIVER_INTERFACE_MINIMUM_SIZE \
1138 FIELD_OFFSET(PNP_REPLACE_DRIVER_INTERFACE, InitiateHardwareMirror)
1139
1140#define PNP_REPLACE_MEMORY_SUPPORTED 0x0001
1141#define PNP_REPLACE_PROCESSOR_SUPPORTED 0x0002
1142#define PNP_REPLACE_HARDWARE_MEMORY_MIRRORING 0x0004
1143#define PNP_REPLACE_HARDWARE_PAGE_COPY 0x0008
1144#define PNP_REPLACE_HARDWARE_QUIESCE 0x0010
1145
1151 PREPLACE_BEGIN BeginReplace;
1152 PREPLACE_END EndReplace;
1153 PREPLACE_MIRROR_PHYSICAL_MEMORY MirrorPhysicalMemory;
1154 PREPLACE_SET_PROCESSOR_ID SetProcessorId;
1155 PREPLACE_SWAP Swap;
1156 PREPLACE_INITIATE_HARDWARE_MIRROR InitiateHardwareMirror;
1157 PREPLACE_MIRROR_PLATFORM_MEMORY MirrorPlatformMemory;
1158 PREPLACE_GET_MEMORY_DESTINATION GetMemoryDestination;
1159 PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE EnableDisableHardwareQuiesce;
1161
1163typedef NTSTATUS
1164(NTAPI *PREPLACE_DRIVER_INIT)(
1167
1177
1178typedef struct _POWER_SEQUENCE {
1183
1184#ifdef _PREFAST_
1185#define __string_type 0x1000
1186#define __guid_type 0x2000
1187#define __multiString_type 0x4000
1188#else
1189#define __string_type 0
1190#define __guid_type 0
1191#define __multiString_type 0
1192#endif
1193
1194typedef enum {
1219#undef __string_type
1220#undef __guid_type
1221#undef __multiString_type
1222
1229
1230typedef enum _IO_PRIORITY_HINT {
1238
1239#define PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES 0x00000001
1240
1241_Function_class_(DRIVER_NOTIFICATION_CALLBACK_ROUTINE)
1243typedef NTSTATUS
1244(NTAPI DRIVER_NOTIFICATION_CALLBACK_ROUTINE)(
1247typedef DRIVER_NOTIFICATION_CALLBACK_ROUTINE *PDRIVER_NOTIFICATION_CALLBACK_ROUTINE;
1248
1249_Function_class_(DEVICE_CHANGE_COMPLETE_CALLBACK)
1251typedef VOID
1252(NTAPI DEVICE_CHANGE_COMPLETE_CALLBACK)(
1254typedef DEVICE_CHANGE_COMPLETE_CALLBACK *PDEVICE_CHANGE_COMPLETE_CALLBACK;
1255
1297#if (NTDDI_VERSION >= NTDDI_VISTA)
1307#endif
1308#if (NTDDI_VERSION >= NTDDI_WIN7)
1315#endif
1318
1323
1324typedef struct _FILE_POSITION_INFORMATION {
1325 LARGE_INTEGER CurrentByteOffset;
1327
1328typedef struct _FILE_BASIC_INFORMATION {
1329 LARGE_INTEGER CreationTime;
1330 LARGE_INTEGER LastAccessTime;
1331 LARGE_INTEGER LastWriteTime;
1332 LARGE_INTEGER ChangeTime;
1335
1339
1341 ULONG Flags;
1343
1348
1352
1356
1359 ULONG_PTR ProcessIdList[1];
1361
1362typedef struct _FILE_STANDARD_INFORMATION {
1364 LARGE_INTEGER EndOfFile;
1365 ULONG NumberOfLinks;
1366 BOOLEAN DeletePending;
1369
1370typedef struct _FILE_NETWORK_OPEN_INFORMATION {
1371 LARGE_INTEGER CreationTime;
1372 LARGE_INTEGER LastAccessTime;
1373 LARGE_INTEGER LastWriteTime;
1374 LARGE_INTEGER ChangeTime;
1376 LARGE_INTEGER EndOfFile;
1379
1380typedef enum _FSINFOCLASS {
1393
1394typedef struct _FILE_FS_DEVICE_INFORMATION {
1396 ULONG Characteristics;
1398
1399typedef struct _FILE_FULL_EA_INFORMATION {
1400 ULONG NextEntryOffset;
1401 UCHAR Flags;
1402 UCHAR EaNameLength;
1403 USHORT EaValueLength;
1404 CHAR EaName[1];
1406
1415
1421
1422#define FILE_SKIP_COMPLETION_PORT_ON_SUCCESS 0x1
1423#define FILE_SKIP_SET_EVENT_ON_HANDLE 0x2
1424#define FILE_SKIP_SET_USER_EVENT_ON_FAST_IO 0x4
1425
1426#define FM_LOCK_BIT (0x1)
1427#define FM_LOCK_BIT_V (0x0)
1428#define FM_LOCK_WAITER_WOKEN (0x2)
1429#define FM_LOCK_WAITER_INC (0x4)
1430
1431_Function_class_(FAST_IO_CHECK_IF_POSSIBLE)
1433typedef BOOLEAN
1434(NTAPI FAST_IO_CHECK_IF_POSSIBLE)(
1435 _In_ struct _FILE_OBJECT *FileObject,
1443typedef FAST_IO_CHECK_IF_POSSIBLE *PFAST_IO_CHECK_IF_POSSIBLE;
1444
1445_Function_class_(FAST_IO_READ)
1447typedef BOOLEAN
1448(NTAPI FAST_IO_READ)(
1449 _In_ struct _FILE_OBJECT *FileObject,
1457typedef FAST_IO_READ *PFAST_IO_READ;
1458
1459_Function_class_(FAST_IO_WRITE)
1461typedef BOOLEAN
1462(NTAPI FAST_IO_WRITE)(
1463 _In_ struct _FILE_OBJECT *FileObject,
1471typedef FAST_IO_WRITE *PFAST_IO_WRITE;
1472
1473_Function_class_(FAST_IO_QUERY_BASIC_INFO)
1475typedef BOOLEAN
1476(NTAPI FAST_IO_QUERY_BASIC_INFO)(
1477 _In_ struct _FILE_OBJECT *FileObject,
1482typedef FAST_IO_QUERY_BASIC_INFO *PFAST_IO_QUERY_BASIC_INFO;
1483
1484_Function_class_(FAST_IO_QUERY_STANDARD_INFO)
1486typedef BOOLEAN
1487(NTAPI FAST_IO_QUERY_STANDARD_INFO)(
1488 _In_ struct _FILE_OBJECT *FileObject,
1493typedef FAST_IO_QUERY_STANDARD_INFO *PFAST_IO_QUERY_STANDARD_INFO;
1494
1495_Function_class_(FAST_IO_LOCK)
1497typedef BOOLEAN
1498(NTAPI FAST_IO_LOCK)(
1499 _In_ struct _FILE_OBJECT *FileObject,
1508typedef FAST_IO_LOCK *PFAST_IO_LOCK;
1509
1510_Function_class_(FAST_IO_UNLOCK_SINGLE)
1512typedef BOOLEAN
1513(NTAPI FAST_IO_UNLOCK_SINGLE)(
1514 _In_ struct _FILE_OBJECT *FileObject,
1518 _In_ ULONG Key,
1521typedef FAST_IO_UNLOCK_SINGLE *PFAST_IO_UNLOCK_SINGLE;
1522
1523_Function_class_(FAST_IO_UNLOCK_ALL)
1525typedef BOOLEAN
1526(NTAPI FAST_IO_UNLOCK_ALL)(
1527 _In_ struct _FILE_OBJECT *FileObject,
1531typedef FAST_IO_UNLOCK_ALL *PFAST_IO_UNLOCK_ALL;
1532
1533_Function_class_(FAST_IO_UNLOCK_ALL_BY_KEY)
1535typedef BOOLEAN
1536(NTAPI FAST_IO_UNLOCK_ALL_BY_KEY)(
1537 _In_ struct _FILE_OBJECT *FileObject,
1539 _In_ ULONG Key,
1542typedef FAST_IO_UNLOCK_ALL_BY_KEY *PFAST_IO_UNLOCK_ALL_BY_KEY;
1543
1544_Function_class_(FAST_IO_DEVICE_CONTROL)
1546typedef BOOLEAN
1547(NTAPI FAST_IO_DEVICE_CONTROL)(
1548 _In_ struct _FILE_OBJECT *FileObject,
1557typedef FAST_IO_DEVICE_CONTROL *PFAST_IO_DEVICE_CONTROL;
1558
1559_Function_class_(FAST_IO_ACQUIRE_FILE)
1561typedef VOID
1562(NTAPI FAST_IO_ACQUIRE_FILE)(
1563 _In_ struct _FILE_OBJECT *FileObject);
1564typedef FAST_IO_ACQUIRE_FILE *PFAST_IO_ACQUIRE_FILE;
1565
1566_Function_class_(FAST_IO_RELEASE_FILE)
1568typedef VOID
1569(NTAPI FAST_IO_RELEASE_FILE)(
1570 _In_ struct _FILE_OBJECT *FileObject);
1571typedef FAST_IO_RELEASE_FILE *PFAST_IO_RELEASE_FILE;
1572
1573_Function_class_(FAST_IO_DETACH_DEVICE)
1575typedef VOID
1576(NTAPI FAST_IO_DETACH_DEVICE)(
1579typedef FAST_IO_DETACH_DEVICE *PFAST_IO_DETACH_DEVICE;
1580
1581_Function_class_(FAST_IO_QUERY_NETWORK_OPEN_INFO)
1583typedef BOOLEAN
1584(NTAPI FAST_IO_QUERY_NETWORK_OPEN_INFO)(
1585 _In_ struct _FILE_OBJECT *FileObject,
1590typedef FAST_IO_QUERY_NETWORK_OPEN_INFO *PFAST_IO_QUERY_NETWORK_OPEN_INFO;
1591
1592_Function_class_(FAST_IO_ACQUIRE_FOR_MOD_WRITE)
1594typedef NTSTATUS
1595(NTAPI FAST_IO_ACQUIRE_FOR_MOD_WRITE)(
1596 _In_ struct _FILE_OBJECT *FileObject,
1600typedef FAST_IO_ACQUIRE_FOR_MOD_WRITE *PFAST_IO_ACQUIRE_FOR_MOD_WRITE;
1601
1602_Function_class_(FAST_IO_MDL_READ)
1604typedef BOOLEAN
1605(NTAPI FAST_IO_MDL_READ)(
1606 _In_ struct _FILE_OBJECT *FileObject,
1613typedef FAST_IO_MDL_READ *PFAST_IO_MDL_READ;
1614
1615_Function_class_(FAST_IO_MDL_READ_COMPLETE)
1617typedef BOOLEAN
1618(NTAPI FAST_IO_MDL_READ_COMPLETE)(
1619 _In_ struct _FILE_OBJECT *FileObject,
1622typedef FAST_IO_MDL_READ_COMPLETE *PFAST_IO_MDL_READ_COMPLETE;
1623
1624_Function_class_(FAST_IO_PREPARE_MDL_WRITE)
1626typedef BOOLEAN
1627(NTAPI FAST_IO_PREPARE_MDL_WRITE)(
1628 _In_ struct _FILE_OBJECT *FileObject,
1635typedef FAST_IO_PREPARE_MDL_WRITE *PFAST_IO_PREPARE_MDL_WRITE;
1636
1637_Function_class_(FAST_IO_MDL_WRITE_COMPLETE)
1639typedef BOOLEAN
1640(NTAPI FAST_IO_MDL_WRITE_COMPLETE)(
1641 _In_ struct _FILE_OBJECT *FileObject,
1645typedef FAST_IO_MDL_WRITE_COMPLETE *PFAST_IO_MDL_WRITE_COMPLETE;
1646
1647_Function_class_(FAST_IO_READ_COMPRESSED)
1649typedef BOOLEAN
1650(NTAPI FAST_IO_READ_COMPRESSED)(
1651 _In_ struct _FILE_OBJECT *FileObject,
1661typedef FAST_IO_READ_COMPRESSED *PFAST_IO_READ_COMPRESSED;
1662
1663_Function_class_(FAST_IO_WRITE_COMPRESSED)
1665typedef BOOLEAN
1666(NTAPI FAST_IO_WRITE_COMPRESSED)(
1667 _In_ struct _FILE_OBJECT *FileObject,
1677typedef FAST_IO_WRITE_COMPRESSED *PFAST_IO_WRITE_COMPRESSED;
1678
1679_Function_class_(FAST_IO_MDL_READ_COMPLETE_COMPRESSED)
1681typedef BOOLEAN
1682(NTAPI FAST_IO_MDL_READ_COMPLETE_COMPRESSED)(
1683 _In_ struct _FILE_OBJECT *FileObject,
1686typedef FAST_IO_MDL_READ_COMPLETE_COMPRESSED *PFAST_IO_MDL_READ_COMPLETE_COMPRESSED;
1687
1688_Function_class_(FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED)
1690typedef BOOLEAN
1691(NTAPI FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED)(
1692 _In_ struct _FILE_OBJECT *FileObject,
1696typedef FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED *PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED;
1697
1698_Function_class_(FAST_IO_QUERY_OPEN)
1700typedef BOOLEAN
1701(NTAPI FAST_IO_QUERY_OPEN)(
1702 _Inout_ struct _IRP *Irp,
1705typedef FAST_IO_QUERY_OPEN *PFAST_IO_QUERY_OPEN;
1706
1707_Function_class_(FAST_IO_RELEASE_FOR_MOD_WRITE)
1709typedef NTSTATUS
1710(NTAPI FAST_IO_RELEASE_FOR_MOD_WRITE)(
1711 _In_ struct _FILE_OBJECT *FileObject,
1714typedef FAST_IO_RELEASE_FOR_MOD_WRITE *PFAST_IO_RELEASE_FOR_MOD_WRITE;
1715
1716_Function_class_(FAST_IO_ACQUIRE_FOR_CCFLUSH)
1718typedef NTSTATUS
1719(NTAPI FAST_IO_ACQUIRE_FOR_CCFLUSH)(
1720 _In_ struct _FILE_OBJECT *FileObject,
1722typedef FAST_IO_ACQUIRE_FOR_CCFLUSH *PFAST_IO_ACQUIRE_FOR_CCFLUSH;
1723
1724_Function_class_(FAST_IO_RELEASE_FOR_CCFLUSH)
1726typedef NTSTATUS
1727(NTAPI FAST_IO_RELEASE_FOR_CCFLUSH)(
1728 _In_ struct _FILE_OBJECT *FileObject,
1730typedef FAST_IO_RELEASE_FOR_CCFLUSH *PFAST_IO_RELEASE_FOR_CCFLUSH;
1731
1732typedef struct _FAST_IO_DISPATCH {
1762
1763typedef struct _SECTION_OBJECT_POINTERS {
1764 PVOID DataSectionObject;
1765 PVOID SharedCacheMap;
1766 PVOID ImageSectionObject;
1768
1773
1774/* FILE_OBJECT.Flags */
1775#define FO_FILE_OPEN 0x00000001
1776#define FO_SYNCHRONOUS_IO 0x00000002
1777#define FO_ALERTABLE_IO 0x00000004
1778#define FO_NO_INTERMEDIATE_BUFFERING 0x00000008
1779#define FO_WRITE_THROUGH 0x00000010
1780#define FO_SEQUENTIAL_ONLY 0x00000020
1781#define FO_CACHE_SUPPORTED 0x00000040
1782#define FO_NAMED_PIPE 0x00000080
1783#define FO_STREAM_FILE 0x00000100
1784#define FO_MAILSLOT 0x00000200
1785#define FO_GENERATE_AUDIT_ON_CLOSE 0x00000400
1786#define FO_QUEUE_IRP_TO_THREAD 0x00000400
1787#define FO_DIRECT_DEVICE_OPEN 0x00000800
1788#define FO_FILE_MODIFIED 0x00001000
1789#define FO_FILE_SIZE_CHANGED 0x00002000
1790#define FO_CLEANUP_COMPLETE 0x00004000
1791#define FO_TEMPORARY_FILE 0x00008000
1792#define FO_DELETE_ON_CLOSE 0x00010000
1793#define FO_OPENED_CASE_SENSITIVE 0x00020000
1794#define FO_HANDLE_CREATED 0x00040000
1795#define FO_FILE_FAST_IO_READ 0x00080000
1796#define FO_RANDOM_ACCESS 0x00100000
1797#define FO_FILE_OPEN_CANCELLED 0x00200000
1798#define FO_VOLUME_OPEN 0x00400000
1799#define FO_REMOTE_ORIGIN 0x01000000
1800#define FO_DISALLOW_EXCLUSIVE 0x02000000
1801#define FO_SKIP_COMPLETION_PORT 0x02000000
1802#define FO_SKIP_SET_EVENT 0x04000000
1803#define FO_SKIP_SET_FAST_IO 0x08000000
1804#define FO_FLAGS_VALID_ONLY_DURING_CREATE FO_DISALLOW_EXCLUSIVE
1805
1806/* VPB.Flags */
1807#define VPB_MOUNTED 0x0001
1808#define VPB_LOCKED 0x0002
1809#define VPB_PERSISTENT 0x0004
1810#define VPB_REMOVE_PENDING 0x0008
1811#define VPB_RAW_MOUNT 0x0010
1812#define VPB_DIRECT_WRITES_ALLOWED 0x0020
1813
1814/* IO_STACK_LOCATION.Flags */
1815
1816#define SL_FORCE_ACCESS_CHECK 0x01
1817#define SL_OPEN_PAGING_FILE 0x02
1818#define SL_OPEN_TARGET_DIRECTORY 0x04
1819#define SL_STOP_ON_SYMLINK 0x08
1820#define SL_CASE_SENSITIVE 0x80
1821
1822#define SL_KEY_SPECIFIED 0x01
1823#define SL_OVERRIDE_VERIFY_VOLUME 0x02
1824#define SL_WRITE_THROUGH 0x04
1825#define SL_FT_SEQUENTIAL_WRITE 0x08
1826#define SL_FORCE_DIRECT_WRITE 0x10
1827#define SL_REALTIME_STREAM 0x20
1828
1829#define SL_READ_ACCESS_GRANTED 0x01
1830#define SL_WRITE_ACCESS_GRANTED 0x04
1831
1832#define SL_FAIL_IMMEDIATELY 0x01
1833#define SL_EXCLUSIVE_LOCK 0x02
1834
1835#define SL_RESTART_SCAN 0x01
1836#define SL_RETURN_SINGLE_ENTRY 0x02
1837#define SL_INDEX_SPECIFIED 0x04
1838
1839#define SL_WATCH_TREE 0x01
1840
1841#define SL_ALLOW_RAW_MOUNT 0x01
1842
1845#define CTL_CODE(DeviceType, Function, Method, Access) \
1846 (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
1847
1848#define DEVICE_TYPE_FROM_CTL_CODE(ctl) (((ULONG) (ctl & 0xffff0000)) >> 16)
1849
1850#define METHOD_FROM_CTL_CODE(ctrlCode) ((ULONG)(ctrlCode & 3))
1851
1853$if (_WDMDDK_)
1854
1855/* IRP.Flags */
1856#define IRP_NOCACHE 0x00000001
1857#define IRP_PAGING_IO 0x00000002
1858#define IRP_MOUNT_COMPLETION 0x00000002
1859#define IRP_SYNCHRONOUS_API 0x00000004
1860#define IRP_ASSOCIATED_IRP 0x00000008
1861#define IRP_BUFFERED_IO 0x00000010
1862#define IRP_DEALLOCATE_BUFFER 0x00000020
1863#define IRP_INPUT_OPERATION 0x00000040
1864#define IRP_SYNCHRONOUS_PAGING_IO 0x00000040
1865#define IRP_CREATE_OPERATION 0x00000080
1866#define IRP_READ_OPERATION 0x00000100
1867#define IRP_WRITE_OPERATION 0x00000200
1868#define IRP_CLOSE_OPERATION 0x00000400
1869#define IRP_DEFER_IO_COMPLETION 0x00000800
1870#define IRP_OB_QUERY_NAME 0x00001000
1871#define IRP_HOLD_DEVICE_QUEUE 0x00002000
1872/* The following 2 are missing in latest WDK */
1873#define IRP_RETRY_IO_COMPLETION 0x00004000
1874#define IRP_CLASS_CACHE_OPERATION 0x00008000
1875
1876/* IRP.AllocationFlags */
1877#define IRP_QUOTA_CHARGED 0x01
1878#define IRP_ALLOCATED_MUST_SUCCEED 0x02
1879#define IRP_ALLOCATED_FIXED_SIZE 0x04
1880#define IRP_LOOKASIDE_ALLOCATION 0x08
1881
1882/*
1883** IRP function codes
1884*/
1885
1886#define IRP_MJ_CREATE 0x00
1887#define IRP_MJ_CREATE_NAMED_PIPE 0x01
1888#define IRP_MJ_CLOSE 0x02
1889#define IRP_MJ_READ 0x03
1890#define IRP_MJ_WRITE 0x04
1891#define IRP_MJ_QUERY_INFORMATION 0x05
1892#define IRP_MJ_SET_INFORMATION 0x06
1893#define IRP_MJ_QUERY_EA 0x07
1894#define IRP_MJ_SET_EA 0x08
1895#define IRP_MJ_FLUSH_BUFFERS 0x09
1896#define IRP_MJ_QUERY_VOLUME_INFORMATION 0x0a
1897#define IRP_MJ_SET_VOLUME_INFORMATION 0x0b
1898#define IRP_MJ_DIRECTORY_CONTROL 0x0c
1899#define IRP_MJ_FILE_SYSTEM_CONTROL 0x0d
1900#define IRP_MJ_DEVICE_CONTROL 0x0e
1901#define IRP_MJ_INTERNAL_DEVICE_CONTROL 0x0f
1902#define IRP_MJ_SCSI 0x0f
1903#define IRP_MJ_SHUTDOWN 0x10
1904#define IRP_MJ_LOCK_CONTROL 0x11
1905#define IRP_MJ_CLEANUP 0x12
1906#define IRP_MJ_CREATE_MAILSLOT 0x13
1907#define IRP_MJ_QUERY_SECURITY 0x14
1908#define IRP_MJ_SET_SECURITY 0x15
1909#define IRP_MJ_POWER 0x16
1910#define IRP_MJ_SYSTEM_CONTROL 0x17
1911#define IRP_MJ_DEVICE_CHANGE 0x18
1912#define IRP_MJ_QUERY_QUOTA 0x19
1913#define IRP_MJ_SET_QUOTA 0x1a
1914#define IRP_MJ_PNP 0x1b
1915#define IRP_MJ_PNP_POWER 0x1b
1916#define IRP_MJ_MAXIMUM_FUNCTION 0x1b
1917
1918#define IRP_MN_SCSI_CLASS 0x01
1919
1920#define IRP_MN_START_DEVICE 0x00
1921#define IRP_MN_QUERY_REMOVE_DEVICE 0x01
1922#define IRP_MN_REMOVE_DEVICE 0x02
1923#define IRP_MN_CANCEL_REMOVE_DEVICE 0x03
1924#define IRP_MN_STOP_DEVICE 0x04
1925#define IRP_MN_QUERY_STOP_DEVICE 0x05
1926#define IRP_MN_CANCEL_STOP_DEVICE 0x06
1927
1928#define IRP_MN_QUERY_DEVICE_RELATIONS 0x07
1929#define IRP_MN_QUERY_INTERFACE 0x08
1930#define IRP_MN_QUERY_CAPABILITIES 0x09
1931#define IRP_MN_QUERY_RESOURCES 0x0A
1932#define IRP_MN_QUERY_RESOURCE_REQUIREMENTS 0x0B
1933#define IRP_MN_QUERY_DEVICE_TEXT 0x0C
1934#define IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D
1935
1936#define IRP_MN_READ_CONFIG 0x0F
1937#define IRP_MN_WRITE_CONFIG 0x10
1938#define IRP_MN_EJECT 0x11
1939#define IRP_MN_SET_LOCK 0x12
1940#define IRP_MN_QUERY_ID 0x13
1941#define IRP_MN_QUERY_PNP_DEVICE_STATE 0x14
1942#define IRP_MN_QUERY_BUS_INFORMATION 0x15
1943#define IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16
1944#define IRP_MN_SURPRISE_REMOVAL 0x17
1945#if (NTDDI_VERSION >= NTDDI_WIN7)
1946#define IRP_MN_DEVICE_ENUMERATED 0x19
1947#endif
1948
1949#define IRP_MN_WAIT_WAKE 0x00
1950#define IRP_MN_POWER_SEQUENCE 0x01
1951#define IRP_MN_SET_POWER 0x02
1952#define IRP_MN_QUERY_POWER 0x03
1953
1954#define IRP_MN_QUERY_ALL_DATA 0x00
1955#define IRP_MN_QUERY_SINGLE_INSTANCE 0x01
1956#define IRP_MN_CHANGE_SINGLE_INSTANCE 0x02
1957#define IRP_MN_CHANGE_SINGLE_ITEM 0x03
1958#define IRP_MN_ENABLE_EVENTS 0x04
1959#define IRP_MN_DISABLE_EVENTS 0x05
1960#define IRP_MN_ENABLE_COLLECTION 0x06
1961#define IRP_MN_DISABLE_COLLECTION 0x07
1962#define IRP_MN_REGINFO 0x08
1963#define IRP_MN_EXECUTE_METHOD 0x09
1964
1965#define IRP_MN_REGINFO_EX 0x0b
1966
1967typedef struct _FILE_OBJECT {
1968 CSHORT Type;
1969 CSHORT Size;
1971 PVPB Vpb;
1973 PVOID FsContext2;
1975 PVOID PrivateCacheMap;
1976 NTSTATUS FinalStatus;
1977 struct _FILE_OBJECT *RelatedFileObject;
1978 BOOLEAN LockOperation;
1979 BOOLEAN DeletePending;
1982 BOOLEAN DeleteAccess;
1983 BOOLEAN SharedRead;
1984 BOOLEAN SharedWrite;
1985 BOOLEAN SharedDelete;
1986 ULONG Flags;
1988 LARGE_INTEGER CurrentByteOffset;
1989 volatile ULONG Waiters;
1990 volatile ULONG Busy;
1991 PVOID LastLock;
1992 KEVENT Lock;
1993 KEVENT Event;
1995 KSPIN_LOCK IrpListLock;
1996 LIST_ENTRY IrpList;
1997 volatile PVOID FileObjectExtension;
1999
2000typedef struct _IO_ERROR_LOG_PACKET {
2015
2024
2025/* See ndk/lpctypes.h */
2026#ifdef _WIN64
2027#define PORT_MAXIMUM_MESSAGE_LENGTH 512
2028#else
2029#define PORT_MAXIMUM_MESSAGE_LENGTH 256
2030#endif
2031
2032#define ERROR_LOG_LIMIT_SIZE 240
2033#define IO_ERROR_LOG_MESSAGE_HEADER_LENGTH (sizeof(IO_ERROR_LOG_MESSAGE) - \
2034 sizeof(IO_ERROR_LOG_PACKET) + \
2035 (sizeof(WCHAR) * 40))
2036#define ERROR_LOG_MESSAGE_LIMIT_SIZE \
2037 (ERROR_LOG_LIMIT_SIZE + IO_ERROR_LOG_MESSAGE_HEADER_LENGTH)
2038#define IO_ERROR_LOG_MESSAGE_LENGTH \
2039 ((PORT_MAXIMUM_MESSAGE_LENGTH > ERROR_LOG_MESSAGE_LIMIT_SIZE) ? \
2040 ERROR_LOG_MESSAGE_LIMIT_SIZE : \
2041 PORT_MAXIMUM_MESSAGE_LENGTH)
2042#define ERROR_LOG_MAXIMUM_SIZE (IO_ERROR_LOG_MESSAGE_LENGTH - \
2043 IO_ERROR_LOG_MESSAGE_HEADER_LENGTH)
2044
2045typedef enum _DMA_WIDTH {
2051
2052typedef enum _DMA_SPEED {
2060
2061/* DEVICE_DESCRIPTION.Version */
2062
2063#define DEVICE_DESCRIPTION_VERSION 0x0000
2064#define DEVICE_DESCRIPTION_VERSION1 0x0001
2065#define DEVICE_DESCRIPTION_VERSION2 0x0002
2066#define DEVICE_DESCRIPTION_VERSION3 0x0003
2067
2068typedef struct _DEVICE_DESCRIPTION {
2085#if (NTDDI_VERSION >= NTDDI_WIN8)
2090#endif // NTDDI_WIN8
2092
2093#define DMA_ADAPTER_INFO_VERSION1 1
2094
2095#define ADAPTER_INFO_SYNCHRONOUS_CALLBACK 0x0001
2096#define ADAPTER_INFO_API_BYPASS 0x0002
2097
2099{
2106
2107typedef struct _DMA_ADAPTER_INFO
2108{
2110 union
2111 {
2113 };
2115
2116#define DMA_TRANSFER_INFO_VERSION1 1
2117#define DMA_TRANSFER_INFO_VERSION2 2
2118
2120{
2125
2127{
2133
2135{
2137 union {
2140 };
2142
2143#define DMA_TRANSFER_CONTEXT_VERSION1 1
2144
2145#ifdef _WIN64
2146#define DMA_TRANSFER_CONTEXT_SIZE_V1 128
2147#else
2148#define DMA_TRANSFER_CONTEXT_SIZE_V1 64
2149#endif
2150
2151#define DMA_SYNCHRONOUS_CALLBACK 0x01
2152
2162
2163typedef struct _DEVICE_RELATIONS {
2165 PDEVICE_OBJECT Objects[1];
2167
2168typedef struct _DEVOBJ_EXTENSION {
2177 __volatile LONG StartIoCount;
2186
2192
2193#if defined(_MSC_EXTENSIONS) || defined(__GNUC__)
2194
2195#if defined(_MSC_VER)
2196#if _MSC_VER >= 1200
2197#pragma warning(push)
2198#endif
2199#pragma warning(disable:4200)
2200#endif /* _MSC_VER */
2201
2202typedef struct _SCATTER_GATHER_LIST {
2203 ULONG NumberOfElements;
2205 SCATTER_GATHER_ELEMENT Elements[1];
2207
2208#if defined(_MSC_VER)
2209#if _MSC_VER >= 1200
2210#pragma warning(pop)
2211#else
2212#pragma warning(default:4200)
2213#endif
2214#endif /* _MSC_VER */
2215
2216#else /* defined(_MSC_EXTENSIONS) || defined(__GNUC__) */
2217
2218struct _SCATTER_GATHER_LIST;
2219typedef struct _SCATTER_GATHER_LIST SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
2220
2221#endif /* defined(_MSC_EXTENSIONS) || defined(__GNUC__) */
2222
2223_Function_class_(DRIVER_ADD_DEVICE)
2227typedef NTSTATUS
2228(NTAPI DRIVER_ADD_DEVICE)(
2231typedef DRIVER_ADD_DEVICE *PDRIVER_ADD_DEVICE;
2232
2233typedef struct _DRIVER_EXTENSION {
2239
2240#define DRVO_UNLOAD_INVOKED 0x00000001
2241#define DRVO_LEGACY_DRIVER 0x00000002
2242#define DRVO_BUILTIN_DRIVER 0x00000004
2243
2244_Function_class_(DRIVER_INITIALIZE)
2246typedef NTSTATUS
2247(NTAPI DRIVER_INITIALIZE)(
2250typedef DRIVER_INITIALIZE *PDRIVER_INITIALIZE;
2251
2252_Function_class_(DRIVER_STARTIO)
2256typedef VOID
2257(NTAPI DRIVER_STARTIO)(
2259 _Inout_ struct _IRP *Irp);
2260typedef DRIVER_STARTIO *PDRIVER_STARTIO;
2261
2262_Function_class_(DRIVER_UNLOAD)
2265typedef VOID
2266(NTAPI DRIVER_UNLOAD)(
2268typedef DRIVER_UNLOAD *PDRIVER_UNLOAD;
2269
2273typedef NTSTATUS
2276 _Inout_ struct _IRP *Irp);
2279
2283typedef NTSTATUS
2284(NTAPI DRIVER_DISPATCH_PAGED)(
2286 _Inout_ struct _IRP *Irp);
2287typedef DRIVER_DISPATCH_PAGED *PDRIVER_DISPATCH_PAGED;
2288
2289typedef struct _DRIVER_OBJECT {
2306
2307typedef struct _DMA_ADAPTER {
2312
2313typedef enum
2314{
2320
2321typedef VOID
2323 PDMA_ADAPTER DmaAdapter);
2324
2325typedef PVOID
2327 _In_ PDMA_ADAPTER DmaAdapter,
2329 _Out_ PPHYSICAL_ADDRESS LogicalAddress,
2330 _In_ BOOLEAN CacheEnabled);
2331
2332typedef VOID
2334 _In_ PDMA_ADAPTER DmaAdapter,
2336 _In_ PHYSICAL_ADDRESS LogicalAddress,
2338 _In_ BOOLEAN CacheEnabled);
2339
2342 _In_ PDMA_ADAPTER DmaAdapter,
2347
2348typedef BOOLEAN
2350 _In_ PDMA_ADAPTER DmaAdapter,
2351 _In_ PMDL Mdl,
2353 _In_ PVOID CurrentVa,
2356
2357typedef VOID
2359 _In_ PDMA_ADAPTER DmaAdapter);
2360
2361typedef VOID
2363 _In_ PDMA_ADAPTER DmaAdapter,
2366
2369 _In_ PDMA_ADAPTER DmaAdapter,
2370 _In_ PMDL Mdl,
2372 _In_ PVOID CurrentVa,
2375
2376typedef ULONG
2378 _In_ PDMA_ADAPTER DmaAdapter);
2379
2380typedef ULONG
2382 _In_ PDMA_ADAPTER DmaAdapter);
2383
2384_Function_class_(DRIVER_LIST_CONTROL)
2386typedef VOID
2387(NTAPI DRIVER_LIST_CONTROL)(
2389 _In_ struct _IRP *Irp,
2390 _In_ struct _SCATTER_GATHER_LIST *ScatterGather,
2392typedef DRIVER_LIST_CONTROL *PDRIVER_LIST_CONTROL;
2393
2396 _In_ PDMA_ADAPTER DmaAdapter,
2398 _In_ PMDL Mdl,
2399 _In_ PVOID CurrentVa,
2404
2405typedef VOID
2407 _In_ PDMA_ADAPTER DmaAdapter,
2410
2413 _In_ PDMA_ADAPTER DmaAdapter,
2415 _In_ PVOID CurrentVa,
2417 _Out_ PULONG ScatterGatherListSize,
2418 _Out_ OPTIONAL PULONG pNumberOfMapRegisters);
2419
2422 _In_ PDMA_ADAPTER DmaAdapter,
2424 _In_ PMDL Mdl,
2425 _In_ PVOID CurrentVa,
2430 _In_ PVOID ScatterGatherBuffer,
2431 _In_ ULONG ScatterGatherLength);
2432
2435 _In_ PDMA_ADAPTER DmaAdapter,
2437 _In_ PMDL OriginalMdl,
2439
2442 _In_ PDMA_ADAPTER DmaAdapter,
2443 _Inout_ PDMA_ADAPTER_INFO AdapterInfo);
2444
2447 _In_ PDMA_ADAPTER DmaAdapter,
2448 _In_ PMDL Mdl,
2451 _In_ BOOLEAN WriteOnly,
2452 _Inout_ PDMA_TRANSFER_INFO TransferInfo);
2453
2456 _In_ PDMA_ADAPTER DmaAdapter,
2457 _Out_ PVOID DmaTransferContext);
2458
2459typedef PVOID
2461 _In_ PDMA_ADAPTER DmaAdapter,
2464 _Out_ PPHYSICAL_ADDRESS LogicalAddress,
2465 _In_ BOOLEAN CacheEnabled,
2466 _In_ NODE_REQUIREMENT PreferredNode);
2467
2470 _In_ PDMA_ADAPTER DmaAdapter,
2472 _In_ PVOID DmaTransferContext,
2476 _In_opt_ PVOID ExecutionContext,
2478
2481 _In_ PDMA_ADAPTER DmaAdapter,
2482 _In_ ULONG FunctionNumber,
2484
2485typedef BOOLEAN
2487 _In_ PDMA_ADAPTER DmaAdapter,
2489 _In_ PVOID DmaTransferContext);
2490
2491typedef
2492_Function_class_(DMA_COMPLETION_ROUTINE)
2495VOID
2496NTAPI
2497DMA_COMPLETION_ROUTINE(
2498 _In_ PDMA_ADAPTER DmaAdapter,
2502
2503typedef DMA_COMPLETION_ROUTINE *PDMA_COMPLETION_ROUTINE;
2504
2507 _In_ PDMA_ADAPTER DmaAdapter,
2508 _In_ PMDL Mdl,
2514 _Out_writes_bytes_opt_(ScatterGatherBufferLength) PSCATTER_GATHER_LIST ScatterGatherBuffer,
2515 _In_ ULONG ScatterGatherBufferLength,
2518
2521 _In_ PDMA_ADAPTER DmaAdapter,
2523 _In_ PVOID DmaTransferContext,
2524 _In_ PMDL Mdl,
2533 _Out_opt_ PSCATTER_GATHER_LIST *ScatterGatherList);
2534
2537 _In_ PDMA_ADAPTER DmaAdapter,
2539 _In_ PVOID DmaTransferContext,
2540 _In_ PMDL Mdl,
2547 _In_ PVOID ScatterGatherBuffer,
2548 _In_ ULONG ScatterGatherLength,
2551 _Out_opt_ PVOID ScatterGatherList);
2552
2555 _In_ PDMA_ADAPTER DmaAdapter,
2556 _In_ PMDL Mdl,
2561
2562typedef VOID
2564 _In_ PDMA_ADAPTER DmaAdapter,
2565 _In_ IO_ALLOCATION_ACTION AllocationAction);
2566
2569 _In_ PDMA_ADAPTER DmaAdapter,
2570 _In_ PVOID DmaTransferContext);
2571
2574 _In_ PDMA_ADAPTER DmaAdapter,
2575 _In_ HANDLE DomainHandle,
2580 _In_ NODE_REQUIREMENT PreferredNode,
2581 _Out_ PPHYSICAL_ADDRESS LogicalAddress,
2583
2586 _In_ PDMA_ADAPTER DmaAdapter,
2587 _In_ PMDL Mdl,
2588 _In_ BOOLEAN ReadOperation);
2589
2592 _In_ PDMA_ADAPTER DmaAdapter,
2593 _In_ HANDLE DomainHandle);
2594
2597 _In_ PDMA_ADAPTER DmaAdapter);
2598
2599typedef HANDLE
2601 _In_ PDMA_ADAPTER DmaAdapter);
2602
2603typedef PVOID
2605 _In_ PDMA_ADAPTER DmaAdapter,
2611 _In_ NODE_REQUIREMENT PreferredNode,
2612 _Out_ PPHYSICAL_ADDRESS LogicalAddress);
2613
2614typedef struct _DMA_COMMON_BUFFER_VECTOR DMA_COMMON_BUFFER_VECTOR, *PDMA_COMMON_BUFFER_VECTOR;
2615
2618 _In_ PDMA_ADAPTER DmaAdapter,
2619 _In_ PHYSICAL_ADDRESS LowAddress,
2622 _In_ ULONG IdealNode,
2624 _In_ ULONG NumberOfElements,
2625 _In_ ULONGLONG SizeOfElements,
2626 _Out_ PDMA_COMMON_BUFFER_VECTOR *VectorOut);
2627
2628typedef VOID
2630 _In_ PDMA_ADAPTER DmaAdapter,
2633 _Out_ PVOID *VirtualAddressOut,
2634 _Out_ PPHYSICAL_ADDRESS LogicalAddressOut);
2635
2636typedef VOID
2638 _In_ PDMA_ADAPTER DmaAdapter,
2640 _In_ ULONG Index);
2641
2642typedef VOID
2644 _In_ PDMA_ADAPTER DmaAdapter,
2646
2647typedef struct _DMA_OPERATIONS {
2688
2689typedef struct _IO_RESOURCE_DESCRIPTOR {
2690 UCHAR Option;
2691 UCHAR Type;
2692 UCHAR ShareDisposition;
2693 UCHAR Spare1;
2694 USHORT Flags;
2695 USHORT Spare2;
2696 union {
2697 struct {
2698 ULONG Length;
2703 struct {
2704 ULONG Length;
2709 struct {
2710 ULONG MinimumVector;
2711 ULONG MaximumVector;
2712#if defined(NT_PROCESSOR_GROUPS)
2713 IRQ_DEVICE_POLICY AffinityPolicy;
2714 USHORT Group;
2715#else
2716 IRQ_DEVICE_POLICY AffinityPolicy;
2717#endif
2718 IRQ_PRIORITY PriorityPolicy;
2719 KAFFINITY TargetedProcessors;
2721 struct {
2722 ULONG MinimumChannel;
2723 ULONG MaximumChannel;
2724 } Dma;
2725 struct {
2726 ULONG Length;
2730 } Generic;
2731 struct {
2732 ULONG Data[3];
2733 } DevicePrivate;
2734 struct {
2735 ULONG Length;
2736 ULONG MinBusNumber;
2737 ULONG MaxBusNumber;
2740 struct {
2744 } ConfigData;
2745 } u;
2747
2748typedef struct _IO_RESOURCE_LIST {
2754
2764
2765_Function_class_(DRIVER_CANCEL)
2766_Requires_lock_held_(_Global_cancel_spin_lock_)
2767_Releases_lock_(_Global_cancel_spin_lock_)
2770typedef VOID
2771(NTAPI DRIVER_CANCEL)(
2774typedef DRIVER_CANCEL *PDRIVER_CANCEL;
2775
2776typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _IRP {
2777 CSHORT Type;
2778 USHORT Size;
2779 struct _MDL *MdlAddress;
2780 ULONG Flags;
2781 union {
2782 struct _IRP *MasterIrp;
2783 volatile LONG IrpCount;
2784 PVOID SystemBuffer;
2785 } AssociatedIrp;
2786 LIST_ENTRY ThreadListEntry;
2788 KPROCESSOR_MODE RequestorMode;
2789 BOOLEAN PendingReturned;
2790 CHAR StackCount;
2791 CHAR CurrentLocation;
2793 KIRQL CancelIrql;
2794 CCHAR ApcEnvironment;
2795 UCHAR AllocationFlags;
2796 PIO_STATUS_BLOCK UserIosb;
2797 PKEVENT UserEvent;
2798 union {
2799 struct {
2800 _ANONYMOUS_UNION union {
2801 PIO_APC_ROUTINE UserApcRoutine;
2802 PVOID IssuingProcess;
2804 PVOID UserApcContext;
2805 } AsynchronousParameters;
2807 } Overlay;
2809 PVOID UserBuffer;
2810 union {
2811 struct {
2812 _ANONYMOUS_UNION union {
2814 _ANONYMOUS_STRUCT struct {
2819 PCHAR AuxiliaryBuffer;
2820 _ANONYMOUS_STRUCT struct {
2821 LIST_ENTRY ListEntry;
2822 _ANONYMOUS_UNION union {
2823 struct _IO_STACK_LOCATION *CurrentStackLocation;
2824 ULONG PacketType;
2827 struct _FILE_OBJECT *OriginalFileObject;
2828 } Overlay;
2829 KAPC Apc;
2830 PVOID CompletionKey;
2831 } Tail;
2833
2841
2842_Function_class_(IO_COMPLETION_ROUTINE)
2845typedef NTSTATUS
2846(NTAPI IO_COMPLETION_ROUTINE)(
2848 _In_ struct _IRP *Irp,
2849 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context);
2850typedef IO_COMPLETION_ROUTINE *PIO_COMPLETION_ROUTINE;
2851
2852_Function_class_(IO_DPC_ROUTINE)
2856typedef VOID
2857(NTAPI IO_DPC_ROUTINE)(
2862typedef IO_DPC_ROUTINE *PIO_DPC_ROUTINE;
2863
2867
2870 VOID);
2871
2872_Function_class_(IO_TIMER_ROUTINE)
2874typedef VOID
2875(NTAPI IO_TIMER_ROUTINE)(
2878typedef IO_TIMER_ROUTINE *PIO_TIMER_ROUTINE;
2879
2886
2887struct _IO_CSQ;
2888
2889typedef struct _IO_CSQ_IRP_CONTEXT {
2890 ULONG Type;
2891 struct _IRP *Irp;
2892 struct _IO_CSQ *Csq;
2894
2895typedef VOID
2896(NTAPI IO_CSQ_INSERT_IRP)(
2897 _In_ struct _IO_CSQ *Csq,
2899typedef IO_CSQ_INSERT_IRP *PIO_CSQ_INSERT_IRP;
2900
2901typedef NTSTATUS
2902(NTAPI IO_CSQ_INSERT_IRP_EX)(
2903 _In_ struct _IO_CSQ *Csq,
2904 _In_ PIRP Irp,
2906typedef IO_CSQ_INSERT_IRP_EX *PIO_CSQ_INSERT_IRP_EX;
2907
2908typedef VOID
2909(NTAPI IO_CSQ_REMOVE_IRP)(
2910 _In_ struct _IO_CSQ *Csq,
2911 _In_ PIRP Irp);
2912typedef IO_CSQ_REMOVE_IRP *PIO_CSQ_REMOVE_IRP;
2913
2914typedef PIRP
2915(NTAPI IO_CSQ_PEEK_NEXT_IRP)(
2916 _In_ struct _IO_CSQ *Csq,
2917 _In_ PIRP Irp,
2919typedef IO_CSQ_PEEK_NEXT_IRP *PIO_CSQ_PEEK_NEXT_IRP;
2920
2921typedef VOID
2922(NTAPI IO_CSQ_ACQUIRE_LOCK)(
2923 _In_ struct _IO_CSQ *Csq,
2925typedef IO_CSQ_ACQUIRE_LOCK *PIO_CSQ_ACQUIRE_LOCK;
2926
2927typedef VOID
2928(NTAPI IO_CSQ_RELEASE_LOCK)(
2929 _In_ struct _IO_CSQ *Csq,
2930 _In_ KIRQL Irql);
2931typedef IO_CSQ_RELEASE_LOCK *PIO_CSQ_RELEASE_LOCK;
2932
2933typedef VOID
2934(NTAPI IO_CSQ_COMPLETE_CANCELED_IRP)(
2935 _In_ struct _IO_CSQ *Csq,
2936 _In_ PIRP Irp);
2937typedef IO_CSQ_COMPLETE_CANCELED_IRP *PIO_CSQ_COMPLETE_CANCELED_IRP;
2938
2939typedef struct _IO_CSQ {
2940 ULONG Type;
2947 PVOID ReservePointer;
2949
2958
2959typedef enum _DEVICE_TEXT_TYPE {
2963
2964typedef BOOLEAN
2966 PVOID,
2967 PVOID);
2968
2971typedef NTSTATUS
2972(NTAPI *PGPE_CONNECT_VECTOR)(
2979 PVOID);
2980
2983typedef NTSTATUS
2984(NTAPI *PGPE_DISCONNECT_VECTOR)(
2985 PVOID);
2986
2989typedef NTSTATUS
2990(NTAPI *PGPE_ENABLE_EVENT)(
2992 PVOID);
2993
2996typedef NTSTATUS
2997(NTAPI *PGPE_DISABLE_EVENT)(
2999 PVOID);
3000
3003typedef NTSTATUS
3004(NTAPI *PGPE_CLEAR_STATUS)(
3006 PVOID);
3007
3008typedef VOID
3010 PVOID,
3011 ULONG);
3012
3015typedef NTSTATUS
3016(NTAPI *PREGISTER_FOR_DEVICE_NOTIFICATIONS)(
3019 PVOID);
3020
3022typedef VOID
3023(NTAPI *PUNREGISTER_FOR_DEVICE_NOTIFICATIONS)(
3026
3033 PGPE_CONNECT_VECTOR GpeConnectVector;
3034 PGPE_DISCONNECT_VECTOR GpeDisconnectVector;
3035 PGPE_ENABLE_EVENT GpeEnableEvent;
3036 PGPE_DISABLE_EVENT GpeDisableEvent;
3037 PGPE_CLEAR_STATUS GpeClearStatus;
3038 PREGISTER_FOR_DEVICE_NOTIFICATIONS RegisterForDeviceNotifications;
3039 PUNREGISTER_FOR_DEVICE_NOTIFICATIONS UnregisterForDeviceNotifications;
3041
3042typedef BOOLEAN
3046
3049typedef NTSTATUS
3050(NTAPI *PGPE_CONNECT_VECTOR2)(
3051 PVOID Context,
3058
3061typedef NTSTATUS
3062(NTAPI *PGPE_DISCONNECT_VECTOR2)(
3063 PVOID Context,
3065
3068typedef NTSTATUS
3069(NTAPI *PGPE_ENABLE_EVENT2)(
3070 PVOID Context,
3072
3075typedef NTSTATUS
3076(NTAPI *PGPE_DISABLE_EVENT2)(
3077 PVOID Context,
3079
3082typedef NTSTATUS
3083(NTAPI *PGPE_CLEAR_STATUS2)(
3084 PVOID Context,
3086
3088typedef VOID
3089(NTAPI *PDEVICE_NOTIFY_CALLBACK2)(
3092
3095typedef NTSTATUS
3096(NTAPI *PREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
3097 PVOID Context,
3098 PDEVICE_NOTIFY_CALLBACK2 NotificationHandler,
3100
3102typedef VOID
3103(NTAPI *PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
3104 PVOID Context);
3105
3112 PGPE_CONNECT_VECTOR2 GpeConnectVector;
3113 PGPE_DISCONNECT_VECTOR2 GpeDisconnectVector;
3114 PGPE_ENABLE_EVENT2 GpeEnableEvent;
3115 PGPE_DISABLE_EVENT2 GpeDisableEvent;
3116 PGPE_CLEAR_STATUS2 GpeClearStatus;
3117 PREGISTER_FOR_DEVICE_NOTIFICATIONS2 RegisterForDeviceNotifications;
3118 PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2 UnregisterForDeviceNotifications;
3120
3121#if !defined(_AMD64_) && !defined(_ARM_)
3122#include <pshpack4.h>
3123#endif
3124
3125typedef struct _IO_STACK_LOCATION {
3130 union {
3131 struct {
3138 struct {
3140 ULONG Options;
3145 struct {
3146 PIO_SECURITY_CONTEXT SecurityContext;
3147 ULONG Options;
3152 struct {
3157 struct {
3158 ULONG Length;
3162 struct {
3163 ULONG Length;
3167 } QueryDirectory;
3168 struct {
3169 ULONG Length;
3171 } NotifyDirectory;
3172 struct {
3173 ULONG Length;
3176 } NotifyDirectoryEx;
3177 struct {
3178 ULONG Length;
3180 } QueryFile;
3181 struct {
3182 ULONG Length;
3185 _ANONYMOUS_UNION union {
3186 _ANONYMOUS_STRUCT struct {
3193 } SetFile;
3194 struct {
3195 ULONG Length;
3199 } QueryEa;
3200 struct {
3201 ULONG Length;
3202 } SetEa;
3203 struct {
3204 ULONG Length;
3206 } QueryVolume;
3207 struct {
3208 ULONG Length;
3210 } SetVolume;
3211 struct {
3216 } FileSystemControl;
3217 struct {
3221 } LockControl;
3222 struct {
3226 PVOID Type3InputBuffer;
3228 struct {
3231 } QuerySecurity;
3232 struct {
3235 } SetSecurity;
3236 struct {
3240 struct {
3241 PVPB Vpb;
3243 } VerifyVolume;
3244 struct {
3246 } Scsi;
3247 struct {
3248 ULONG Length;
3252 } QueryQuota;
3253 struct {
3254 ULONG Length;
3255 } SetQuota;
3256 struct {
3258 } QueryDeviceRelations;
3259 struct {
3266 struct {
3269 struct {
3271 } FilterResourceRequirements;
3272 struct {
3277 } ReadWriteConfig;
3278 struct {
3280 } SetLock;
3281 struct {
3283 } QueryId;
3284 struct {
3287 } QueryDeviceText;
3288 struct {
3292 } UsageNotification;
3293 struct {
3295 } WaitWake;
3296 struct {
3298 } PowerSequence;
3299 struct {
3300 union {
3302#if (NTDDI_VERSION >= NTDDI_VISTA)
3304#endif // (NTDDI_VERSION >= NTDDI_VISTA)
3305 };
3309 } Power;
3310 struct {
3314 struct {
3318 PVOID Buffer;
3319 } WMI;
3320 struct {
3325 } Others;
3332
3333#if !defined(_AMD64_) && !defined(_ARM_)
3334#include "poppack.h"
3335#endif
3336
3337
3338/* IO_STACK_LOCATION.Control */
3339
3340#define SL_PENDING_RETURNED 0x01
3341#define SL_ERROR_RETURNED 0x02
3342#define SL_INVOKE_ON_CANCEL 0x20
3343#define SL_INVOKE_ON_SUCCESS 0x40
3344#define SL_INVOKE_ON_ERROR 0x80
3345
3348#define METHOD_BUFFERED 0
3349#define METHOD_IN_DIRECT 1
3350#define METHOD_OUT_DIRECT 2
3351#define METHOD_NEITHER 3
3352
3353#define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT
3354#define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT
3355
3357$if (_WDMDDK_)
3358#define FILE_SUPERSEDED 0x00000000
3359#define FILE_OPENED 0x00000001
3360#define FILE_CREATED 0x00000002
3361#define FILE_OVERWRITTEN 0x00000003
3362#define FILE_EXISTS 0x00000004
3363#define FILE_DOES_NOT_EXIST 0x00000005
3364
3365#define FILE_USE_FILE_POINTER_POSITION 0xfffffffe
3366#define FILE_WRITE_TO_END_OF_FILE 0xffffffff
3367
3368/* also in winnt.h */
3369#define FILE_LIST_DIRECTORY 0x00000001
3370#define FILE_READ_DATA 0x00000001
3371#define FILE_ADD_FILE 0x00000002
3372#define FILE_WRITE_DATA 0x00000002
3373#define FILE_ADD_SUBDIRECTORY 0x00000004
3374#define FILE_APPEND_DATA 0x00000004
3375#define FILE_CREATE_PIPE_INSTANCE 0x00000004
3376#define FILE_READ_EA 0x00000008
3377#define FILE_WRITE_EA 0x00000010
3378#define FILE_EXECUTE 0x00000020
3379#define FILE_TRAVERSE 0x00000020
3380#define FILE_DELETE_CHILD 0x00000040
3381#define FILE_READ_ATTRIBUTES 0x00000080
3382#define FILE_WRITE_ATTRIBUTES 0x00000100
3383
3384#define FILE_SHARE_READ 0x00000001
3385#define FILE_SHARE_WRITE 0x00000002
3386#define FILE_SHARE_DELETE 0x00000004
3387#define FILE_SHARE_VALID_FLAGS 0x00000007
3388
3389#define FILE_ATTRIBUTE_READONLY 0x00000001
3390#define FILE_ATTRIBUTE_HIDDEN 0x00000002
3391#define FILE_ATTRIBUTE_SYSTEM 0x00000004
3392#define FILE_ATTRIBUTE_DIRECTORY 0x00000010
3393#define FILE_ATTRIBUTE_ARCHIVE 0x00000020
3394#define FILE_ATTRIBUTE_DEVICE 0x00000040
3395#define FILE_ATTRIBUTE_NORMAL 0x00000080
3396#define FILE_ATTRIBUTE_TEMPORARY 0x00000100
3397#define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
3398#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
3399#define FILE_ATTRIBUTE_COMPRESSED 0x00000800
3400#define FILE_ATTRIBUTE_OFFLINE 0x00001000
3401#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
3402#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000
3403#define FILE_ATTRIBUTE_INTEGRITY_STREAM 0x00008000
3404#define FILE_ATTRIBUTE_VIRTUAL 0x00010000
3405
3406#define FILE_ATTRIBUTE_VALID_FLAGS 0x00007fb7
3407#define FILE_ATTRIBUTE_VALID_SET_FLAGS 0x000031a7
3408
3409#define FILE_VALID_OPTION_FLAGS 0x00ffffff
3410#define FILE_VALID_PIPE_OPTION_FLAGS 0x00000032
3411#define FILE_VALID_MAILSLOT_OPTION_FLAGS 0x00000032
3412#define FILE_VALID_SET_FLAGS 0x00000036
3413
3414#define FILE_SUPERSEDE 0x00000000
3415#define FILE_OPEN 0x00000001
3416#define FILE_CREATE 0x00000002
3417#define FILE_OPEN_IF 0x00000003
3418#define FILE_OVERWRITE 0x00000004
3419#define FILE_OVERWRITE_IF 0x00000005
3420#define FILE_MAXIMUM_DISPOSITION 0x00000005
3421
3422#define FILE_DIRECTORY_FILE 0x00000001
3423#define FILE_WRITE_THROUGH 0x00000002
3424#define FILE_SEQUENTIAL_ONLY 0x00000004
3425#define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008
3426#define FILE_SYNCHRONOUS_IO_ALERT 0x00000010
3427#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
3428#define FILE_NON_DIRECTORY_FILE 0x00000040
3429#define FILE_CREATE_TREE_CONNECTION 0x00000080
3430#define FILE_COMPLETE_IF_OPLOCKED 0x00000100
3431#define FILE_NO_EA_KNOWLEDGE 0x00000200
3432#define FILE_OPEN_REMOTE_INSTANCE 0x00000400
3433#define FILE_RANDOM_ACCESS 0x00000800
3434#define FILE_DELETE_ON_CLOSE 0x00001000
3435#define FILE_OPEN_BY_FILE_ID 0x00002000
3436#define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000
3437#define FILE_NO_COMPRESSION 0x00008000
3438#if (NTDDI_VERSION >= NTDDI_WIN7)
3439#define FILE_OPEN_REQUIRING_OPLOCK 0x00010000
3440#define FILE_DISALLOW_EXCLUSIVE 0x00020000
3441#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
3442#define FILE_RESERVE_OPFILTER 0x00100000
3443#define FILE_OPEN_REPARSE_POINT 0x00200000
3444#define FILE_OPEN_NO_RECALL 0x00400000
3445#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000
3446
3449#define FILE_ANY_ACCESS 0x00000000
3450#define FILE_SPECIAL_ACCESS FILE_ANY_ACCESS
3451#define FILE_READ_ACCESS 0x00000001
3452#define FILE_WRITE_ACCESS 0x00000002
3453
3455$if (_WDMDDK_)
3456#define FILE_ALL_ACCESS \
3457 (STANDARD_RIGHTS_REQUIRED | \
3458 SYNCHRONIZE | \
3459 0x1FF)
3460
3461#define FILE_GENERIC_EXECUTE \
3462 (STANDARD_RIGHTS_EXECUTE | \
3463 FILE_READ_ATTRIBUTES | \
3464 FILE_EXECUTE | \
3465 SYNCHRONIZE)
3466
3467#define FILE_GENERIC_READ \
3468 (STANDARD_RIGHTS_READ | \
3469 FILE_READ_DATA | \
3470 FILE_READ_ATTRIBUTES | \
3471 FILE_READ_EA | \
3472 SYNCHRONIZE)
3473
3474#define FILE_GENERIC_WRITE \
3475 (STANDARD_RIGHTS_WRITE | \
3476 FILE_WRITE_DATA | \
3477 FILE_WRITE_ATTRIBUTES | \
3478 FILE_WRITE_EA | \
3479 FILE_APPEND_DATA | \
3480 SYNCHRONIZE)
3481
3482/* end winnt.h */
3483
3484#define WMIREG_ACTION_REGISTER 1
3485#define WMIREG_ACTION_DEREGISTER 2
3486#define WMIREG_ACTION_REREGISTER 3
3487#define WMIREG_ACTION_UPDATE_GUIDS 4
3488#define WMIREG_ACTION_BLOCK_IRPS 5
3489
3490#define WMIREGISTER 0
3491#define WMIUPDATE 1
3492
3495typedef VOID
3496(NTAPI FWMI_NOTIFICATION_CALLBACK)(
3497 PVOID Wnode,
3498 PVOID Context);
3499typedef FWMI_NOTIFICATION_CALLBACK *WMI_NOTIFICATION_CALLBACK;
3500
3501#ifndef _PCI_X_
3502#define _PCI_X_
3503
3504typedef struct _PCI_SLOT_NUMBER {
3505 union {
3506 struct {
3512 } u;
3514
3515#define PCI_TYPE0_ADDRESSES 6
3516#define PCI_TYPE1_ADDRESSES 2
3517#define PCI_TYPE2_ADDRESSES 5
3518
3519/* While MS WDK uses inheritance in C++, we cannot do this with gcc, as
3520 inheritance, even from a struct renders the type non-POD. So we use
3521 this hack */
3522#define PCI_COMMON_HEADER_LAYOUT \
3523 USHORT VendorID; \
3524 USHORT DeviceID; \
3525 USHORT Command; \
3526 USHORT Status; \
3527 UCHAR RevisionID; \
3528 UCHAR ProgIf; \
3529 UCHAR SubClass; \
3530 UCHAR BaseClass; \
3531 UCHAR CacheLineSize; \
3532 UCHAR LatencyTimer; \
3533 UCHAR HeaderType; \
3534 UCHAR BIST; \
3535 union { \
3536 struct _PCI_HEADER_TYPE_0 { \
3537 ULONG BaseAddresses[PCI_TYPE0_ADDRESSES]; \
3538 ULONG CIS; \
3539 USHORT SubVendorID; \
3540 USHORT SubSystemID; \
3541 ULONG ROMBaseAddress; \
3542 UCHAR CapabilitiesPtr; \
3543 UCHAR Reserved1[3]; \
3544 ULONG Reserved2; \
3545 UCHAR InterruptLine; \
3546 UCHAR InterruptPin; \
3547 UCHAR MinimumGrant; \
3548 UCHAR MaximumLatency; \
3549 } type0; \
3550 struct _PCI_HEADER_TYPE_1 { \
3551 ULONG BaseAddresses[PCI_TYPE1_ADDRESSES]; \
3552 UCHAR PrimaryBus; \
3553 UCHAR SecondaryBus; \
3554 UCHAR SubordinateBus; \
3555 UCHAR SecondaryLatency; \
3556 UCHAR IOBase; \
3557 UCHAR IOLimit; \
3558 USHORT SecondaryStatus; \
3559 USHORT MemoryBase; \
3560 USHORT MemoryLimit; \
3561 USHORT PrefetchBase; \
3562 USHORT PrefetchLimit; \
3563 ULONG PrefetchBaseUpper32; \
3564 ULONG PrefetchLimitUpper32; \
3565 USHORT IOBaseUpper16; \
3566 USHORT IOLimitUpper16; \
3567 UCHAR CapabilitiesPtr; \
3568 UCHAR Reserved1[3]; \
3569 ULONG ROMBaseAddress; \
3570 UCHAR InterruptLine; \
3571 UCHAR InterruptPin; \
3572 USHORT BridgeControl; \
3573 } type1; \
3574 struct _PCI_HEADER_TYPE_2 { \
3575 ULONG SocketRegistersBaseAddress; \
3576 UCHAR CapabilitiesPtr; \
3577 UCHAR Reserved; \
3578 USHORT SecondaryStatus; \
3579 UCHAR PrimaryBus; \
3580 UCHAR SecondaryBus; \
3581 UCHAR SubordinateBus; \
3582 UCHAR SecondaryLatency; \
3583 struct { \
3584 ULONG Base; \
3585 ULONG Limit; \
3586 } Range[PCI_TYPE2_ADDRESSES-1]; \
3587 UCHAR InterruptLine; \
3588 UCHAR InterruptPin; \
3589 USHORT BridgeControl; \
3590 } type2; \
3591 } u;
3592
3593typedef struct _PCI_COMMON_HEADER {
3596
3597#ifdef __cplusplus
3598typedef struct _PCI_COMMON_CONFIG {
3600 UCHAR DeviceSpecific[192];
3602#else
3603typedef struct _PCI_COMMON_CONFIG {
3605 UCHAR DeviceSpecific[192];
3607#endif
3608
3609#define PCI_COMMON_HDR_LENGTH (FIELD_OFFSET(PCI_COMMON_CONFIG, DeviceSpecific))
3610
3611#define PCI_EXTENDED_CONFIG_LENGTH 0x1000
3612
3613#define PCI_MAX_DEVICES 32
3614#define PCI_MAX_FUNCTION 8
3615#define PCI_MAX_BRIDGE_NUMBER 0xFF
3616#define PCI_INVALID_VENDORID 0xFFFF
3617
3618/* PCI_COMMON_CONFIG.HeaderType */
3619#define PCI_MULTIFUNCTION 0x80
3620#define PCI_DEVICE_TYPE 0x00
3621#define PCI_BRIDGE_TYPE 0x01
3622#define PCI_CARDBUS_BRIDGE_TYPE 0x02
3623
3624#define PCI_CONFIGURATION_TYPE(PciData) \
3625 (((PPCI_COMMON_CONFIG) (PciData))->HeaderType & ~PCI_MULTIFUNCTION)
3626
3627#define PCI_MULTIFUNCTION_DEVICE(PciData) \
3628 ((((PPCI_COMMON_CONFIG) (PciData))->HeaderType & PCI_MULTIFUNCTION) != 0)
3629
3630/* PCI_COMMON_CONFIG.Command */
3631#define PCI_ENABLE_IO_SPACE 0x0001
3632#define PCI_ENABLE_MEMORY_SPACE 0x0002
3633#define PCI_ENABLE_BUS_MASTER 0x0004
3634#define PCI_ENABLE_SPECIAL_CYCLES 0x0008
3635#define PCI_ENABLE_WRITE_AND_INVALIDATE 0x0010
3636#define PCI_ENABLE_VGA_COMPATIBLE_PALETTE 0x0020
3637#define PCI_ENABLE_PARITY 0x0040
3638#define PCI_ENABLE_WAIT_CYCLE 0x0080
3639#define PCI_ENABLE_SERR 0x0100
3640#define PCI_ENABLE_FAST_BACK_TO_BACK 0x0200
3641#define PCI_DISABLE_LEVEL_INTERRUPT 0x0400
3642
3643/* PCI_COMMON_CONFIG.Status */
3644#define PCI_STATUS_INTERRUPT_PENDING 0x0008
3645#define PCI_STATUS_CAPABILITIES_LIST 0x0010
3646#define PCI_STATUS_66MHZ_CAPABLE 0x0020
3647#define PCI_STATUS_UDF_SUPPORTED 0x0040
3648#define PCI_STATUS_FAST_BACK_TO_BACK 0x0080
3649#define PCI_STATUS_DATA_PARITY_DETECTED 0x0100
3650#define PCI_STATUS_DEVSEL 0x0600
3651#define PCI_STATUS_SIGNALED_TARGET_ABORT 0x0800
3652#define PCI_STATUS_RECEIVED_TARGET_ABORT 0x1000
3653#define PCI_STATUS_RECEIVED_MASTER_ABORT 0x2000
3654#define PCI_STATUS_SIGNALED_SYSTEM_ERROR 0x4000
3655#define PCI_STATUS_DETECTED_PARITY_ERROR 0x8000
3656
3657/* IO_STACK_LOCATION.Parameters.ReadWriteControl.WhichSpace */
3658
3659#define PCI_WHICHSPACE_CONFIG 0x0
3660#define PCI_WHICHSPACE_ROM 0x52696350 /* 'PciR' */
3661
3662#define PCI_CAPABILITY_ID_POWER_MANAGEMENT 0x01
3663#define PCI_CAPABILITY_ID_AGP 0x02
3664#define PCI_CAPABILITY_ID_VPD 0x03
3665#define PCI_CAPABILITY_ID_SLOT_ID 0x04
3666#define PCI_CAPABILITY_ID_MSI 0x05
3667#define PCI_CAPABILITY_ID_CPCI_HOTSWAP 0x06
3668#define PCI_CAPABILITY_ID_PCIX 0x07
3669#define PCI_CAPABILITY_ID_HYPERTRANSPORT 0x08
3670#define PCI_CAPABILITY_ID_VENDOR_SPECIFIC 0x09
3671#define PCI_CAPABILITY_ID_DEBUG_PORT 0x0A
3672#define PCI_CAPABILITY_ID_CPCI_RES_CTRL 0x0B
3673#define PCI_CAPABILITY_ID_SHPC 0x0C
3674#define PCI_CAPABILITY_ID_P2P_SSID 0x0D
3675#define PCI_CAPABILITY_ID_AGP_TARGET 0x0E
3676#define PCI_CAPABILITY_ID_SECURE 0x0F
3677#define PCI_CAPABILITY_ID_PCI_EXPRESS 0x10
3678#define PCI_CAPABILITY_ID_MSIX 0x11
3679
3684
3685typedef struct _PCI_PMC {
3700 } Support;
3702
3703typedef struct _PCI_PMCSR {
3711
3712typedef struct _PCI_PMCSR_BSE {
3717
3718typedef struct _PCI_PM_CAPABILITY {
3720 union {
3723 } PMC;
3724 union {
3726 USHORT AsUSHORT;
3727 } PMCSR;
3728 union {
3731 } PMCSR_BSE;
3734
3735typedef struct {
3737 union {
3738 struct {
3747 union {
3748 struct {
3767
3768#define PCI_EXPRESS_ADVANCED_ERROR_REPORTING_CAP_ID 0x0001
3769#define PCI_EXPRESS_VIRTUAL_CHANNEL_CAP_ID 0x0002
3770#define PCI_EXPRESS_DEVICE_SERIAL_NUMBER_CAP_ID 0x0003
3771#define PCI_EXPRESS_POWER_BUDGETING_CAP_ID 0x0004
3772#define PCI_EXPRESS_RC_LINK_DECLARATION_CAP_ID 0x0005
3773#define PCI_EXPRESS_RC_INTERNAL_LINK_CONTROL_CAP_ID 0x0006
3774#define PCI_EXPRESS_RC_EVENT_COLLECTOR_ENDPOINT_ASSOCIATION_CAP_ID 0x0007
3775#define PCI_EXPRESS_MFVC_CAP_ID 0x0008
3776#define PCI_EXPRESS_VC_AND_MFVC_CAP_ID 0x0009
3777#define PCI_EXPRESS_RCRB_HEADER_CAP_ID 0x000A
3778#define PCI_EXPRESS_SINGLE_ROOT_IO_VIRTUALIZATION_CAP_ID 0x0010
3779
3785
3791
3793 _ANONYMOUS_STRUCT struct {
3812
3814 _ANONYMOUS_STRUCT struct {
3833
3835 _ANONYMOUS_STRUCT struct {
3854
3856 _ANONYMOUS_STRUCT struct {
3869
3871 _ANONYMOUS_STRUCT struct {
3884
3886 _ANONYMOUS_STRUCT struct {
3896
3898 _ANONYMOUS_STRUCT struct {
3906
3908 _ANONYMOUS_STRUCT struct {
3921
3923 _ANONYMOUS_STRUCT struct {
3933
3935 _ANONYMOUS_STRUCT struct {
3954
3956 _ANONYMOUS_STRUCT struct {
3975
3977 _ANONYMOUS_STRUCT struct {
3996
3998 _ANONYMOUS_STRUCT struct {
4004
4005#define ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING 0x00000001
4006#define ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING 0x00000002
4007#define ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING 0x00000004
4008
4009#define ROOT_CMD_ERROR_REPORTING_ENABLE_MASK \
4010 (ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING | \
4011 ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING | \
4012 ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING)
4013
4022 ULONG HeaderLog[4];
4027 ULONG SecHeaderLog[4];
4029
4038 ULONG HeaderLog[4];
4043
4052 ULONG HeaderLog[4];
4057 ULONG SecHeaderLog[4];
4059
4061 _ANONYMOUS_STRUCT struct {
4068
4070 _ANONYMOUS_STRUCT struct {
4080
4082 _ANONYMOUS_STRUCT struct {
4088
4090 _ANONYMOUS_STRUCT struct {
4096
4116
4117/* PCI device classes */
4118#define PCI_CLASS_PRE_20 0x00
4119#define PCI_CLASS_MASS_STORAGE_CTLR 0x01
4120#define PCI_CLASS_NETWORK_CTLR 0x02
4121#define PCI_CLASS_DISPLAY_CTLR 0x03
4122#define PCI_CLASS_MULTIMEDIA_DEV 0x04
4123#define PCI_CLASS_MEMORY_CTLR 0x05
4124#define PCI_CLASS_BRIDGE_DEV 0x06
4125#define PCI_CLASS_SIMPLE_COMMS_CTLR 0x07
4126#define PCI_CLASS_BASE_SYSTEM_DEV 0x08
4127#define PCI_CLASS_INPUT_DEV 0x09
4128#define PCI_CLASS_DOCKING_STATION 0x0a
4129#define PCI_CLASS_PROCESSOR 0x0b
4130#define PCI_CLASS_SERIAL_BUS_CTLR 0x0c
4131#define PCI_CLASS_WIRELESS_CTLR 0x0d
4132#define PCI_CLASS_INTELLIGENT_IO_CTLR 0x0e
4133#define PCI_CLASS_SATELLITE_COMMS_CTLR 0x0f
4134#define PCI_CLASS_ENCRYPTION_DECRYPTION 0x10
4135#define PCI_CLASS_DATA_ACQ_SIGNAL_PROC 0x11
4136#define PCI_CLASS_NOT_DEFINED 0xff
4137
4138/* PCI device subclasses for class 0 */
4139#define PCI_SUBCLASS_PRE_20_NON_VGA 0x00
4140#define PCI_SUBCLASS_PRE_20_VGA 0x01
4141
4142/* PCI device subclasses for class 1 (mass storage controllers)*/
4143#define PCI_SUBCLASS_MSC_SCSI_BUS_CTLR 0x00
4144#define PCI_SUBCLASS_MSC_IDE_CTLR 0x01
4145#define PCI_SUBCLASS_MSC_FLOPPY_CTLR 0x02
4146#define PCI_SUBCLASS_MSC_IPI_CTLR 0x03
4147#define PCI_SUBCLASS_MSC_RAID_CTLR 0x04
4148#define PCI_SUBCLASS_MSC_AHCI_CTLR 0x06
4149#define PCI_SUBCLASS_MSC_OTHER 0x80
4150
4151/* PCI device subclasses for class 2 (network controllers)*/
4152#define PCI_SUBCLASS_NET_ETHERNET_CTLR 0x00
4153#define PCI_SUBCLASS_NET_TOKEN_RING_CTLR 0x01
4154#define PCI_SUBCLASS_NET_FDDI_CTLR 0x02
4155#define PCI_SUBCLASS_NET_ATM_CTLR 0x03
4156#define PCI_SUBCLASS_NET_ISDN_CTLR 0x04
4157#define PCI_SUBCLASS_NET_OTHER 0x80
4158
4159/* PCI device subclasses for class 3 (display controllers)*/
4160#define PCI_SUBCLASS_VID_VGA_CTLR 0x00
4161#define PCI_SUBCLASS_VID_XGA_CTLR 0x01
4162#define PCI_SUBCLASS_VID_3D_CTLR 0x02
4163#define PCI_SUBCLASS_VID_OTHER 0x80
4164
4165/* PCI device subclasses for class 4 (multimedia device)*/
4166#define PCI_SUBCLASS_MM_VIDEO_DEV 0x00
4167#define PCI_SUBCLASS_MM_AUDIO_DEV 0x01
4168#define PCI_SUBCLASS_MM_TELEPHONY_DEV 0x02
4169#define PCI_SUBCLASS_MM_OTHER 0x80
4170
4171/* PCI device subclasses for class 5 (memory controller)*/
4172#define PCI_SUBCLASS_MEM_RAM 0x00
4173#define PCI_SUBCLASS_MEM_FLASH 0x01
4174#define PCI_SUBCLASS_MEM_OTHER 0x80
4175
4176/* PCI device subclasses for class 6 (bridge device)*/
4177#define PCI_SUBCLASS_BR_HOST 0x00
4178#define PCI_SUBCLASS_BR_ISA 0x01
4179#define PCI_SUBCLASS_BR_EISA 0x02
4180#define PCI_SUBCLASS_BR_MCA 0x03
4181#define PCI_SUBCLASS_BR_PCI_TO_PCI 0x04
4182#define PCI_SUBCLASS_BR_PCMCIA 0x05
4183#define PCI_SUBCLASS_BR_NUBUS 0x06
4184#define PCI_SUBCLASS_BR_CARDBUS 0x07
4185#define PCI_SUBCLASS_BR_RACEWAY 0x08
4186#define PCI_SUBCLASS_BR_OTHER 0x80
4187
4188#define PCI_SUBCLASS_COM_SERIAL 0x00
4189#define PCI_SUBCLASS_COM_PARALLEL 0x01
4190#define PCI_SUBCLASS_COM_MULTIPORT 0x02
4191#define PCI_SUBCLASS_COM_MODEM 0x03
4192#define PCI_SUBCLASS_COM_OTHER 0x80
4193
4194#define PCI_SUBCLASS_SYS_INTERRUPT_CTLR 0x00
4195#define PCI_SUBCLASS_SYS_DMA_CTLR 0x01
4196#define PCI_SUBCLASS_SYS_SYSTEM_TIMER 0x02
4197#define PCI_SUBCLASS_SYS_REAL_TIME_CLOCK 0x03
4198#define PCI_SUBCLASS_SYS_GEN_HOTPLUG_CTLR 0x04
4199#define PCI_SUBCLASS_SYS_SDIO_CTRL 0x05
4200#define PCI_SUBCLASS_SYS_OTHER 0x80
4201
4202#define PCI_SUBCLASS_INP_KEYBOARD 0x00
4203#define PCI_SUBCLASS_INP_DIGITIZER 0x01
4204#define PCI_SUBCLASS_INP_MOUSE 0x02
4205#define PCI_SUBCLASS_INP_SCANNER 0x03
4206#define PCI_SUBCLASS_INP_GAMEPORT 0x04
4207#define PCI_SUBCLASS_INP_OTHER 0x80
4208
4209#define PCI_SUBCLASS_DOC_GENERIC 0x00
4210#define PCI_SUBCLASS_DOC_OTHER 0x80
4211
4212#define PCI_SUBCLASS_PROC_386 0x00
4213#define PCI_SUBCLASS_PROC_486 0x01
4214#define PCI_SUBCLASS_PROC_PENTIUM 0x02
4215#define PCI_SUBCLASS_PROC_ALPHA 0x10
4216#define PCI_SUBCLASS_PROC_POWERPC 0x20
4217#define PCI_SUBCLASS_PROC_COPROCESSOR 0x40
4218
4219/* PCI device subclasses for class C (serial bus controller)*/
4220#define PCI_SUBCLASS_SB_IEEE1394 0x00
4221#define PCI_SUBCLASS_SB_ACCESS 0x01
4222#define PCI_SUBCLASS_SB_SSA 0x02
4223#define PCI_SUBCLASS_SB_USB 0x03
4224#define PCI_SUBCLASS_SB_FIBRE_CHANNEL 0x04
4225#define PCI_SUBCLASS_SB_SMBUS 0x05
4226
4227#define PCI_SUBCLASS_WIRELESS_IRDA 0x00
4228#define PCI_SUBCLASS_WIRELESS_CON_IR 0x01
4229#define PCI_SUBCLASS_WIRELESS_RF 0x10
4230#define PCI_SUBCLASS_WIRELESS_OTHER 0x80
4231
4232#define PCI_SUBCLASS_INTIO_I2O 0x00
4233
4234#define PCI_SUBCLASS_SAT_TV 0x01
4235#define PCI_SUBCLASS_SAT_AUDIO 0x02
4236#define PCI_SUBCLASS_SAT_VOICE 0x03
4237#define PCI_SUBCLASS_SAT_DATA 0x04
4238
4239#define PCI_SUBCLASS_CRYPTO_NET_COMP 0x00
4240#define PCI_SUBCLASS_CRYPTO_ENTERTAINMENT 0x10
4241#define PCI_SUBCLASS_CRYPTO_OTHER 0x80
4242
4243#define PCI_SUBCLASS_DASP_DPIO 0x00
4244#define PCI_SUBCLASS_DASP_OTHER 0x80
4245
4246#define PCI_ADDRESS_IO_SPACE 0x00000001
4247#define PCI_ADDRESS_MEMORY_TYPE_MASK 0x00000006
4248#define PCI_ADDRESS_MEMORY_PREFETCHABLE 0x00000008
4249#define PCI_ADDRESS_IO_ADDRESS_MASK 0xfffffffc
4250#define PCI_ADDRESS_MEMORY_ADDRESS_MASK 0xfffffff0
4251#define PCI_ADDRESS_ROM_ADDRESS_MASK 0xfffff800
4252
4253#define PCI_TYPE_32BIT 0
4254#define PCI_TYPE_20BIT 2
4255#define PCI_TYPE_64BIT 4
4256
4257#define PCI_ROMADDRESS_ENABLED 0x00000001
4258
4259#endif /* _PCI_X_ */
4260
4261#define PCI_EXPRESS_LINK_QUIESCENT_INTERFACE_VERSION 1
4262
4265typedef NTSTATUS
4266(NTAPI PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE)(
4268typedef PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE *PPCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE;
4269
4272typedef NTSTATUS
4273(NTAPI PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE)(
4275typedef PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE *PPCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE;
4276
4286
4287#define PCI_EXPRESS_ROOT_PORT_INTERFACE_VERSION 1
4288
4289typedef ULONG
4294 _In_ ULONG Length);
4295
4296typedef ULONG
4301 _In_ ULONG Length);
4302
4312
4313#define PCI_MSIX_TABLE_CONFIG_INTERFACE_VERSION 1
4314
4316typedef NTSTATUS
4317(NTAPI PCI_MSIX_SET_ENTRY)(
4321typedef PCI_MSIX_SET_ENTRY *PPCI_MSIX_SET_ENTRY;
4322
4324typedef NTSTATUS
4325(NTAPI PCI_MSIX_MASKUNMASK_ENTRY)(
4328typedef PCI_MSIX_MASKUNMASK_ENTRY *PPCI_MSIX_MASKUNMASK_ENTRY;
4329
4331typedef NTSTATUS
4332(NTAPI PCI_MSIX_GET_ENTRY)(
4337typedef PCI_MSIX_GET_ENTRY *PPCI_MSIX_GET_ENTRY;
4338
4340typedef NTSTATUS
4341(NTAPI PCI_MSIX_GET_TABLE_SIZE)(
4344typedef PCI_MSIX_GET_TABLE_SIZE *PPCI_MSIX_GET_TABLE_SIZE;
4345
4358
4359#define PCI_MSIX_TABLE_CONFIG_MINIMUM_SIZE \
4360 RTL_SIZEOF_THROUGH_FIELD(PCI_MSIX_TABLE_CONFIG_INTERFACE, UnmaskTableEntry)
4361
4363$if (_NTDDK_)
4364#ifndef _ARC_DDK_
4365#define _ARC_DDK_
4366typedef enum _CONFIGURATION_TYPE {
4367 ArcSystem,
4376 TcAdapter,
4378 DtiAdapter,
4410#endif /* !_ARC_DDK_ */
4411
4412/*
4413** IRP function codes
4414*/
4415
4416#define IRP_MN_QUERY_DIRECTORY 0x01
4417#define IRP_MN_NOTIFY_CHANGE_DIRECTORY 0x02
4418
4419#define IRP_MN_USER_FS_REQUEST 0x00
4420#define IRP_MN_MOUNT_VOLUME 0x01
4421#define IRP_MN_VERIFY_VOLUME 0x02
4422#define IRP_MN_LOAD_FILE_SYSTEM 0x03
4423#define IRP_MN_TRACK_LINK 0x04
4424#define IRP_MN_KERNEL_CALL 0x04
4425
4426#define IRP_MN_LOCK 0x01
4427#define IRP_MN_UNLOCK_SINGLE 0x02
4428#define IRP_MN_UNLOCK_ALL 0x03
4429#define IRP_MN_UNLOCK_ALL_BY_KEY 0x04
4430
4431#define IRP_MN_FLUSH_AND_PURGE 0x01
4432
4433#define IRP_MN_NORMAL 0x00
4434#define IRP_MN_DPC 0x01
4435#define IRP_MN_MDL 0x02
4436#define IRP_MN_COMPLETE 0x04
4437#define IRP_MN_COMPRESSED 0x08
4438
4439#define IRP_MN_MDL_DPC (IRP_MN_MDL | IRP_MN_DPC)
4440#define IRP_MN_COMPLETE_MDL (IRP_MN_COMPLETE | IRP_MN_MDL)
4441#define IRP_MN_COMPLETE_MDL_DPC (IRP_MN_COMPLETE_MDL | IRP_MN_DPC)
4442
4443#define IRP_MN_QUERY_LEGACY_BUS_INFORMATION 0x18
4444
4445#define IO_CHECK_CREATE_PARAMETERS 0x0200
4446#define IO_ATTACH_DEVICE 0x0400
4447#define IO_IGNORE_SHARE_ACCESS_CHECK 0x0800
4448
4452 _In_ PUNICODE_STRING PathName,
4456 _In_ CONFIGURATION_TYPE ControllerType,
4457 _In_ ULONG ControllerNumber,
4458 _In_ PKEY_VALUE_FULL_INFORMATION *ControllerInformation,
4459 _In_ CONFIGURATION_TYPE PeripheralType,
4460 _In_ ULONG PeripheralNumber,
4461 _In_ PKEY_VALUE_FULL_INFORMATION *PeripheralInformation);
4462
4469
4470typedef VOID
4474 _In_ ULONG Count);
4475
4476typedef struct _CONTROLLER_OBJECT {
4484
4485#define DRVO_REINIT_REGISTERED 0x00000008
4486#define DRVO_INITIALIZED 0x00000010
4487#define DRVO_BOOTREINIT_REGISTERED 0x00000020
4488#define DRVO_LEGACY_RESOURCES 0x00000040
4489
4503
4504typedef struct _DISK_SIGNATURE {
4506 _ANONYMOUS_UNION union {
4507 struct {
4510 } Mbr;
4511 struct {
4513 } Gpt;
4516
4517typedef struct _TXN_PARAMETER_BLOCK {
4522
4523#define TXF_MINIVERSION_DEFAULT_VIEW (0xFFFE)
4524
4531
4542
4545typedef NTSTATUS
4546(NTAPI *PGET_LOCATION_STRING)(
4548 _Outptr_
4550 _When_(return == 0, __drv_allocatesMem(Mem)))
4552
4559 PGET_LOCATION_STRING GetLocationString;
4561
4562typedef enum _ARBITER_ACTION {
4574
4580
4586
4592
4596
4600
4607
4611
4615
4616typedef struct _ARBITER_PARAMETERS {
4617 union {
4627
4636
4637typedef enum _ARBITER_RESULT {
4643
4644#define ARBITER_FLAG_BOOT_CONFIG 0x00000001
4645
4646typedef struct _ARBITER_LIST_ENTRY {
4661
4667
4668#define ARBITER_PARTIAL 0x00000001
4669
4670typedef struct _ARBITER_INTERFACE {
4679
4684
4690 _In_opt_ ULONG AlternativesCount,
4691 _In_reads_opt_(AlternativesCount) IO_RESOURCE_DESCRIPTOR Alternatives[],
4694
4700 _Out_ PULONG TargetCount,
4702
4712
4713typedef struct _PCI_AGP_CAPABILITY {
4733 } AGPStatus;
4747 } AGPCommand;
4749
4759
4768
4769typedef struct _PCI_AGP_CONTROL {
4776
4782
4788
4798
4799#define PCI_AGP_RATE_1X 0x1
4800#define PCI_AGP_RATE_2X 0x2
4801#define PCI_AGP_RATE_4X 0x4
4802
4803#define PCIX_MODE_CONVENTIONAL_PCI 0x0
4804#define PCIX_MODE1_66MHZ 0x1
4805#define PCIX_MODE1_100MHZ 0x2
4806#define PCIX_MODE1_133MHZ 0x3
4807#define PCIX_MODE2_266_66MHZ 0x9
4808#define PCIX_MODE2_266_100MHZ 0xA
4809#define PCIX_MODE2_266_133MHZ 0xB
4810#define PCIX_MODE2_533_66MHZ 0xD
4811#define PCIX_MODE2_533_100MHZ 0xE
4812#define PCIX_MODE2_533_133MHZ 0xF
4813
4814#define PCIX_VERSION_MODE1_ONLY 0x0
4815#define PCIX_VERSION_MODE2_ECC 0x1
4816#define PCIX_VERSION_DUAL_MODE_ECC 0x2
4817
4820 union {
4821 _ANONYMOUS_STRUCT struct {
4835 } SecondaryStatus;
4836 union {
4837 _ANONYMOUS_STRUCT struct {
4853 } BridgeStatus;
4858 union {
4859 _ANONYMOUS_STRUCT struct {
4871 ULONG Rsvd:1;
4875 ULONG AsULONG;
4876 } EccControlStatus;
4881
4888
4889#define OSC_FIRMWARE_FAILURE 0x02
4890#define OSC_UNRECOGNIZED_UUID 0x04
4891#define OSC_UNRECOGNIZED_REVISION 0x08
4892#define OSC_CAPABILITIES_MASKED 0x10
4893
4894#define PCI_ROOT_BUS_OSC_METHOD_CAPABILITY_REVISION 0x01
4895
4897 union {
4898 _ANONYMOUS_STRUCT struct {
4908 } u;
4910
4912 union {
4913 _ANONYMOUS_STRUCT struct {
4922 } u;
4924
4931
4932typedef enum {
4936
4939 _ANONYMOUS_STRUCT struct {
4950
4952 _ANONYMOUS_STRUCT struct {
4961
4963 _ANONYMOUS_STRUCT struct {
4978
4979#define PCI_EXPRESS_AER_DEVICE_CONTROL_MASK 0x07;
4980
4982 _ANONYMOUS_STRUCT struct {
4998
4999#define PCI_EXPRESS_AER_DEVICE_STATUS_MASK 0x0F;
5000
5002 _ANONYMOUS_STRUCT struct {
5013
5015 _ANONYMOUS_STRUCT struct {
5029
5031 _ANONYMOUS_STRUCT struct {
5044
5046 _ANONYMOUS_STRUCT struct {
5057
5059 _ANONYMOUS_STRUCT struct {
5075
5077 _ANONYMOUS_STRUCT struct {
5093
5095 _ANONYMOUS_STRUCT struct {
5109
5111 _ANONYMOUS_STRUCT struct {
5121
5123 _ANONYMOUS_STRUCT struct {
5129
5131 _ANONYMOUS_STRUCT struct {
5139
5156
5157typedef enum {
5159 MRLOpen
5161
5162typedef enum {
5166
5167typedef enum {
5172
5173typedef enum {
5175 PowerOff
5177
5178typedef enum {
5182
5183typedef enum {
5189
5190typedef enum {
5200
5201typedef enum {
5211
5212typedef enum {
5223
5224typedef enum {
5232
5234 _ANONYMOUS_STRUCT struct {
5241
5249
5253 union {
5256 struct {
5259 } Range;
5260 } u;
5262
5267
5268typedef VOID
5270 _In_ struct _BUS_HANDLER *BusHandler,
5271 _In_ struct _BUS_HANDLER *RootHandler,
5273 _In_ PPCI_COMMON_CONFIG PciData);
5274
5275typedef VOID
5277 _In_ struct _BUS_HANDLER *BusHandler,
5278 _In_ struct _BUS_HANDLER *RootHandler,
5280 _In_ PPCI_COMMON_CONFIG PciNewData,
5281 _In_ PPCI_COMMON_CONFIG PciOldData);
5282
5283typedef VOID
5285 _In_ struct _BUS_HANDLER *BusHandler,
5286 _In_ PCI_SLOT_NUMBER Slot,
5289 _In_ ULONG Length);
5290
5291#define PCI_DATA_TAG ' ICP'
5292#define PCI_DATA_VERSION 1
5293
5294typedef struct _PCIBUSDATA {
5304
5305#ifndef _PCIINTRF_X_
5306#define _PCIINTRF_X_
5307
5308typedef ULONG
5311 _In_ ULONG BusOffset,
5312 _In_ ULONG Slot,
5315 _In_ ULONG Length);
5316
5317typedef VOID
5320 _In_ PPCI_COMMON_CONFIG PciData);
5321
5322typedef VOID
5325 _In_ PPCI_COMMON_CONFIG PciNewData,
5326 _In_ PPCI_COMMON_CONFIG PciOldData);
5327
5328typedef VOID
5331 _Out_ PPCI_ROOT_BUS_HARDWARE_CAPABILITY HardwareCapability);
5332
5333typedef VOID
5336 _In_ BOOLEAN EnableWake);
5337
5351
5352#define PCI_BUS_INTERFACE_STANDARD_VERSION 1
5353
5354#endif /* _PCIINTRF_X_ */
5355
5356#if (NTDDI_VERSION >= NTDDI_WIN7)
5357
5358#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX 0x00004000
5359#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX 0x00008000
5360#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX \
5361 (FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX | \
5362 FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX)
5363
5364#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_DEPRECATED 0x00000200
5365#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_DEPRECATED 0x00000300
5366#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_DEPRECATED 0x00000300
5367
5368#else
5369
5370#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL 0x00000200
5371#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL 0x00000300
5372#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK 0x00000300
5373
5374#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL
5375#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL
5376#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK
5377
5378#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
5379
5380#define FILE_CHARACTERISTICS_PROPAGATED (FILE_REMOVABLE_MEDIA | \
5381 FILE_READ_ONLY_DEVICE | \
5382 FILE_FLOPPY_DISKETTE | \
5383 FILE_WRITE_ONCE_MEDIA | \
5384 FILE_DEVICE_SECURE_OPEN)
5385
5386typedef struct _FILE_ALIGNMENT_INFORMATION {
5389
5390typedef struct _FILE_NAME_INFORMATION {
5392 WCHAR FileName[1];
5394
5395
5396typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION {
5398 ULONG ReparseTag;
5400
5401typedef struct _FILE_DISPOSITION_INFORMATION {
5404
5405typedef struct _FILE_END_OF_FILE_INFORMATION {
5406 LARGE_INTEGER EndOfFile;
5408
5412
5415 WCHAR VolumeLabel[1];
5417
5418typedef struct _FILE_FS_VOLUME_INFORMATION {
5419 LARGE_INTEGER VolumeCreationTime;
5420 ULONG VolumeSerialNumber;
5421 ULONG VolumeLabelLength;
5422 BOOLEAN SupportsObjects;
5423 WCHAR VolumeLabel[1];
5425
5426typedef struct _FILE_FS_SIZE_INFORMATION {
5427 LARGE_INTEGER TotalAllocationUnits;
5428 LARGE_INTEGER AvailableAllocationUnits;
5429 ULONG SectorsPerAllocationUnit;
5430 ULONG BytesPerSector;
5432
5433typedef struct _FILE_FS_FULL_SIZE_INFORMATION {
5434 LARGE_INTEGER TotalAllocationUnits;
5435 LARGE_INTEGER CallerAvailableAllocationUnits;
5436 LARGE_INTEGER ActualAvailableAllocationUnits;
5437 ULONG SectorsPerAllocationUnit;
5438 ULONG BytesPerSector;
5440
5442 UCHAR ObjectId[16];
5443 UCHAR ExtendedInfo[48];
5445
5450
5451#define IOCTL_AVIO_ALLOCATE_STREAM CTL_CODE(FILE_DEVICE_AVIO, 1, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
5452#define IOCTL_AVIO_FREE_STREAM CTL_CODE(FILE_DEVICE_AVIO, 2, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
5453#define IOCTL_AVIO_MODIFY_STREAM CTL_CODE(FILE_DEVICE_AVIO, 3, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
5454
5455typedef enum _BUS_DATA_TYPE {
5471
5472/* Some Server 2003 DDK definitions */
5473#define PCI_INT_ROUTE_INTRF_STANDARD_VER 1
5474
5482
5483typedef struct _ROUTING_TOKEN {
5488
5492 OUT ULONG *Bus,
5493 OUT ULONG *PciSlot,
5494 OUT UCHAR *InterruptLine,
5495 OUT UCHAR *InterruptPin,
5496 OUT UCHAR *ClassCode,
5497 OUT UCHAR *SubClassCode,
5498 OUT PDEVICE_OBJECT *ParentPdo,
5499 OUT ROUTING_TOKEN *RoutingToken,
5500 OUT UCHAR *Flags);
5501
5505 IN PROUTING_TOKEN RoutingToken);
5506
5507typedef VOID
5510 IN UCHAR LineRegister);
5511
5522
5531
5532/* FIXME : These definitions don't exist in public headers */
5533
5534#define PCI_CB_INTRF_VERSION 1
5535#define PCI_PME_INTRF_STANDARD_VER 1
5536#define PNP_LOCATION_INTERFACE_VERSION 1
5537
5538DEFINE_GUID(GUID_PCI_CARDBUS_INTERFACE_PRIVATE, 0xcca82f31, 0x54d6, 0x11d1, 0x82, 0x24, 0x00, 0xa0, 0xc9, 0x32, 0x43, 0x85);
5539DEFINE_GUID(GUID_PCI_PME_INTERFACE, 0xaac7e6ac, 0xbb0b, 0x11d2, 0xb4, 0x84, 0x00, 0xc0, 0x4f, 0x72, 0xde, 0x8b);
5540
5545
5549
5553 IN PIRP Irp);
5554
5555typedef VOID
5558 IN BOOLEAN PmeEnable);
5559
5560typedef VOID
5563
5564typedef VOID
5567 OUT PBOOLEAN PmeCapable,
5568 OUT PBOOLEAN PmeStatus,
5569 OUT PBOOLEAN PmeEnable);
5570
5582
5583typedef struct _PCI_PME_INTERFACE {
5593
5595$if (_NTIFS_)
5596
5597#define FILE_OPLOCK_BROKEN_TO_LEVEL_2 0x00000007
5598#define FILE_OPLOCK_BROKEN_TO_NONE 0x00000008
5599#define FILE_OPBATCH_BREAK_UNDERWAY 0x00000009
5600
5601/* also in winnt.h */
5602#define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001
5603#define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002
5604#define FILE_NOTIFY_CHANGE_NAME 0x00000003
5605#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004
5606#define FILE_NOTIFY_CHANGE_SIZE 0x00000008
5607#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010
5608#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020
5609#define FILE_NOTIFY_CHANGE_CREATION 0x00000040
5610#define FILE_NOTIFY_CHANGE_EA 0x00000080
5611#define FILE_NOTIFY_CHANGE_SECURITY 0x00000100
5612#define FILE_NOTIFY_CHANGE_STREAM_NAME 0x00000200
5613#define FILE_NOTIFY_CHANGE_STREAM_SIZE 0x00000400
5614#define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800
5615#define FILE_NOTIFY_VALID_MASK 0x00000fff
5616
5617#define FILE_ACTION_ADDED 0x00000001
5618#define FILE_ACTION_REMOVED 0x00000002
5619#define FILE_ACTION_MODIFIED 0x00000003
5620#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004
5621#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005
5622#define FILE_ACTION_ADDED_STREAM 0x00000006
5623#define FILE_ACTION_REMOVED_STREAM 0x00000007
5624#define FILE_ACTION_MODIFIED_STREAM 0x00000008
5625#define FILE_ACTION_REMOVED_BY_DELETE 0x00000009
5626#define FILE_ACTION_ID_NOT_TUNNELLED 0x0000000A
5627#define FILE_ACTION_TUNNELLED_ID_COLLISION 0x0000000B
5628/* end winnt.h */
5629
5630#define FILE_PIPE_BYTE_STREAM_TYPE 0x00000000
5631#define FILE_PIPE_MESSAGE_TYPE 0x00000001
5632
5633#define FILE_PIPE_ACCEPT_REMOTE_CLIENTS 0x00000000
5634#define FILE_PIPE_REJECT_REMOTE_CLIENTS 0x00000002
5635
5636#define FILE_PIPE_ACCEPT_REMOTE_CLIENTS 0x00000000
5637#define FILE_PIPE_REJECT_REMOTE_CLIENTS 0x00000002
5638#define FILE_PIPE_TYPE_VALID_MASK 0x00000003
5639
5640#define FILE_PIPE_BYTE_STREAM_MODE 0x00000000
5641#define FILE_PIPE_MESSAGE_MODE 0x00000001
5642
5643#define FILE_PIPE_QUEUE_OPERATION 0x00000000
5644#define FILE_PIPE_COMPLETE_OPERATION 0x00000001
5645
5646#define FILE_PIPE_INBOUND 0x00000000
5647#define FILE_PIPE_OUTBOUND 0x00000001
5648#define FILE_PIPE_FULL_DUPLEX 0x00000002
5649
5650#define FILE_PIPE_DISCONNECTED_STATE 0x00000001
5651#define FILE_PIPE_LISTENING_STATE 0x00000002
5652#define FILE_PIPE_CONNECTED_STATE 0x00000003
5653#define FILE_PIPE_CLOSING_STATE 0x00000004
5654
5655#define FILE_PIPE_CLIENT_END 0x00000000
5656#define FILE_PIPE_SERVER_END 0x00000001
5657
5658#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
5659#define FILE_CASE_PRESERVED_NAMES 0x00000002
5660#define FILE_UNICODE_ON_DISK 0x00000004
5661#define FILE_PERSISTENT_ACLS 0x00000008
5662#define FILE_FILE_COMPRESSION 0x00000010
5663#define FILE_VOLUME_QUOTAS 0x00000020
5664#define FILE_SUPPORTS_SPARSE_FILES 0x00000040
5665#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
5666#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
5667#define FILE_VOLUME_IS_COMPRESSED 0x00008000
5668#define FILE_SUPPORTS_OBJECT_IDS 0x00010000
5669#define FILE_SUPPORTS_ENCRYPTION 0x00020000
5670#define FILE_NAMED_STREAMS 0x00040000
5671#define FILE_READ_ONLY_VOLUME 0x00080000
5672#define FILE_SEQUENTIAL_WRITE_ONCE 0x00100000
5673#define FILE_SUPPORTS_TRANSACTIONS 0x00200000
5674#define FILE_SUPPORTS_HARD_LINKS 0x00400000
5675#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000
5676#define FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000
5677#define FILE_SUPPORTS_USN_JOURNAL 0x02000000
5678#define FILE_SUPPORTS_INTEGRITY_STREAMS 0x04000000
5679#define FILE_SUPPORTS_BLOCK_REFCOUNTING 0x08000000
5680#define FILE_SUPPORTS_SPARSE_VDL 0x10000000
5681#define FILE_DAX_VOLUME 0x20000000
5682
5683#define FILE_NEED_EA 0x00000080
5684
5685#define FILE_EA_TYPE_BINARY 0xfffe
5686#define FILE_EA_TYPE_ASCII 0xfffd
5687#define FILE_EA_TYPE_BITMAP 0xfffb
5688#define FILE_EA_TYPE_METAFILE 0xfffa
5689#define FILE_EA_TYPE_ICON 0xfff9
5690#define FILE_EA_TYPE_EA 0xffee
5691#define FILE_EA_TYPE_MVMT 0xffdf
5692#define FILE_EA_TYPE_MVST 0xffde
5693#define FILE_EA_TYPE_ASN1 0xffdd
5694#define FILE_EA_TYPE_FAMILY_IDS 0xff01
5695
5696typedef struct _FILE_NOTIFY_INFORMATION {
5697 ULONG NextEntryOffset;
5698 ULONG Action;
5700 WCHAR FileName[1];
5702
5703typedef struct _FILE_DIRECTORY_INFORMATION {
5704 ULONG NextEntryOffset;
5705 ULONG FileIndex;
5706 LARGE_INTEGER CreationTime;
5707 LARGE_INTEGER LastAccessTime;
5708 LARGE_INTEGER LastWriteTime;
5709 LARGE_INTEGER ChangeTime;
5710 LARGE_INTEGER EndOfFile;
5714 WCHAR FileName[1];
5716
5731
5747
5748typedef struct _FILE_BOTH_DIR_INFORMATION {
5749 ULONG NextEntryOffset;
5750 ULONG FileIndex;
5751 LARGE_INTEGER CreationTime;
5752 LARGE_INTEGER LastAccessTime;
5753 LARGE_INTEGER LastWriteTime;
5754 LARGE_INTEGER ChangeTime;
5755 LARGE_INTEGER EndOfFile;
5759 ULONG EaSize;
5760 CCHAR ShortNameLength;
5761 WCHAR ShortName[12];
5762 WCHAR FileName[1];
5764
5782
5783typedef struct _FILE_NAMES_INFORMATION {
5784 ULONG NextEntryOffset;
5785 ULONG FileIndex;
5787 WCHAR FileName[1];
5789
5791 ULONG NextEntryOffset;
5792 ULONG FileIndex;
5793 LARGE_INTEGER CreationTime;
5794 LARGE_INTEGER LastAccessTime;
5795 LARGE_INTEGER LastWriteTime;
5796 LARGE_INTEGER ChangeTime;
5797 LARGE_INTEGER EndOfFile;
5801 LARGE_INTEGER FileId;
5802 GUID LockingTransactionId;
5803 ULONG TxInfoFlags;
5804 WCHAR FileName[1];
5806
5807#define FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_WRITELOCKED 0x00000001
5808#define FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_VISIBLE_TO_TX 0x00000002
5809#define FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_VISIBLE_OUTSIDE_TX 0x00000004
5810
5811typedef struct _FILE_OBJECTID_INFORMATION {
5812 LONGLONG FileReference;
5813 UCHAR ObjectId[16];
5814 _ANONYMOUS_UNION union {
5815 _ANONYMOUS_STRUCT struct {
5816 UCHAR BirthVolumeId[16];
5817 UCHAR BirthObjectId[16];
5818 UCHAR DomainId[16];
5820 UCHAR ExtendedInfo[48];
5823
5824#define ANSI_DOS_STAR ('<')
5825#define ANSI_DOS_QM ('>')
5826#define ANSI_DOS_DOT ('"')
5827
5828#define DOS_STAR (L'<')
5829#define DOS_QM (L'>')
5830#define DOS_DOT (L'"')
5831
5832typedef struct _FILE_INTERNAL_INFORMATION {
5833 LARGE_INTEGER IndexNumber;
5835
5836typedef struct _FILE_EA_INFORMATION {
5837 ULONG EaSize;
5839
5840typedef struct _FILE_ACCESS_INFORMATION {
5841 ACCESS_MASK AccessFlags;
5843
5844typedef struct _FILE_MODE_INFORMATION {
5845 ULONG Mode;
5847
5848typedef struct _FILE_ALL_INFORMATION {
5849 FILE_BASIC_INFORMATION BasicInformation;
5850 FILE_STANDARD_INFORMATION StandardInformation;
5851 FILE_INTERNAL_INFORMATION InternalInformation;
5852 FILE_EA_INFORMATION EaInformation;
5853 FILE_ACCESS_INFORMATION AccessInformation;
5854 FILE_POSITION_INFORMATION PositionInformation;
5855 FILE_MODE_INFORMATION ModeInformation;
5856 FILE_ALIGNMENT_INFORMATION AlignmentInformation;
5857 FILE_NAME_INFORMATION NameInformation;
5859
5860typedef struct _FILE_ALLOCATION_INFORMATION {
5863
5872
5873typedef struct _FILE_LINK_INFORMATION {
5874 BOOLEAN ReplaceIfExists;
5877 WCHAR FileName[1];
5879
5886
5887typedef struct _FILE_RENAME_INFORMATION {
5888 BOOLEAN ReplaceIfExists;
5891 WCHAR FileName[1];
5893
5894typedef struct _FILE_STREAM_INFORMATION {
5895 ULONG NextEntryOffset;
5896 ULONG StreamNameLength;
5897 LARGE_INTEGER StreamSize;
5898 LARGE_INTEGER StreamAllocationSize;
5899 WCHAR StreamName[1];
5901
5907
5908typedef struct _FILE_COMPLETION_INFORMATION {
5912
5913typedef struct _FILE_PIPE_INFORMATION {
5914 ULONG ReadMode;
5915 ULONG CompletionMode;
5917
5918typedef struct _FILE_PIPE_LOCAL_INFORMATION {
5919 ULONG NamedPipeType;
5920 ULONG NamedPipeConfiguration;
5921 ULONG MaximumInstances;
5922 ULONG CurrentInstances;
5923 ULONG InboundQuota;
5924 ULONG ReadDataAvailable;
5925 ULONG OutboundQuota;
5926 ULONG WriteQuotaAvailable;
5927 ULONG NamedPipeState;
5928 ULONG NamedPipeEnd;
5930
5935
5936typedef struct _FILE_MAILSLOT_QUERY_INFORMATION {
5937 ULONG MaximumMessageSize;
5938 ULONG MailslotQuota;
5939 ULONG NextMessageSize;
5940 ULONG MessagesAvailable;
5941 LARGE_INTEGER ReadTimeout;
5943
5944typedef struct _FILE_MAILSLOT_SET_INFORMATION {
5947
5948typedef struct _FILE_REPARSE_POINT_INFORMATION {
5949 LONGLONG FileReference;
5950 ULONG Tag;
5952
5959
5965
5970
5977
5978typedef struct _FILE_GET_EA_INFORMATION {
5979 ULONG NextEntryOffset;
5980 UCHAR EaNameLength;
5981 CHAR EaName[1];
5983
5984#define REMOTE_PROTOCOL_FLAG_LOOPBACK 0x00000001
5985#define REMOTE_PROTOCOL_FLAG_OFFLINE 0x00000002
5986
5996 struct {
5998 } GenericReserved;
5999 struct {
6000 ULONG Reserved[16];
6001 } ProtocolSpecificReserved;
6003
6009
6010typedef struct _FILE_QUOTA_INFORMATION {
6011 ULONG NextEntryOffset;
6012 ULONG SidLength;
6013 LARGE_INTEGER ChangeTime;
6014 LARGE_INTEGER QuotaUsed;
6015 LARGE_INTEGER QuotaThreshold;
6016 LARGE_INTEGER QuotaLimit;
6017 SID Sid;
6019
6020typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
6021 ULONG FileSystemAttributes;
6023 ULONG FileSystemNameLength;
6024 WCHAR FileSystemName[1];
6026
6030 WCHAR DriverName[1];
6032
6036
6037#define FILE_VC_QUOTA_NONE 0x00000000
6038#define FILE_VC_QUOTA_TRACK 0x00000001
6039#define FILE_VC_QUOTA_ENFORCE 0x00000002
6040#define FILE_VC_QUOTA_MASK 0x00000003
6041#define FILE_VC_CONTENT_INDEX_DISABLED 0x00000008
6042#define FILE_VC_LOG_QUOTA_THRESHOLD 0x00000010
6043#define FILE_VC_LOG_QUOTA_LIMIT 0x00000020
6044#define FILE_VC_LOG_VOLUME_THRESHOLD 0x00000040
6045#define FILE_VC_LOG_VOLUME_LIMIT 0x00000080
6046#define FILE_VC_QUOTAS_INCOMPLETE 0x00000100
6047#define FILE_VC_QUOTAS_REBUILDING 0x00000200
6048#define FILE_VC_VALID_MASK 0x000003ff
6049
6058
6059#ifndef _FILESYSTEMFSCTL_
6060#define _FILESYSTEMFSCTL_
6061
6062#define FSCTL_REQUEST_OPLOCK_LEVEL_1 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
6063#define FSCTL_REQUEST_OPLOCK_LEVEL_2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
6064#define FSCTL_REQUEST_BATCH_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
6065#define FSCTL_OPLOCK_BREAK_ACKNOWLEDGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
6066#define FSCTL_OPBATCH_ACK_CLOSE_PENDING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
6067#define FSCTL_OPLOCK_BREAK_NOTIFY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
6068#define FSCTL_LOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
6069#define FSCTL_UNLOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
6070#define FSCTL_DISMOUNT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
6071#define FSCTL_IS_VOLUME_MOUNTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
6072#define FSCTL_IS_PATHNAME_VALID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
6073#define FSCTL_MARK_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
6074#define FSCTL_QUERY_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 14, METHOD_NEITHER, FILE_ANY_ACCESS)
6075#define FSCTL_GET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
6076#define FSCTL_SET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6077#define FSCTL_SET_BOOTLOADER_ACCESSED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 19, METHOD_NEITHER, FILE_ANY_ACCESS)
6078
6079#define FSCTL_OPLOCK_BREAK_ACK_NO_2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
6080#define FSCTL_INVALIDATE_VOLUMES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
6081#define FSCTL_QUERY_FAT_BPB CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
6082#define FSCTL_REQUEST_FILTER_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
6083#define FSCTL_FILESYSTEM_GET_STATISTICS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
6084
6085#if (_WIN32_WINNT >= 0x0400)
6086
6087#define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)
6088#define FSCTL_GET_NTFS_FILE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS)
6089#define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 27, METHOD_NEITHER, FILE_ANY_ACCESS)
6090#define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 28, METHOD_NEITHER, FILE_ANY_ACCESS)
6091#define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6092#define FSCTL_IS_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
6093#define FSCTL_ALLOW_EXTENDED_DASD_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 32, METHOD_NEITHER, FILE_ANY_ACCESS)
6094
6095#endif
6096
6097#if (_WIN32_WINNT >= 0x0500)
6098
6099#define FSCTL_FIND_FILES_BY_SID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS)
6100#define FSCTL_SET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6101#define FSCTL_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS)
6102#define FSCTL_DELETE_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6103#define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6104#define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
6105#define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6106#define FSCTL_ENUM_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44, METHOD_NEITHER, FILE_ANY_ACCESS)
6107#define FSCTL_SECURITY_ID_CHECK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45, METHOD_NEITHER, FILE_READ_DATA)
6108#define FSCTL_READ_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46, METHOD_NEITHER, FILE_ANY_ACCESS)
6109#define FSCTL_SET_OBJECT_ID_EXTENDED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6110#define FSCTL_CREATE_OR_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS)
6111#define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6112#define FSCTL_SET_ZERO_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_DATA)
6113#define FSCTL_QUERY_ALLOCATED_RANGES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51, METHOD_NEITHER, FILE_READ_DATA)
6114#define FSCTL_ENABLE_UPGRADE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 52, METHOD_BUFFERED, FILE_WRITE_DATA)
6115#define FSCTL_SET_ENCRYPTION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_NEITHER, FILE_ANY_ACCESS)
6116#define FSCTL_ENCRYPTION_FSCTL_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54, METHOD_NEITHER, FILE_ANY_ACCESS)
6117#define FSCTL_WRITE_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55, METHOD_NEITHER, FILE_SPECIAL_ACCESS)
6118#define FSCTL_READ_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56, METHOD_NEITHER, FILE_SPECIAL_ACCESS)
6119#define FSCTL_CREATE_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57, METHOD_NEITHER, FILE_ANY_ACCESS)
6120#define FSCTL_READ_FILE_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58, METHOD_NEITHER, FILE_ANY_ACCESS)
6121#define FSCTL_WRITE_USN_CLOSE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59, METHOD_NEITHER, FILE_ANY_ACCESS)
6122#define FSCTL_EXTEND_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS)
6123#define FSCTL_QUERY_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 61, METHOD_BUFFERED, FILE_ANY_ACCESS)
6124#define FSCTL_DELETE_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 62, METHOD_BUFFERED, FILE_ANY_ACCESS)
6125#define FSCTL_MARK_HANDLE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 63, METHOD_BUFFERED, FILE_ANY_ACCESS)
6126#define FSCTL_SIS_COPYFILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 64, METHOD_BUFFERED, FILE_ANY_ACCESS)
6127#define FSCTL_SIS_LINK_FILES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 65, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6128#define FSCTL_RECALL_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 69, METHOD_NEITHER, FILE_ANY_ACCESS)
6129#define FSCTL_READ_FROM_PLEX CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 71, METHOD_OUT_DIRECT, FILE_READ_DATA)
6130#define FSCTL_FILE_PREFETCH CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 72, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6131
6132#endif
6133
6134#if (_WIN32_WINNT >= 0x0600)
6135
6136#define FSCTL_MAKE_MEDIA_COMPATIBLE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 76, METHOD_BUFFERED, FILE_WRITE_DATA)
6137#define FSCTL_SET_DEFECT_MANAGEMENT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 77, METHOD_BUFFERED, FILE_WRITE_DATA)
6138#define FSCTL_QUERY_SPARING_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 78, METHOD_BUFFERED, FILE_ANY_ACCESS)
6139#define FSCTL_QUERY_ON_DISK_VOLUME_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 79, METHOD_BUFFERED, FILE_ANY_ACCESS)
6140#define FSCTL_SET_VOLUME_COMPRESSION_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 80, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6141#define FSCTL_TXFS_MODIFY_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 81, METHOD_BUFFERED, FILE_WRITE_DATA)
6142#define FSCTL_TXFS_QUERY_RM_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 82, METHOD_BUFFERED, FILE_READ_DATA)
6143#define FSCTL_TXFS_ROLLFORWARD_REDO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 84, METHOD_BUFFERED, FILE_WRITE_DATA)
6144#define FSCTL_TXFS_ROLLFORWARD_UNDO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 85, METHOD_BUFFERED, FILE_WRITE_DATA)
6145#define FSCTL_TXFS_START_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 86, METHOD_BUFFERED, FILE_WRITE_DATA)
6146#define FSCTL_TXFS_SHUTDOWN_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 87, METHOD_BUFFERED, FILE_WRITE_DATA)
6147#define FSCTL_TXFS_READ_BACKUP_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 88, METHOD_BUFFERED, FILE_READ_DATA)
6148#define FSCTL_TXFS_WRITE_BACKUP_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 89, METHOD_BUFFERED, FILE_WRITE_DATA)
6149#define FSCTL_TXFS_CREATE_SECONDARY_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 90, METHOD_BUFFERED, FILE_WRITE_DATA)
6150#define FSCTL_TXFS_GET_METADATA_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 91, METHOD_BUFFERED, FILE_READ_DATA)
6151#define FSCTL_TXFS_GET_TRANSACTED_VERSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 92, METHOD_BUFFERED, FILE_READ_DATA)
6152#define FSCTL_TXFS_SAVEPOINT_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 94, METHOD_BUFFERED, FILE_WRITE_DATA)
6153#define FSCTL_TXFS_CREATE_MINIVERSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 95, METHOD_BUFFERED, FILE_WRITE_DATA)
6154#define FSCTL_TXFS_TRANSACTION_ACTIVE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 99, METHOD_BUFFERED, FILE_READ_DATA)
6155#define FSCTL_SET_ZERO_ON_DEALLOCATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 101, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6156#define FSCTL_SET_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 102, METHOD_BUFFERED, FILE_ANY_ACCESS)
6157#define FSCTL_GET_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 103, METHOD_BUFFERED, FILE_ANY_ACCESS)
6158#define FSCTL_WAIT_FOR_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 104, METHOD_BUFFERED, FILE_ANY_ACCESS)
6159#define FSCTL_INITIATE_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 106, METHOD_BUFFERED, FILE_ANY_ACCESS)
6160#define FSCTL_CSC_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 107, METHOD_NEITHER, FILE_ANY_ACCESS)
6161#define FSCTL_SHRINK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 108, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6162#define FSCTL_SET_SHORT_NAME_BEHAVIOR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 109, METHOD_BUFFERED, FILE_ANY_ACCESS)
6163#define FSCTL_DFSR_SET_GHOST_HANDLE_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 110, METHOD_BUFFERED, FILE_ANY_ACCESS)
6164#define FSCTL_TXFS_LIST_TRANSACTION_LOCKED_FILES \
6165 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_READ_DATA)
6166#define FSCTL_TXFS_LIST_TRANSACTIONS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 121, METHOD_BUFFERED, FILE_READ_DATA)
6167#define FSCTL_QUERY_PAGEFILE_ENCRYPTION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 122, METHOD_BUFFERED, FILE_ANY_ACCESS)
6168#define FSCTL_RESET_VOLUME_ALLOCATION_HINTS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 123, METHOD_BUFFERED, FILE_ANY_ACCESS)
6169#define FSCTL_TXFS_READ_BACKUP_INFORMATION2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 126, METHOD_BUFFERED, FILE_ANY_ACCESS)
6170
6171#endif
6172
6173#if (_WIN32_WINNT >= 0x0601)
6174
6175#define FSCTL_QUERY_DEPENDENT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 124, METHOD_BUFFERED, FILE_ANY_ACCESS)
6176#define FSCTL_SD_GLOBAL_CHANGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 125, METHOD_BUFFERED, FILE_ANY_ACCESS)
6177#define FSCTL_LOOKUP_STREAM_FROM_CLUSTER CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 127, METHOD_BUFFERED, FILE_ANY_ACCESS)
6178#define FSCTL_TXFS_WRITE_BACKUP_INFORMATION2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 128, METHOD_BUFFERED, FILE_ANY_ACCESS)
6179#define FSCTL_FILE_TYPE_NOTIFICATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 129, METHOD_BUFFERED, FILE_ANY_ACCESS)
6180#define FSCTL_GET_BOOT_AREA_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 140, METHOD_BUFFERED, FILE_ANY_ACCESS)
6181#define FSCTL_GET_RETRIEVAL_POINTER_BASE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 141, METHOD_BUFFERED, FILE_ANY_ACCESS)
6182#define FSCTL_SET_PERSISTENT_VOLUME_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 142, METHOD_BUFFERED, FILE_ANY_ACCESS)
6183#define FSCTL_QUERY_PERSISTENT_VOLUME_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 143, METHOD_BUFFERED, FILE_ANY_ACCESS)
6184#define FSCTL_REQUEST_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 144, METHOD_BUFFERED, FILE_ANY_ACCESS)
6185#define FSCTL_CSV_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 145, METHOD_BUFFERED, FILE_ANY_ACCESS)
6186#define FSCTL_IS_CSV_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 146, METHOD_BUFFERED, FILE_ANY_ACCESS)
6187#define FSCTL_QUERY_FILE_SYSTEM_RECOGNITION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 147, METHOD_BUFFERED, FILE_ANY_ACCESS)
6188#define FSCTL_CSV_GET_VOLUME_PATH_NAME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 148, METHOD_BUFFERED, FILE_ANY_ACCESS)
6189#define FSCTL_CSV_GET_VOLUME_NAME_FOR_VOLUME_MOUNT_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 149, METHOD_BUFFERED, FILE_ANY_ACCESS)
6190#define FSCTL_CSV_GET_VOLUME_PATH_NAMES_FOR_VOLUME_NAME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 150, METHOD_BUFFERED, FILE_ANY_ACCESS)
6191#define FSCTL_IS_FILE_ON_CSV_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 151, METHOD_BUFFERED, FILE_ANY_ACCESS)
6192#define FSCTL_CSV_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 155, METHOD_BUFFERED, FILE_ANY_ACCESS)
6193
6194typedef struct _CSV_NAMESPACE_INFO {
6195 ULONG Version;
6199} CSV_NAMESPACE_INFO, *PCSV_NAMESPACE_INFO;
6200
6201#define CSV_NAMESPACE_INFO_V1 (sizeof(CSV_NAMESPACE_INFO))
6202#define CSV_INVALID_DEVICE_NUMBER 0xFFFFFFFF
6203
6204#endif
6205
6206#if (_WIN32_WINNT >= 0x0602)
6207
6208#define FSCTL_FILE_LEVEL_TRIM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 130, METHOD_BUFFERED, FILE_WRITE_DATA)
6209#define FSCTL_CORRUPTION_HANDLING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 152, METHOD_BUFFERED, FILE_ANY_ACCESS)
6210#define FSCTL_OFFLOAD_READ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 153, METHOD_BUFFERED, FILE_READ_ACCESS)
6211#define FSCTL_OFFLOAD_WRITE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 154, METHOD_BUFFERED, FILE_WRITE_ACCESS)
6212#define FSCTL_SET_PURGE_FAILURE_MODE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 156, METHOD_BUFFERED, FILE_ANY_ACCESS)
6213#define FSCTL_QUERY_FILE_LAYOUT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 157, METHOD_NEITHER, FILE_ANY_ACCESS)
6214#define FSCTL_IS_VOLUME_OWNED_BYCSVFS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 158, METHOD_BUFFERED, FILE_ANY_ACCESS)
6215#define FSCTL_GET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 159, METHOD_BUFFERED, FILE_ANY_ACCESS)
6216#define FSCTL_SET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 160, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6217#define FSCTL_QUERY_FILE_REGIONS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 161, METHOD_BUFFERED, FILE_ANY_ACCESS)
6218#define FSCTL_DEDUP_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 165, METHOD_BUFFERED, FILE_ANY_ACCESS)
6219#define FSCTL_DEDUP_QUERY_FILE_HASHES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 166, METHOD_NEITHER, FILE_READ_DATA)
6220#define FSCTL_RKF_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 171, METHOD_NEITHER, FILE_ANY_ACCESS)
6221#define FSCTL_SCRUB_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 172, METHOD_BUFFERED, FILE_ANY_ACCESS)
6222#define FSCTL_REPAIR_COPIES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 173, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6223#define FSCTL_DISABLE_LOCAL_BUFFERING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 174, METHOD_BUFFERED, FILE_ANY_ACCESS)
6224#define FSCTL_CSV_MGMT_LOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 175, METHOD_BUFFERED, FILE_ANY_ACCESS)
6225#define FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICS \
6226 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 176, METHOD_BUFFERED, FILE_ANY_ACCESS)
6227#define FSCTL_ADVANCE_FILE_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 177, METHOD_BUFFERED, FILE_ANY_ACCESS)
6228#define FSCTL_CSV_SYNC_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 178, METHOD_BUFFERED, FILE_ANY_ACCESS)
6229#define FSCTL_CSV_QUERY_VETO_FILE_DIRECT_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 179, METHOD_BUFFERED, FILE_ANY_ACCESS)
6230#define FSCTL_WRITE_USN_REASON CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 180, METHOD_BUFFERED, FILE_ANY_ACCESS)
6231#define FSCTL_CSV_CONTROL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 181, METHOD_BUFFERED, FILE_ANY_ACCESS)
6232#define FSCTL_GET_REFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 182, METHOD_BUFFERED, FILE_ANY_ACCESS)
6233
6234#endif
6235
6236#if (_WIN32_WINNT >= 0x0603)
6237
6238#define FSCTL_DUPLICATE_EXTENTS_TO_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 209, METHOD_BUFFERED, FILE_WRITE_DATA)
6239
6240#endif
6241
6242#define FSCTL_MARK_AS_SYSTEM_HIVE FSCTL_SET_BOOTLOADER_ACCESSED
6243
6244typedef struct _PATHNAME_BUFFER {
6248
6250 UCHAR First0x24BytesOfBootSector[0x24];
6252
6253#if (_WIN32_WINNT >= 0x0400)
6254
6255typedef struct _NTFS_VOLUME_DATA_BUFFER {
6256 LARGE_INTEGER VolumeSerialNumber;
6257 LARGE_INTEGER NumberSectors;
6258 LARGE_INTEGER TotalClusters;
6260 LARGE_INTEGER TotalReserved;
6261 ULONG BytesPerSector;
6262 ULONG BytesPerCluster;
6263 ULONG BytesPerFileRecordSegment;
6264 ULONG ClustersPerFileRecordSegment;
6265 LARGE_INTEGER MftValidDataLength;
6266 LARGE_INTEGER MftStartLcn;
6267 LARGE_INTEGER Mft2StartLcn;
6268 LARGE_INTEGER MftZoneStart;
6269 LARGE_INTEGER MftZoneEnd;
6271
6272typedef struct _NTFS_EXTENDED_VOLUME_DATA {
6277
6278typedef struct _STARTING_LCN_INPUT_BUFFER {
6279 LARGE_INTEGER StartingLcn;
6281
6282typedef struct _VOLUME_BITMAP_BUFFER {
6283 LARGE_INTEGER StartingLcn;
6284 LARGE_INTEGER BitmapSize;
6285 UCHAR Buffer[1];
6287
6288typedef struct _STARTING_VCN_INPUT_BUFFER {
6289 LARGE_INTEGER StartingVcn;
6291
6292typedef struct _RETRIEVAL_POINTERS_BUFFER {
6293 ULONG ExtentCount;
6294 LARGE_INTEGER StartingVcn;
6295 struct {
6296 LARGE_INTEGER NextVcn;
6297 LARGE_INTEGER Lcn;
6298 } Extents[1];
6300
6301typedef struct _NTFS_FILE_RECORD_INPUT_BUFFER {
6302 LARGE_INTEGER FileReferenceNumber;
6304
6305typedef struct _NTFS_FILE_RECORD_OUTPUT_BUFFER {
6306 LARGE_INTEGER FileReferenceNumber;
6307 ULONG FileRecordLength;
6308 UCHAR FileRecordBuffer[1];
6310
6311typedef struct _MOVE_FILE_DATA {
6313 LARGE_INTEGER StartingVcn;
6314 LARGE_INTEGER StartingLcn;
6315 ULONG ClusterCount;
6317
6318typedef struct _MOVE_FILE_RECORD_DATA {
6320 LARGE_INTEGER SourceFileRecord;
6321 LARGE_INTEGER TargetFileRecord;
6322} MOVE_FILE_RECORD_DATA, *PMOVE_FILE_RECORD_DATA;
6323
6324#if defined(_WIN64)
6325typedef struct _MOVE_FILE_DATA32 {
6327 LARGE_INTEGER StartingVcn;
6328 LARGE_INTEGER StartingLcn;
6329 ULONG ClusterCount;
6330} MOVE_FILE_DATA32, *PMOVE_FILE_DATA32;
6331#endif
6332
6333#endif /* (_WIN32_WINNT >= 0x0400) */
6334
6335#if (_WIN32_WINNT >= 0x0500)
6336
6337typedef struct _FIND_BY_SID_DATA {
6338 ULONG Restart;
6339 SID Sid;
6340} FIND_BY_SID_DATA, *PFIND_BY_SID_DATA;
6341
6342typedef struct _FIND_BY_SID_OUTPUT {
6343 ULONG NextEntryOffset;
6344 ULONG FileIndex;
6346 WCHAR FileName[1];
6347} FIND_BY_SID_OUTPUT, *PFIND_BY_SID_OUTPUT;
6348
6349typedef struct _MFT_ENUM_DATA {
6350 ULONGLONG StartFileReferenceNumber;
6351 USN LowUsn;
6352 USN HighUsn;
6353} MFT_ENUM_DATA, *PMFT_ENUM_DATA;
6354
6355typedef struct _CREATE_USN_JOURNAL_DATA {
6357 ULONGLONG AllocationDelta;
6358} CREATE_USN_JOURNAL_DATA, *PCREATE_USN_JOURNAL_DATA;
6359
6360typedef struct _READ_USN_JOURNAL_DATA {
6361 USN StartUsn;
6362 ULONG ReasonMask;
6363 ULONG ReturnOnlyOnClose;
6365 ULONGLONG BytesToWaitFor;
6366 ULONGLONG UsnJournalID;
6367} READ_USN_JOURNAL_DATA, *PREAD_USN_JOURNAL_DATA;
6368
6369typedef struct _USN_RECORD {
6370 ULONG RecordLength;
6373 ULONGLONG FileReferenceNumber;
6374 ULONGLONG ParentFileReferenceNumber;
6375 USN Usn;
6377 ULONG Reason;
6378 ULONG SourceInfo;
6379 ULONG SecurityId;
6382 USHORT FileNameOffset;
6383 WCHAR FileName[1];
6384} USN_RECORD, *PUSN_RECORD;
6385
6386#define USN_PAGE_SIZE (0x1000)
6387
6388#define USN_REASON_DATA_OVERWRITE (0x00000001)
6389#define USN_REASON_DATA_EXTEND (0x00000002)
6390#define USN_REASON_DATA_TRUNCATION (0x00000004)
6391#define USN_REASON_NAMED_DATA_OVERWRITE (0x00000010)
6392#define USN_REASON_NAMED_DATA_EXTEND (0x00000020)
6393#define USN_REASON_NAMED_DATA_TRUNCATION (0x00000040)
6394#define USN_REASON_FILE_CREATE (0x00000100)
6395#define USN_REASON_FILE_DELETE (0x00000200)
6396#define USN_REASON_EA_CHANGE (0x00000400)
6397#define USN_REASON_SECURITY_CHANGE (0x00000800)
6398#define USN_REASON_RENAME_OLD_NAME (0x00001000)
6399#define USN_REASON_RENAME_NEW_NAME (0x00002000)
6400#define USN_REASON_INDEXABLE_CHANGE (0x00004000)
6401#define USN_REASON_BASIC_INFO_CHANGE (0x00008000)
6402#define USN_REASON_HARD_LINK_CHANGE (0x00010000)
6403#define USN_REASON_COMPRESSION_CHANGE (0x00020000)
6404#define USN_REASON_ENCRYPTION_CHANGE (0x00040000)
6405#define USN_REASON_OBJECT_ID_CHANGE (0x00080000)
6406#define USN_REASON_REPARSE_POINT_CHANGE (0x00100000)
6407#define USN_REASON_STREAM_CHANGE (0x00200000)
6408#define USN_REASON_TRANSACTED_CHANGE (0x00400000)
6409#define USN_REASON_CLOSE (0x80000000)
6410
6411typedef struct _USN_JOURNAL_DATA {
6412 ULONGLONG UsnJournalID;
6413 USN FirstUsn;
6414 USN NextUsn;
6415 USN LowestValidUsn;
6416 USN MaxUsn;
6418 ULONGLONG AllocationDelta;
6419} USN_JOURNAL_DATA, *PUSN_JOURNAL_DATA;
6420
6421typedef struct _DELETE_USN_JOURNAL_DATA {
6422 ULONGLONG UsnJournalID;
6423 ULONG DeleteFlags;
6424} DELETE_USN_JOURNAL_DATA, *PDELETE_USN_JOURNAL_DATA;
6425
6426#define USN_DELETE_FLAG_DELETE (0x00000001)
6427#define USN_DELETE_FLAG_NOTIFY (0x00000002)
6428#define USN_DELETE_VALID_FLAGS (0x00000003)
6429
6430typedef struct _MARK_HANDLE_INFO {
6431 ULONG UsnSourceInfo;
6433 ULONG HandleInfo;
6434} MARK_HANDLE_INFO, *PMARK_HANDLE_INFO;
6435
6436#if defined(_WIN64)
6437typedef struct _MARK_HANDLE_INFO32 {
6438 ULONG UsnSourceInfo;
6440 ULONG HandleInfo;
6441} MARK_HANDLE_INFO32, *PMARK_HANDLE_INFO32;
6442#endif
6443
6444#define USN_SOURCE_DATA_MANAGEMENT (0x00000001)
6445#define USN_SOURCE_AUXILIARY_DATA (0x00000002)
6446#define USN_SOURCE_REPLICATION_MANAGEMENT (0x00000004)
6447
6448#define MARK_HANDLE_PROTECT_CLUSTERS (0x00000001)
6449#define MARK_HANDLE_TXF_SYSTEM_LOG (0x00000004)
6450#define MARK_HANDLE_NOT_TXF_SYSTEM_LOG (0x00000008)
6451
6452typedef struct _BULK_SECURITY_TEST_DATA {
6454 ULONG SecurityIds[1];
6455} BULK_SECURITY_TEST_DATA, *PBULK_SECURITY_TEST_DATA;
6456
6457#define VOLUME_IS_DIRTY (0x00000001)
6458#define VOLUME_UPGRADE_SCHEDULED (0x00000002)
6459#define VOLUME_SESSION_OPEN (0x00000004)
6460
6461typedef struct _FILE_PREFETCH {
6462 ULONG Type;
6463 ULONG Count;
6464 ULONGLONG Prefetch[1];
6465} FILE_PREFETCH, *PFILE_PREFETCH;
6466
6467typedef struct _FILE_PREFETCH_EX {
6468 ULONG Type;
6469 ULONG Count;
6470 PVOID Context;
6471 ULONGLONG Prefetch[1];
6472} FILE_PREFETCH_EX, *PFILE_PREFETCH_EX;
6473
6474#define FILE_PREFETCH_TYPE_FOR_CREATE 0x1
6475#define FILE_PREFETCH_TYPE_FOR_DIRENUM 0x2
6476#define FILE_PREFETCH_TYPE_FOR_CREATE_EX 0x3
6477#define FILE_PREFETCH_TYPE_FOR_DIRENUM_EX 0x4
6478
6479#define FILE_PREFETCH_TYPE_MAX 0x4
6480
6481typedef struct _FILE_OBJECTID_BUFFER {
6482 UCHAR ObjectId[16];
6483 _ANONYMOUS_UNION union {
6484 _ANONYMOUS_STRUCT struct {
6485 UCHAR BirthVolumeId[16];
6486 UCHAR BirthObjectId[16];
6487 UCHAR DomainId[16];
6489 UCHAR ExtendedInfo[48];
6492
6493typedef struct _FILE_SET_SPARSE_BUFFER {
6494 BOOLEAN SetSparse;
6495} FILE_SET_SPARSE_BUFFER, *PFILE_SET_SPARSE_BUFFER;
6496
6497typedef struct _FILE_ZERO_DATA_INFORMATION {
6499 LARGE_INTEGER BeyondFinalZero;
6500} FILE_ZERO_DATA_INFORMATION, *PFILE_ZERO_DATA_INFORMATION;
6501
6502typedef struct _FILE_ALLOCATED_RANGE_BUFFER {
6505} FILE_ALLOCATED_RANGE_BUFFER, *PFILE_ALLOCATED_RANGE_BUFFER;
6506
6507typedef struct _ENCRYPTION_BUFFER {
6508 ULONG EncryptionOperation;
6509 UCHAR Private[1];
6510} ENCRYPTION_BUFFER, *PENCRYPTION_BUFFER;
6511
6512#define FILE_SET_ENCRYPTION 0x00000001
6513#define FILE_CLEAR_ENCRYPTION 0x00000002
6514#define STREAM_SET_ENCRYPTION 0x00000003
6515#define STREAM_CLEAR_ENCRYPTION 0x00000004
6516
6517#define MAXIMUM_ENCRYPTION_VALUE 0x00000004
6518
6519typedef struct _DECRYPTION_STATUS_BUFFER {
6520 BOOLEAN NoEncryptedStreams;
6521} DECRYPTION_STATUS_BUFFER, *PDECRYPTION_STATUS_BUFFER;
6522
6523#define ENCRYPTION_FORMAT_DEFAULT (0x01)
6524
6525#define COMPRESSION_FORMAT_SPARSE (0x4000)
6526
6527typedef struct _REQUEST_RAW_ENCRYPTED_DATA {
6529 ULONG Length;
6530} REQUEST_RAW_ENCRYPTED_DATA, *PREQUEST_RAW_ENCRYPTED_DATA;
6531
6532typedef struct _ENCRYPTED_DATA_INFO {
6533 ULONGLONG StartingFileOffset;
6535 ULONG BytesWithinFileSize;
6536 ULONG BytesWithinValidDataLength;
6537 USHORT CompressionFormat;
6538 UCHAR DataUnitShift;
6539 UCHAR ChunkShift;
6540 UCHAR ClusterShift;
6541 UCHAR EncryptionFormat;
6542 USHORT NumberOfDataBlocks;
6543 ULONG DataBlockSize[ANYSIZE_ARRAY];
6544} ENCRYPTED_DATA_INFO, *PENCRYPTED_DATA_INFO;
6545
6546typedef struct _PLEX_READ_DATA_REQUEST {
6548 ULONG ByteLength;
6549 ULONG PlexNumber;
6550} PLEX_READ_DATA_REQUEST, *PPLEX_READ_DATA_REQUEST;
6551
6552typedef struct _SI_COPYFILE {
6553 ULONG SourceFileNameLength;
6554 ULONG DestinationFileNameLength;
6555 ULONG Flags;
6557} SI_COPYFILE, *PSI_COPYFILE;
6558
6559#define COPYFILE_SIS_LINK 0x0001
6560#define COPYFILE_SIS_REPLACE 0x0002
6561#define COPYFILE_SIS_FLAGS 0x0003
6562
6563#endif /* (_WIN32_WINNT >= 0x0500) */
6564
6565#if (_WIN32_WINNT >= 0x0600)
6566
6567typedef struct _FILE_MAKE_COMPATIBLE_BUFFER {
6568 BOOLEAN CloseDisc;
6569} FILE_MAKE_COMPATIBLE_BUFFER, *PFILE_MAKE_COMPATIBLE_BUFFER;
6570
6571typedef struct _FILE_SET_DEFECT_MGMT_BUFFER {
6572 BOOLEAN Disable;
6573} FILE_SET_DEFECT_MGMT_BUFFER, *PFILE_SET_DEFECT_MGMT_BUFFER;
6574
6575typedef struct _FILE_QUERY_SPARING_BUFFER {
6576 ULONG SparingUnitBytes;
6577 BOOLEAN SoftwareSparing;
6578 ULONG TotalSpareBlocks;
6579 ULONG FreeSpareBlocks;
6580} FILE_QUERY_SPARING_BUFFER, *PFILE_QUERY_SPARING_BUFFER;
6581
6582typedef struct _FILE_QUERY_ON_DISK_VOL_INFO_BUFFER {
6583 LARGE_INTEGER DirectoryCount;
6585 USHORT FsFormatMajVersion;
6586 USHORT FsFormatMinVersion;
6587 WCHAR FsFormatName[12];
6589 LARGE_INTEGER LastUpdateTime;
6590 WCHAR CopyrightInfo[34];
6591 WCHAR AbstractInfo[34];
6592 WCHAR FormattingImplementationInfo[34];
6593 WCHAR LastModifyingImplementationInfo[34];
6594} FILE_QUERY_ON_DISK_VOL_INFO_BUFFER, *PFILE_QUERY_ON_DISK_VOL_INFO_BUFFER;
6595
6596#define SET_REPAIR_ENABLED (0x00000001)
6597#define SET_REPAIR_VOLUME_BITMAP_SCAN (0x00000002)
6598#define SET_REPAIR_DELETE_CROSSLINK (0x00000004)
6599#define SET_REPAIR_WARN_ABOUT_DATA_LOSS (0x00000008)
6600#define SET_REPAIR_DISABLED_AND_BUGCHECK_ON_CORRUPT (0x00000010)
6601#define SET_REPAIR_VALID_MASK (0x0000001F)
6602
6603typedef enum _SHRINK_VOLUME_REQUEST_TYPES {
6604 ShrinkPrepare = 1,
6605 ShrinkCommit,
6606 ShrinkAbort
6607} SHRINK_VOLUME_REQUEST_TYPES, *PSHRINK_VOLUME_REQUEST_TYPES;
6608
6609typedef struct _SHRINK_VOLUME_INFORMATION {
6610 SHRINK_VOLUME_REQUEST_TYPES ShrinkRequestType;
6612 LONGLONG NewNumberOfSectors;
6613} SHRINK_VOLUME_INFORMATION, *PSHRINK_VOLUME_INFORMATION;
6614
6615#define TXFS_RM_FLAG_LOGGING_MODE 0x00000001
6616#define TXFS_RM_FLAG_RENAME_RM 0x00000002
6617#define TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX 0x00000004
6618#define TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN 0x00000008
6619#define TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS 0x00000010
6620#define TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT 0x00000020
6621#define TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE 0x00000040
6622#define TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX 0x00000080
6623#define TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN 0x00000100
6624#define TXFS_RM_FLAG_GROW_LOG 0x00000400
6625#define TXFS_RM_FLAG_SHRINK_LOG 0x00000800
6626#define TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE 0x00001000
6627#define TXFS_RM_FLAG_PRESERVE_CHANGES 0x00002000
6628#define TXFS_RM_FLAG_RESET_RM_AT_NEXT_START 0x00004000
6629#define TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START 0x00008000
6630#define TXFS_RM_FLAG_PREFER_CONSISTENCY 0x00010000
6631#define TXFS_RM_FLAG_PREFER_AVAILABILITY 0x00020000
6632
6633#define TXFS_LOGGING_MODE_SIMPLE (0x0001)
6634#define TXFS_LOGGING_MODE_FULL (0x0002)
6635
6636#define TXFS_TRANSACTION_STATE_NONE 0x00
6637#define TXFS_TRANSACTION_STATE_ACTIVE 0x01
6638#define TXFS_TRANSACTION_STATE_PREPARED 0x02
6639#define TXFS_TRANSACTION_STATE_NOTACTIVE 0x03
6640
6641#define TXFS_MODIFY_RM_VALID_FLAGS (TXFS_RM_FLAG_LOGGING_MODE | \
6642 TXFS_RM_FLAG_RENAME_RM | \
6643 TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX | \
6644 TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN | \
6645 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
6646 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
6647 TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE | \
6648 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
6649 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN | \
6650 TXFS_RM_FLAG_SHRINK_LOG | \
6651 TXFS_RM_FLAG_GROW_LOG | \
6652 TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE | \
6653 TXFS_RM_FLAG_PRESERVE_CHANGES | \
6654 TXFS_RM_FLAG_RESET_RM_AT_NEXT_START | \
6655 TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START | \
6656 TXFS_RM_FLAG_PREFER_CONSISTENCY | \
6657 TXFS_RM_FLAG_PREFER_AVAILABILITY)
6658
6659typedef struct _TXFS_MODIFY_RM {
6660 ULONG Flags;
6661 ULONG LogContainerCountMax;
6662 ULONG LogContainerCountMin;
6663 ULONG LogContainerCount;
6664 ULONG LogGrowthIncrement;
6665 ULONG LogAutoShrinkPercentage;
6667 USHORT LoggingMode;
6668} TXFS_MODIFY_RM, *PTXFS_MODIFY_RM;
6669
6670#define TXFS_RM_STATE_NOT_STARTED 0
6671#define TXFS_RM_STATE_STARTING 1
6672#define TXFS_RM_STATE_ACTIVE 2
6673#define TXFS_RM_STATE_SHUTTING_DOWN 3
6674
6675#define TXFS_QUERY_RM_INFORMATION_VALID_FLAGS \
6676 (TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
6677 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
6678 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
6679 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN | \
6680 TXFS_RM_FLAG_RESET_RM_AT_NEXT_START | \
6681 TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START | \
6682 TXFS_RM_FLAG_PREFER_CONSISTENCY | \
6683 TXFS_RM_FLAG_PREFER_AVAILABILITY)
6684
6685typedef struct _TXFS_QUERY_RM_INFORMATION {
6686 ULONG BytesRequired;
6687 ULONGLONG TailLsn;
6688 ULONGLONG CurrentLsn;
6689 ULONGLONG ArchiveTailLsn;
6690 ULONGLONG LogContainerSize;
6691 LARGE_INTEGER HighestVirtualClock;
6692 ULONG LogContainerCount;
6693 ULONG LogContainerCountMax;
6694 ULONG LogContainerCountMin;
6695 ULONG LogGrowthIncrement;
6696 ULONG LogAutoShrinkPercentage;
6697 ULONG Flags;
6698 USHORT LoggingMode;
6700 ULONG RmState;
6701 ULONGLONG LogCapacity;
6702 ULONGLONG LogFree;
6703 ULONGLONG TopsSize;
6704 ULONGLONG TopsUsed;
6705 ULONGLONG TransactionCount;
6706 ULONGLONG OnePCCount;
6707 ULONGLONG TwoPCCount;
6708 ULONGLONG NumberLogFileFull;
6709 ULONGLONG OldestTransactionAge;
6710 GUID RMName;
6711 ULONG TmLogPathOffset;
6712} TXFS_QUERY_RM_INFORMATION, *PTXFS_QUERY_RM_INFORMATION;
6713
6714#define TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN 0x01
6715#define TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK 0x02
6716
6717#define TXFS_ROLLFORWARD_REDO_VALID_FLAGS \
6718 (TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN | \
6719 TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK)
6720
6721typedef struct _TXFS_ROLLFORWARD_REDO_INFORMATION {
6722 LARGE_INTEGER LastVirtualClock;
6723 ULONGLONG LastRedoLsn;
6724 ULONGLONG HighestRecoveryLsn;
6725 ULONG Flags;
6726} TXFS_ROLLFORWARD_REDO_INFORMATION, *PTXFS_ROLLFORWARD_REDO_INFORMATION;
6727
6728#define TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX 0x00000001
6729#define TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN 0x00000002
6730#define TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE 0x00000004
6731#define TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS 0x00000008
6732#define TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT 0x00000010
6733#define TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE 0x00000020
6734#define TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX 0x00000040
6735#define TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN 0x00000080
6736
6737#define TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT 0x00000200
6738#define TXFS_START_RM_FLAG_LOGGING_MODE 0x00000400
6739#define TXFS_START_RM_FLAG_PRESERVE_CHANGES 0x00000800
6740
6741#define TXFS_START_RM_FLAG_PREFER_CONSISTENCY 0x00001000
6742#define TXFS_START_RM_FLAG_PREFER_AVAILABILITY 0x00002000
6743
6744#define TXFS_START_RM_VALID_FLAGS \
6745 (TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX | \
6746 TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN | \
6747 TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE | \
6748 TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
6749 TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
6750 TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE | \
6751 TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT | \
6752 TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
6753 TXFS_START_RM_FLAG_LOGGING_MODE | \
6754 TXFS_START_RM_FLAG_PRESERVE_CHANGES | \
6755 TXFS_START_RM_FLAG_PREFER_CONSISTENCY | \
6756 TXFS_START_RM_FLAG_PREFER_AVAILABILITY)
6757
6758typedef struct _TXFS_START_RM_INFORMATION {
6759 ULONG Flags;
6760 ULONGLONG LogContainerSize;
6761 ULONG LogContainerCountMin;
6762 ULONG LogContainerCountMax;
6763 ULONG LogGrowthIncrement;
6764 ULONG LogAutoShrinkPercentage;
6765 ULONG TmLogPathOffset;
6766 USHORT TmLogPathLength;
6767 USHORT LoggingMode;
6768 USHORT LogPathLength;
6770 WCHAR LogPath[1];
6771} TXFS_START_RM_INFORMATION, *PTXFS_START_RM_INFORMATION;
6772
6773typedef struct _TXFS_GET_METADATA_INFO_OUT {
6774 struct {
6775 LONGLONG LowPart;
6776 LONGLONG HighPart;
6777 } TxfFileId;
6778 GUID LockingTransaction;
6779 ULONGLONG LastLsn;
6780 ULONG TransactionState;
6781} TXFS_GET_METADATA_INFO_OUT, *PTXFS_GET_METADATA_INFO_OUT;
6782
6783#define TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_CREATED 0x00000001
6784#define TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_DELETED 0x00000002
6785
6786typedef struct _TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY {
6788 ULONG NameFlags;
6789 LONGLONG FileId;
6793 WCHAR FileName[1];
6794} TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY, *PTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY;
6795
6796typedef struct _TXFS_LIST_TRANSACTION_LOCKED_FILES {
6797 GUID KtmTransaction;
6798 ULONGLONG NumberOfFiles;
6799 ULONGLONG BufferSizeRequired;
6801} TXFS_LIST_TRANSACTION_LOCKED_FILES, *PTXFS_LIST_TRANSACTION_LOCKED_FILES;
6802
6803typedef struct _TXFS_LIST_TRANSACTIONS_ENTRY {
6805 ULONG TransactionState;
6809} TXFS_LIST_TRANSACTIONS_ENTRY, *PTXFS_LIST_TRANSACTIONS_ENTRY;
6810
6811typedef struct _TXFS_LIST_TRANSACTIONS {
6812 ULONGLONG NumberOfTransactions;
6813 ULONGLONG BufferSizeRequired;
6814} TXFS_LIST_TRANSACTIONS, *PTXFS_LIST_TRANSACTIONS;
6815
6816typedef struct _TXFS_READ_BACKUP_INFORMATION_OUT {
6817 _ANONYMOUS_UNION union {
6819 UCHAR Buffer[1];
6821} TXFS_READ_BACKUP_INFORMATION_OUT, *PTXFS_READ_BACKUP_INFORMATION_OUT;
6822
6823typedef struct _TXFS_WRITE_BACKUP_INFORMATION {
6824 UCHAR Buffer[1];
6825} TXFS_WRITE_BACKUP_INFORMATION, *PTXFS_WRITE_BACKUP_INFORMATION;
6826
6827#define TXFS_TRANSACTED_VERSION_NONTRANSACTED 0xFFFFFFFE
6828#define TXFS_TRANSACTED_VERSION_UNCOMMITTED 0xFFFFFFFF
6829
6830typedef struct _TXFS_GET_TRANSACTED_VERSION {
6831 ULONG ThisBaseVersion;
6832 ULONG LatestVersion;
6833 USHORT ThisMiniVersion;
6834 USHORT FirstMiniVersion;
6835 USHORT LatestMiniVersion;
6836} TXFS_GET_TRANSACTED_VERSION, *PTXFS_GET_TRANSACTED_VERSION;
6837
6838#define TXFS_SAVEPOINT_SET 0x00000001
6839#define TXFS_SAVEPOINT_ROLLBACK 0x00000002
6840#define TXFS_SAVEPOINT_CLEAR 0x00000004
6841#define TXFS_SAVEPOINT_CLEAR_ALL 0x00000010
6842
6843typedef struct _TXFS_SAVEPOINT_INFORMATION {
6844 HANDLE KtmTransaction;
6845 ULONG ActionCode;
6846 ULONG SavepointId;
6847} TXFS_SAVEPOINT_INFORMATION, *PTXFS_SAVEPOINT_INFORMATION;
6848
6849typedef struct _TXFS_CREATE_MINIVERSION_INFO {
6850 USHORT StructureVersion;
6851 USHORT StructureLength;
6852 ULONG BaseVersion;
6853 USHORT MiniVersion;
6854} TXFS_CREATE_MINIVERSION_INFO, *PTXFS_CREATE_MINIVERSION_INFO;
6855
6856typedef struct _TXFS_TRANSACTION_ACTIVE_INFO {
6857 BOOLEAN TransactionsActiveAtSnapshot;
6858} TXFS_TRANSACTION_ACTIVE_INFO, *PTXFS_TRANSACTION_ACTIVE_INFO;
6859
6860#endif /* (_WIN32_WINNT >= 0x0600) */
6861
6862#if (_WIN32_WINNT >= 0x0601)
6863
6864#define MARK_HANDLE_REALTIME (0x00000020)
6865#define MARK_HANDLE_NOT_REALTIME (0x00000040)
6866
6867#define NO_8DOT3_NAME_PRESENT (0x00000001)
6868#define REMOVED_8DOT3_NAME (0x00000002)
6869
6870#define PERSISTENT_VOLUME_STATE_SHORT_NAME_CREATION_DISABLED (0x00000001)
6871
6872typedef struct _BOOT_AREA_INFO {
6873 ULONG BootSectorCount;
6874 struct {
6876 } BootSectors[2];
6877} BOOT_AREA_INFO, *PBOOT_AREA_INFO;
6878
6879typedef struct _RETRIEVAL_POINTER_BASE {
6880 LARGE_INTEGER FileAreaOffset;
6881} RETRIEVAL_POINTER_BASE, *PRETRIEVAL_POINTER_BASE;
6882
6883typedef struct _FILE_FS_PERSISTENT_VOLUME_INFORMATION {
6884 ULONG VolumeFlags;
6885 ULONG FlagMask;
6886 ULONG Version;
6888} FILE_FS_PERSISTENT_VOLUME_INFORMATION, *PFILE_FS_PERSISTENT_VOLUME_INFORMATION;
6889
6890typedef struct _FILE_SYSTEM_RECOGNITION_INFORMATION {
6891 CHAR FileSystem[9];
6892} FILE_SYSTEM_RECOGNITION_INFORMATION, *PFILE_SYSTEM_RECOGNITION_INFORMATION;
6893
6894#define OPLOCK_LEVEL_CACHE_READ (0x00000001)
6895#define OPLOCK_LEVEL_CACHE_HANDLE (0x00000002)
6896#define OPLOCK_LEVEL_CACHE_WRITE (0x00000004)
6897
6898#define REQUEST_OPLOCK_INPUT_FLAG_REQUEST (0x00000001)
6899#define REQUEST_OPLOCK_INPUT_FLAG_ACK (0x00000002)
6900#define REQUEST_OPLOCK_INPUT_FLAG_COMPLETE_ACK_ON_CLOSE (0x00000004)
6901
6902#define REQUEST_OPLOCK_CURRENT_VERSION 1
6903
6904typedef struct _REQUEST_OPLOCK_INPUT_BUFFER {
6905 USHORT StructureVersion;
6906 USHORT StructureLength;
6907 ULONG RequestedOplockLevel;
6908 ULONG Flags;
6909} REQUEST_OPLOCK_INPUT_BUFFER, *PREQUEST_OPLOCK_INPUT_BUFFER;
6910
6911#define REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED (0x00000001)
6912#define REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED (0x00000002)
6913
6914typedef struct _REQUEST_OPLOCK_OUTPUT_BUFFER {
6915 USHORT StructureVersion;
6916 USHORT StructureLength;
6917 ULONG OriginalOplockLevel;
6918 ULONG NewOplockLevel;
6919 ULONG Flags;
6921 USHORT ShareMode;
6922} REQUEST_OPLOCK_OUTPUT_BUFFER, *PREQUEST_OPLOCK_OUTPUT_BUFFER;
6923
6924#define SD_GLOBAL_CHANGE_TYPE_MACHINE_SID 1
6925
6926typedef struct _SD_CHANGE_MACHINE_SID_INPUT {
6927 USHORT CurrentMachineSIDOffset;
6928 USHORT CurrentMachineSIDLength;
6929 USHORT NewMachineSIDOffset;
6930 USHORT NewMachineSIDLength;
6931} SD_CHANGE_MACHINE_SID_INPUT, *PSD_CHANGE_MACHINE_SID_INPUT;
6932
6933typedef struct _SD_CHANGE_MACHINE_SID_OUTPUT {
6934 ULONGLONG NumSDChangedSuccess;
6935 ULONGLONG NumSDChangedFail;
6936 ULONGLONG NumSDUnused;
6937 ULONGLONG NumSDTotal;
6938 ULONGLONG NumMftSDChangedSuccess;
6939 ULONGLONG NumMftSDChangedFail;
6940 ULONGLONG NumMftSDTotal;
6941} SD_CHANGE_MACHINE_SID_OUTPUT, *PSD_CHANGE_MACHINE_SID_OUTPUT;
6942
6943typedef struct _SD_GLOBAL_CHANGE_INPUT {
6944 ULONG Flags;
6945 ULONG ChangeType;
6946 _ANONYMOUS_UNION union {
6947 SD_CHANGE_MACHINE_SID_INPUT SdChange;
6949} SD_GLOBAL_CHANGE_INPUT, *PSD_GLOBAL_CHANGE_INPUT;
6950
6951typedef struct _SD_GLOBAL_CHANGE_OUTPUT {
6952 ULONG Flags;
6953 ULONG ChangeType;
6954 _ANONYMOUS_UNION union {
6955 SD_CHANGE_MACHINE_SID_OUTPUT SdChange;
6957} SD_GLOBAL_CHANGE_OUTPUT, *PSD_GLOBAL_CHANGE_OUTPUT;
6958
6959#define ENCRYPTED_DATA_INFO_SPARSE_FILE 1
6960
6961typedef struct _EXTENDED_ENCRYPTED_DATA_INFO {
6963 ULONG Length;
6964 ULONG Flags;
6966} EXTENDED_ENCRYPTED_DATA_INFO, *PEXTENDED_ENCRYPTED_DATA_INFO;
6967
6968typedef struct _LOOKUP_STREAM_FROM_CLUSTER_INPUT {
6969 ULONG Flags;
6970 ULONG NumberOfClusters;
6971 LARGE_INTEGER Cluster[1];
6972} LOOKUP_STREAM_FROM_CLUSTER_INPUT, *PLOOKUP_STREAM_FROM_CLUSTER_INPUT;
6973
6974typedef struct _LOOKUP_STREAM_FROM_CLUSTER_OUTPUT {
6975 ULONG Offset;
6976 ULONG NumberOfMatches;
6977 ULONG BufferSizeRequired;
6978} LOOKUP_STREAM_FROM_CLUSTER_OUTPUT, *PLOOKUP_STREAM_FROM_CLUSTER_OUTPUT;
6979
6980#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_PAGE_FILE 0x00000001
6981#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_DENY_DEFRAG_SET 0x00000002
6982#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_FS_SYSTEM_FILE 0x00000004
6983#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_TXF_SYSTEM_FILE 0x00000008
6984
6985#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_MASK 0xff000000
6986#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_DATA 0x01000000
6987#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_INDEX 0x02000000
6988#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_SYSTEM 0x03000000
6989
6990typedef struct _LOOKUP_STREAM_FROM_CLUSTER_ENTRY {
6991 ULONG OffsetToNext;
6992 ULONG Flags;
6994 LARGE_INTEGER Cluster;
6995 WCHAR FileName[1];
6996} LOOKUP_STREAM_FROM_CLUSTER_ENTRY, *PLOOKUP_STREAM_FROM_CLUSTER_ENTRY;
6997
6998typedef struct _FILE_TYPE_NOTIFICATION_INPUT {
6999 ULONG Flags;
7000 ULONG NumFileTypeIDs;
7001 GUID FileTypeID[1];
7002} FILE_TYPE_NOTIFICATION_INPUT, *PFILE_TYPE_NOTIFICATION_INPUT;
7003
7004#define FILE_TYPE_NOTIFICATION_FLAG_USAGE_BEGIN 0x00000001
7005#define FILE_TYPE_NOTIFICATION_FLAG_USAGE_END 0x00000002
7006
7007DEFINE_GUID(FILE_TYPE_NOTIFICATION_GUID_PAGE_FILE, 0x0d0a64a1, 0x38fc, 0x4db8, 0x9f, 0xe7, 0x3f, 0x43, 0x52, 0xcd, 0x7c, 0x5c);
7008DEFINE_GUID(FILE_TYPE_NOTIFICATION_GUID_HIBERNATION_FILE, 0xb7624d64, 0xb9a3, 0x4cf8, 0x80, 0x11, 0x5b, 0x86, 0xc9, 0x40, 0xe7, 0xb7);
7009DEFINE_GUID(FILE_TYPE_NOTIFICATION_GUID_CRASHDUMP_FILE, 0x9d453eb7, 0xd2a6, 0x4dbd, 0xa2, 0xe3, 0xfb, 0xd0, 0xed, 0x91, 0x09, 0xa9);
7010
7011#ifndef _VIRTUAL_STORAGE_TYPE_DEFINED
7012#define _VIRTUAL_STORAGE_TYPE_DEFINED
7013typedef struct _VIRTUAL_STORAGE_TYPE {
7014 ULONG DeviceId;
7015 GUID VendorId;
7016} VIRTUAL_STORAGE_TYPE, *PVIRTUAL_STORAGE_TYPE;
7017#endif
7018
7019typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST {
7020 ULONG RequestLevel;
7021 ULONG RequestFlags;
7022} STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST, *PSTORAGE_QUERY_DEPENDENT_VOLUME_REQUEST;
7023
7024#define QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_HOST_VOLUMES 0x1
7025#define QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_GUEST_VOLUMES 0x2
7026
7027typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY {
7028 ULONG EntryLength;
7029 ULONG DependencyTypeFlags;
7030 ULONG ProviderSpecificFlags;
7031 VIRTUAL_STORAGE_TYPE VirtualStorageType;
7032} STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY, *PSTORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY;
7033
7034typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY {
7035 ULONG EntryLength;
7036 ULONG DependencyTypeFlags;
7037 ULONG ProviderSpecificFlags;
7038 VIRTUAL_STORAGE_TYPE VirtualStorageType;
7039 ULONG AncestorLevel;
7040 ULONG HostVolumeNameOffset;
7041 ULONG HostVolumeNameSize;
7042 ULONG DependentVolumeNameOffset;
7043 ULONG DependentVolumeNameSize;
7044 ULONG RelativePathOffset;
7045 ULONG RelativePathSize;
7046 ULONG DependentDeviceNameOffset;
7047 ULONG DependentDeviceNameSize;
7048} STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY, *PSTORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY;
7049
7050typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE {
7051 ULONG ResponseLevel;
7052 ULONG NumberEntries;
7053 _ANONYMOUS_UNION union {
7054 STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY Lev1Depends[0];
7055 STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY Lev2Depends[0];
7057} STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE, *PSTORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE;
7058
7059#endif /* (_WIN32_WINNT >= 0x0601) */
7060
7061typedef struct _FILESYSTEM_STATISTICS {
7064 ULONG SizeOfCompleteStructure;
7065 ULONG UserFileReads;
7066 ULONG UserFileReadBytes;
7067 ULONG UserDiskReads;
7068 ULONG UserFileWrites;
7069 ULONG UserFileWriteBytes;
7070 ULONG UserDiskWrites;
7071 ULONG MetaDataReads;
7072 ULONG MetaDataReadBytes;
7073 ULONG MetaDataDiskReads;
7074 ULONG MetaDataWrites;
7075 ULONG MetaDataWriteBytes;
7076 ULONG MetaDataDiskWrites;
7078
7079#define FILESYSTEM_STATISTICS_TYPE_NTFS 1
7080#define FILESYSTEM_STATISTICS_TYPE_FAT 2
7081#define FILESYSTEM_STATISTICS_TYPE_EXFAT 3
7082
7083typedef struct _FAT_STATISTICS {
7084 ULONG CreateHits;
7085 ULONG SuccessfulCreates;
7086 ULONG FailedCreates;
7087 ULONG NonCachedReads;
7088 ULONG NonCachedReadBytes;
7089 ULONG NonCachedWrites;
7090 ULONG NonCachedWriteBytes;
7091 ULONG NonCachedDiskReads;
7092 ULONG NonCachedDiskWrites;
7094
7095typedef struct _EXFAT_STATISTICS {
7096 ULONG CreateHits;
7097 ULONG SuccessfulCreates;
7098 ULONG FailedCreates;
7099 ULONG NonCachedReads;
7100 ULONG NonCachedReadBytes;
7101 ULONG NonCachedWrites;
7102 ULONG NonCachedWriteBytes;
7103 ULONG NonCachedDiskReads;
7104 ULONG NonCachedDiskWrites;
7106
7107typedef struct _NTFS_STATISTICS {
7108 ULONG LogFileFullExceptions;
7109 ULONG OtherExceptions;
7110 ULONG MftReads;
7111 ULONG MftReadBytes;
7112 ULONG MftWrites;
7113 ULONG MftWriteBytes;
7114 struct {
7115 USHORT Write;
7116 USHORT Create;
7117 USHORT SetInfo;
7118 USHORT Flush;
7119 } MftWritesUserLevel;
7120 USHORT MftWritesFlushForLogFileFull;
7121 USHORT MftWritesLazyWriter;
7122 USHORT MftWritesUserRequest;
7123 ULONG Mft2Writes;
7124 ULONG Mft2WriteBytes;
7125 struct {
7126 USHORT Write;
7127 USHORT Create;
7128 USHORT SetInfo;
7129 USHORT Flush;
7130 } Mft2WritesUserLevel;
7131 USHORT Mft2WritesFlushForLogFileFull;
7132 USHORT Mft2WritesLazyWriter;
7133 USHORT Mft2WritesUserRequest;
7134 ULONG RootIndexReads;
7135 ULONG RootIndexReadBytes;
7136 ULONG RootIndexWrites;
7137 ULONG RootIndexWriteBytes;
7138 ULONG BitmapReads;
7139 ULONG BitmapReadBytes;
7140 ULONG BitmapWrites;
7141 ULONG BitmapWriteBytes;
7142 USHORT BitmapWritesFlushForLogFileFull;
7143 USHORT BitmapWritesLazyWriter;
7144 USHORT BitmapWritesUserRequest;
7145 struct {
7146 USHORT Write;
7147 USHORT Create;
7148 USHORT SetInfo;
7149 } BitmapWritesUserLevel;
7150 ULONG MftBitmapReads;
7151 ULONG MftBitmapReadBytes;
7152 ULONG MftBitmapWrites;
7153 ULONG MftBitmapWriteBytes;
7154 USHORT MftBitmapWritesFlushForLogFileFull;
7155 USHORT MftBitmapWritesLazyWriter;
7156 USHORT MftBitmapWritesUserRequest;
7157 struct {
7158 USHORT Write;
7159 USHORT Create;
7160 USHORT SetInfo;
7161 USHORT Flush;
7162 } MftBitmapWritesUserLevel;
7163 ULONG UserIndexReads;
7164 ULONG UserIndexReadBytes;
7165 ULONG UserIndexWrites;
7166 ULONG UserIndexWriteBytes;
7167 ULONG LogFileReads;
7168 ULONG LogFileReadBytes;
7169 ULONG LogFileWrites;
7170 ULONG LogFileWriteBytes;
7171 struct {
7172 ULONG Calls;
7173 ULONG Clusters;
7174 ULONG Hints;
7175 ULONG RunsReturned;
7176 ULONG HintsHonored;
7177 ULONG HintsClusters;
7178 ULONG Cache;
7179 ULONG CacheClusters;
7180 ULONG CacheMiss;
7181 ULONG CacheMissClusters;
7184
7185#endif /* _FILESYSTEMFSCTL_ */
7186
7187#define SYMLINK_FLAG_RELATIVE 1
7188
7189typedef struct _REPARSE_DATA_BUFFER {
7190 ULONG ReparseTag;
7191 USHORT ReparseDataLength;
7193 _ANONYMOUS_UNION union {
7194 struct {
7195 USHORT SubstituteNameOffset;
7196 USHORT SubstituteNameLength;
7197 USHORT PrintNameOffset;
7198 USHORT PrintNameLength;
7199 ULONG Flags;
7200 WCHAR PathBuffer[1];
7201 } SymbolicLinkReparseBuffer;
7202 struct {
7203 USHORT SubstituteNameOffset;
7204 USHORT SubstituteNameLength;
7205 USHORT PrintNameOffset;
7206 USHORT PrintNameLength;
7207 WCHAR PathBuffer[1];
7208 } MountPointReparseBuffer;
7209 struct {
7210 UCHAR DataBuffer[1];
7211 } GenericReparseBuffer;
7214
7215#define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer)
7216
7222 struct {
7223 UCHAR DataBuffer[1];
7224 } GenericReparseBuffer;
7226
7227#define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer)
7228
7229#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE ( 16 * 1024 )
7230
7231/* Reserved reparse tags */
7232#define IO_REPARSE_TAG_RESERVED_ZERO (0)
7233#define IO_REPARSE_TAG_RESERVED_ONE (1)
7234#define IO_REPARSE_TAG_RESERVED_RANGE IO_REPARSE_TAG_RESERVED_ONE
7235
7236#define IsReparseTagMicrosoft(_tag) (((_tag) & 0x80000000))
7237#define IsReparseTagNameSurrogate(_tag) (((_tag) & 0x20000000))
7238
7239#define IO_REPARSE_TAG_VALID_VALUES (0xF000FFFF)
7240
7241#define IsReparseTagValid(tag) ( \
7242 !((tag) & ~IO_REPARSE_TAG_VALID_VALUES) && \
7243 ((tag) > IO_REPARSE_TAG_RESERVED_RANGE) \
7244 )
7245
7246/* MicroSoft reparse point tags */
7247#define IO_REPARSE_TAG_MOUNT_POINT (0xA0000003L)
7248#define IO_REPARSE_TAG_HSM (0xC0000004L)
7249#define IO_REPARSE_TAG_DRIVE_EXTENDER (0x80000005L)
7250#define IO_REPARSE_TAG_HSM2 (0x80000006L)
7251#define IO_REPARSE_TAG_SIS (0x80000007L)
7252#define IO_REPARSE_TAG_WIM (0x80000008L)
7253#define IO_REPARSE_TAG_CSV (0x80000009L)
7254#define IO_REPARSE_TAG_DFS (0x8000000AL)
7255#define IO_REPARSE_TAG_FILTER_MANAGER (0x8000000BL)
7256#define IO_REPARSE_TAG_SYMLINK (0xA000000CL)
7257#define IO_REPARSE_TAG_IIS_CACHE (0xA0000010L)
7258#define IO_REPARSE_TAG_DFSR (0x80000012L)
7259
7260#pragma pack(4)
7261typedef struct _REPARSE_INDEX_KEY {
7265#pragma pack()
7266
7267#define FSCTL_LMR_GET_LINK_TRACKING_INFORMATION CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM,58,METHOD_BUFFERED,FILE_ANY_ACCESS)
7268#define FSCTL_LMR_SET_LINK_TRACKING_INFORMATION CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM,59,METHOD_BUFFERED,FILE_ANY_ACCESS)
7269#define IOCTL_LMR_ARE_FILE_OBJECTS_ON_SAME_SERVER CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM,60,METHOD_BUFFERED,FILE_ANY_ACCESS)
7270
7271#define FSCTL_PIPE_ASSIGN_EVENT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
7272#define FSCTL_PIPE_DISCONNECT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
7273#define FSCTL_PIPE_LISTEN CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
7274#define FSCTL_PIPE_PEEK CTL_CODE(FILE_DEVICE_NAMED_PIPE, 3, METHOD_BUFFERED, FILE_READ_DATA)
7275#define FSCTL_PIPE_QUERY_EVENT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
7276#define FSCTL_PIPE_TRANSCEIVE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 5, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
7277#define FSCTL_PIPE_WAIT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
7278#define FSCTL_PIPE_IMPERSONATE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
7279#define FSCTL_PIPE_SET_CLIENT_PROCESS CTL_CODE(FILE_DEVICE_NAMED_PIPE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
7280#define FSCTL_PIPE_QUERY_CLIENT_PROCESS CTL_CODE(FILE_DEVICE_NAMED_PIPE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
7281#define FSCTL_PIPE_GET_PIPE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
7282#define FSCTL_PIPE_SET_PIPE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
7283#define FSCTL_PIPE_GET_CONNECTION_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
7284#define FSCTL_PIPE_SET_CONNECTION_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
7285#define FSCTL_PIPE_GET_HANDLE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
7286#define FSCTL_PIPE_SET_HANDLE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
7287#define FSCTL_PIPE_FLUSH CTL_CODE(FILE_DEVICE_NAMED_PIPE, 16, METHOD_BUFFERED, FILE_WRITE_DATA)
7288
7289#define FSCTL_PIPE_INTERNAL_READ CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2045, METHOD_BUFFERED, FILE_READ_DATA)
7290#define FSCTL_PIPE_INTERNAL_WRITE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2046, METHOD_BUFFERED, FILE_WRITE_DATA)
7291#define FSCTL_PIPE_INTERNAL_TRANSCEIVE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2047, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
7292#define FSCTL_PIPE_INTERNAL_READ_OVFLOW CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2048, METHOD_BUFFERED, FILE_READ_DATA)
7293
7294#define FILE_PIPE_READ_DATA 0x00000000
7295#define FILE_PIPE_WRITE_SPACE 0x00000001
7296
7301
7309
7310typedef struct _FILE_PIPE_PEEK_BUFFER {
7311 ULONG NamedPipeState;
7312 ULONG ReadDataAvailable;
7313 ULONG NumberOfMessages;
7314 ULONG MessageLength;
7315 CHAR Data[1];
7317
7318typedef struct _FILE_PIPE_WAIT_FOR_BUFFER {
7320 ULONG NameLength;
7321 BOOLEAN TimeoutSpecified;
7322 WCHAR Name[1];
7324
7326#if !defined(BUILD_WOW6432)
7329#else
7330 ULONGLONG ClientSession;
7331 ULONGLONG ClientProcess;
7332#endif
7334
7335#define FILE_PIPE_COMPUTER_NAME_LENGTH 15
7336
7338#if !defined(BUILD_WOW6432)
7341#else
7342 ULONGLONG ClientSession;
7343 ULONGLONG ClientProcess;
7344#endif
7346 WCHAR ClientComputerBuffer[FILE_PIPE_COMPUTER_NAME_LENGTH+1];
7348
7349#define FSCTL_MAILSLOT_PEEK CTL_CODE(FILE_DEVICE_MAILSLOT, 0, METHOD_NEITHER, FILE_READ_DATA)
7350
7355
7358 UCHAR VolumeId[16];
7360
7364 UCHAR TargetLinkTrackingInformationBuffer[1];
7366
7367#define IO_OPEN_PAGING_FILE 0x0002
7368#define IO_OPEN_TARGET_DIRECTORY 0x0004
7369#define IO_STOP_ON_SYMLINK 0x0008
7370#define IO_MM_PAGING_FILE 0x0010
7371
7372_Function_class_(DRIVER_FS_NOTIFICATION)
7373typedef VOID
7374(NTAPI DRIVER_FS_NOTIFICATION)(
7377typedef DRIVER_FS_NOTIFICATION *PDRIVER_FS_NOTIFICATION;
7378
7383
7388
7390 struct {
7393 } AcquireForModifiedPageWriter;
7394 struct {
7396 } ReleaseForModifiedPageWriter;
7397 struct {
7400 } AcquireForSectionSynchronization;
7401 struct {
7404 } NotifyStreamFileObject;
7405 struct {
7411 } Others;
7413
7414#define FS_FILTER_ACQUIRE_FOR_SECTION_SYNCHRONIZATION (UCHAR)-1
7415#define FS_FILTER_RELEASE_FOR_SECTION_SYNCHRONIZATION (UCHAR)-2
7416#define FS_FILTER_ACQUIRE_FOR_MOD_WRITE (UCHAR)-3
7417#define FS_FILTER_RELEASE_FOR_MOD_WRITE (UCHAR)-4
7418#define FS_FILTER_ACQUIRE_FOR_CC_FLUSH (UCHAR)-5
7419#define FS_FILTER_RELEASE_FOR_CC_FLUSH (UCHAR)-6
7420
7426 struct _FILE_OBJECT *FileObject;
7429
7434
7435typedef VOID
7440
7441typedef struct _FS_FILTER_CALLBACKS {
7457
7465
7466#define IO_FILE_OBJECT_NON_PAGED_POOL_CHARGE 64
7467#define IO_FILE_OBJECT_PAGED_POOL_CHARGE 1024
7468
7469#if (NTDDI_VERSION >= NTDDI_VISTA)
7470typedef struct _IO_PRIORITY_INFO {
7476#endif
7478
7479$if (_WDMDDK_)
7480
7481#define D3COLD_SUPPORT_INTERFACE_VERSION 1
7482
7483typedef
7484_Function_class_(SET_D3COLD_SUPPORT)
7486VOID
7487(NTAPI SET_D3COLD_SUPPORT)(
7488 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7490
7491typedef SET_D3COLD_SUPPORT *PSET_D3COLD_SUPPORT;
7492
7494{
7503
7507 _In_ DEVICE_WAKE_DEPTH WakeDepth)
7508{
7510 {
7517 };
7518
7519 if (WakeDepth < 0 || WakeDepth >= DeviceWakeDepthMaximum)
7520 {
7522 }
7523 else
7524 {
7525 return dstateMap[WakeDepth];
7526 }
7527}
7528
7529typedef
7530_Function_class_(GET_IDLE_WAKE_INFO)
7533(NTAPI GET_IDLE_WAKE_INFO)(
7534 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7537
7538typedef GET_IDLE_WAKE_INFO *PGET_IDLE_WAKE_INFO;
7539
7540typedef
7541_Function_class_(GET_D3COLD_CAPABILITY)
7544(NTAPI GET_D3COLD_CAPABILITY)(
7545 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7547
7548typedef GET_D3COLD_CAPABILITY *PGET_D3COLD_CAPABILITY;
7549
7551{
7556
7557typedef
7558_Function_class_(GET_D3COLD_LAST_TRANSITION_STATUS)
7560VOID
7561(NTAPI GET_D3COLD_LAST_TRANSITION_STATUS)(
7562 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7564
7565typedef GET_D3COLD_LAST_TRANSITION_STATUS *PGET_D3COLD_LAST_TRANSITION_STATUS;
7566
7568{
7580
7581typedef
7582_Function_class_(D3COLD_REQUEST_CORE_POWER_RAIL)
7584VOID
7585(NTAPI D3COLD_REQUEST_CORE_POWER_RAIL)(
7586 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7588
7589typedef D3COLD_REQUEST_CORE_POWER_RAIL *PD3COLD_REQUEST_CORE_POWER_RAIL;
7590
7591typedef
7592_Function_class_(D3COLD_REQUEST_AUX_POWER)
7595(NTAPI D3COLD_REQUEST_AUX_POWER)(
7596 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7599
7600typedef D3COLD_REQUEST_AUX_POWER *PD3COLD_REQUEST_AUX_POWER;
7601
7602typedef
7603_Function_class_(D3COLD_REQUEST_PERST_DELAY)
7606(NTAPI D3COLD_REQUEST_PERST_DELAY)(
7607 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7609
7610typedef D3COLD_REQUEST_PERST_DELAY *PD3COLD_REQUEST_PERST_DELAY;
7611
7613{
struct _IO_STACK_LOCATION * PIO_STACK_LOCATION
struct _IRP * PIRP
struct _IO_STACK_LOCATION IO_STACK_LOCATION
struct _IRP IRP
static UCHAR NotificationContext
static _Out_opt_ PULONGLONG _Out_opt_ PULONGLONG MinimumAddress
static _Out_opt_ PULONGLONG _Out_opt_ PULONGLONG _Out_opt_ PULONGLONG MaximumAddress
PULONG FileCount
Definition: SfcGetFiles.c:18
static ULONG StackSize
Definition: StackOverflow.c:21
Type
Definition: Type.h:7
#define Dbg
Definition: acchksup.c:22
#define VOID
Definition: acefi.h:82
ACPI_GPE_EVENT_INFO UINT32 GpeNumber
Definition: acevents.h:196
unsigned char BOOLEAN
Definition: actypes.h:127
USHORT VendorID
Definition: ahci_generic.c:17
_In_ PATA_DEVICE_REQUEST _In_ BOOLEAN Allocate
Definition: ata_shared.h:437
LONG NTSTATUS
Definition: precomp.h:26
@ Group
Definition: help.c:22
WCHAR FileNameBuffer[MAX_PATH]
Definition: framewnd.c:248
@ Create
Definition: registry.c:563
@ ScsiAdapter
Definition: arcname.c:40
@ EisaAdapter
Definition: arcname.c:39
@ DiskController
Definition: arcname.c:68
INT FormatTime(TCHAR *, LPSYSTEMTIME)
Definition: dir.c:704
#define INTERFACE
Definition: precomp.h:299
WCHAR RootDirectory[MAX_PATH]
Definition: format.c:73
PWCHAR FileSystem
Definition: format.c:71
KAFFINITY * PKAFFINITY
Definition: basetsd.h:189
PDEVICE_OBJECT PhysicalDeviceObject
Definition: btrfs_drv.h:1157
static VOID NTAPI InterfaceReference(IN PVOID Context)
Definition: pdo.c:956
static VOID NTAPI InterfaceDereference(IN PVOID Context)
Definition: pdo.c:969
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:160
_In_ PFCB _In_ LONGLONG StartingOffset
Definition: cdprocs.h:291
_In_ PSCSI_REQUEST_BLOCK _In_opt_ PVOID _In_ ULONG _In_ BOOLEAN WriteToDevice
Definition: cdrom.h:992
Definition: bufpool.h:45
_In_ PVOID _In_ PCLASS_INIT_DATA InitializationData
Definition: classpnp.h:722
_In_ PCHAR _In_ ULONG DeviceNumber
Definition: classpnp.h:1230
#define _Requires_lock_held_(lock)
#define _Releases_lock_(lock)
IN CINT OUT PVOID ObjectInformation
Definition: conport.c:48
struct _IO_CSQ_IRP_CONTEXT * PIO_CSQ_IRP_CONTEXT
struct _IO_CSQ IO_CSQ
Definition: csq.h:69
IO_CSQ_ACQUIRE_LOCK * PIO_CSQ_ACQUIRE_LOCK
Definition: csq.h:180
IO_CSQ_RELEASE_LOCK * PIO_CSQ_RELEASE_LOCK
Definition: csq.h:196
IO_CSQ_INSERT_IRP * PIO_CSQ_INSERT_IRP
Definition: csq.h:117
_In_ PIRP _In_ PVOID InsertContext
Definition: csq.h:258
IO_CSQ_PEEK_NEXT_IRP * PIO_CSQ_PEEK_NEXT_IRP
Definition: csq.h:161
_In_opt_ PIRP _In_opt_ PVOID PeekContext
Definition: csq.h:160
struct _IO_CSQ * PIO_CSQ
Definition: csq.h:69
IO_CSQ_COMPLETE_CANCELED_IRP * PIO_CSQ_COMPLETE_CANCELED_IRP
Definition: csq.h:217
_Out_ PKIRQL Irql
Definition: csq.h:179
struct _IO_CSQ_IRP_CONTEXT IO_CSQ_IRP_CONTEXT
IO_CSQ_INSERT_IRP_EX * PIO_CSQ_INSERT_IRP_EX
Definition: csq.h:259
IO_CSQ_REMOVE_IRP * PIO_CSQ_REMOVE_IRP
Definition: csq.h:135
IO_CSQ Csq
Definition: csqrtns.c:46
ush Pos
Definition: deflate.h:92
LPWSTR Name
Definition: desk.c:124
BOOL WINAPI DeviceIoControl(IN HANDLE hDevice, IN DWORD dwIoControlCode, IN LPVOID lpInBuffer OPTIONAL, IN DWORD nInBufferSize OPTIONAL, OUT LPVOID lpOutBuffer OPTIONAL, IN DWORD nOutBufferSize OPTIONAL, OUT LPDWORD lpBytesReturned OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Definition: deviceio.c:136
_In_ PIO_STATUS_BLOCK IoStatusBlock
Definition: dispmprt.h:608
_In_ ULONG _In_ MEMORY_CACHING_TYPE _Out_ PPHYSICAL_ADDRESS PhysicalAddress
Definition: dispmprt.h:714
_In_ HANDLE _In_ CONST PDXGKMDT_OPM_GET_INFO_PARAMETERS Parameters
Definition: dispmprt.h:321
_In_ ULONG _In_ MEMORY_CACHING_TYPE _Out_ PPHYSICAL_ADDRESS _Out_ PVOID * VirtualAddress
Definition: dispmprt.h:716
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
Definition: dispmprt.h:1287
_Check_return_ _In_ ULONG _Inout_ PDXGK_DEVICE_DESCRIPTOR DeviceDescriptor
Definition: dispmprt.h:1263
_In_ ULONG AllocationSize
Definition: dispmprt.h:712
_Check_return_ _In_ PQUERY_INTERFACE QueryInterface
Definition: dispmprt.h:1318
_Check_return_ _In_ ULONG MessageNumber
Definition: dispmprt.h:1242
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
Definition: dispmprt.h:245
_In_ ULONG _In_ MEMORY_CACHING_TYPE CacheType
Definition: dispmprt.h:713
#define NTSTATUS
Definition: precomp.h:19
#define DEVICE_TYPE
Definition: guid.c:10
ULONG_PTR KAFFINITY
Definition: compat.h:85
VOID(WINAPI * PINTERFACE_DEREFERENCE)(PVOID Context)
Definition: precomp.h:16
VOID(WINAPI * PINTERFACE_REFERENCE)(PVOID Context)
Definition: precomp.h:13
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT _Inout_ PVCB _Outptr_result_maybenull_ PDCB _In_ PDCB _In_ PDIRENT _In_ ULONG _In_ ULONG _In_ PUNICODE_STRING _In_ PACCESS_MASK _In_ USHORT ShareAccess
Definition: create.c:4148
NTSTATUS FreeClusters(PNTFS_VCB Vcb, PNTFS_ATTR_CONTEXT AttrContext, ULONG AttrOffset, PFILE_RECORD_HEADER FileRecord, ULONG ClustersToFree)
Definition: attrib.c:1101
#define _Kernel_clear_do_init_(yesNo)
Definition: driverspecs.h:239
#define _IRQL_requires_same_
Definition: driverspecs.h:232
#define _IRQL_requires_min_(irql)
Definition: driverspecs.h:231
#define _IRQL_uses_cancel_
Definition: driverspecs.h:237
#define _IRQL_requires_max_(irql)
Definition: driverspecs.h:230
#define __drv_allocatesMem(kind)
Definition: driverspecs.h:257
#define _IRQL_requires_(irql)
Definition: driverspecs.h:229
#define _IRQL_always_function_min_(irql)
Definition: driverspecs.h:226
struct _DEVICE_OBJECT DEVICE_OBJECT
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
UCHAR KIRQL
Definition: env_spec_w32.h:591
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
struct _IO_STATUS_BLOCK IO_STATUS_BLOCK
struct _DEVICE_OBJECT * PDEVICE_OBJECT
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
SECTION_OBJECT_POINTERS * PSECTION_OBJECT_POINTERS
Definition: env_spec_w32.h:765
KIRQL * PKIRQL
Definition: env_spec_w32.h:592
#define PHYSICAL_ADDRESS
Definition: env_spec_w32.h:53
struct _IO_STATUS_BLOCK * PIO_STATUS_BLOCK
Definition: change.c:34
ERESOURCE * PERESOURCE
Definition: env_spec_w32.h:595
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
struct _SECTION_OBJECT_POINTERS SECTION_OBJECT_POINTERS
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2666
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN BOOLEAN ExclusiveLock
Definition: fatprocs.h:2715
IN OUT PVCB IN PDEVICE_OBJECT IN PVPB Vpb
Definition: fatprocs.h:1676
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN CheckForReadOperation
Definition: fatprocs.h:2667
IN PDCB IN POEM_STRING IN PUNICODE_STRING IN OUT POEM_STRING ShortName
Definition: fatprocs.h:1307
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN FailImmediately
Definition: fatprocs.h:2714
@ Flush
Definition: fatprocs.h:1055
IN PDCB IN PCCB IN VBO IN OUT PULONG OUT PDIRENT OUT PBCB OUT PVBO ByteOffset
Definition: fatprocs.h:732
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2712
struct _FileName FileName
Definition: fatprocs.h:897
ULONG MajorVersion
Definition: ros_glue.cpp:4
ULONG MinorVersion
Definition: ros_glue.cpp:5
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FS_INFORMATION_CLASS FsInformationClass
Definition: fltkernel.h:1330
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG FileAttributes
Definition: fltkernel.h:1236
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
Definition: fltkernel.h:1231
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE _In_ ULONG FileNameLength
Definition: fltkernel.h:1129
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG CompletionFilter
Definition: fltkernel.h:2243
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
Definition: fltkernel.h:2653
_Must_inspect_result_ _Out_ PHANDLE VolumeHandle
Definition: fltkernel.h:2283
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
Definition: fltkernel.h:1340
_Out_ PFLT_FILESYSTEM_TYPE FileSystemType
Definition: fltkernel.h:2407
_Inout_ PLIST_ENTRY _In_ PVOID FsContext
Definition: fltkernel.h:2239
struct _FILE_FULL_EA_INFORMATION * PFILE_FULL_EA_INFORMATION
struct _FILE_BOTH_DIR_INFORMATION * PFILE_BOTH_DIR_INFORMATION
_FILE_INFORMATION_CLASS
Definition: from_kernel.h:61
@ FilePositionInformation
Definition: from_kernel.h:75
@ FileMoveClusterInformation
Definition: from_kernel.h:92
@ FilePipeLocalInformation
Definition: from_kernel.h:85
@ FileMaximumInformation
Definition: from_kernel.h:112
@ FileEndOfFileInformation
Definition: from_kernel.h:81
@ FileIdGlobalTxDirectoryInformation
Definition: from_kernel.h:111
@ FileQuotaInformation
Definition: from_kernel.h:93
@ FileCompressionInformation
Definition: from_kernel.h:89
@ FileRenameInformation
Definition: from_kernel.h:71
@ FileAllInformation
Definition: from_kernel.h:79
@ FilePipeRemoteInformation
Definition: from_kernel.h:86
@ FileTrackingInformation
Definition: from_kernel.h:97
@ FileSfioVolumeInformation
Definition: from_kernel.h:106
@ FileIoPriorityHintInformation
Definition: from_kernel.h:104
@ FileLinkInformation
Definition: from_kernel.h:72
@ FileInternalInformation
Definition: from_kernel.h:67
@ FileAttributeTagInformation
Definition: from_kernel.h:96
@ FileDirectoryInformation
Definition: from_kernel.h:62
@ FileAlignmentInformation
Definition: from_kernel.h:78
@ FileReparsePointInformation
Definition: from_kernel.h:94
@ FileNormalizedNameInformation
Definition: from_kernel.h:109
@ FileObjectIdInformation
Definition: from_kernel.h:90
@ FileIdBothDirectoryInformation
Definition: from_kernel.h:98
@ FileEaInformation
Definition: from_kernel.h:68
@ FilePipeInformation
Definition: from_kernel.h:84
@ FileAlternateNameInformation
Definition: from_kernel.h:82
@ FileIoCompletionNotificationInformation
Definition: from_kernel.h:102
@ FileNamesInformation
Definition: from_kernel.h:73
@ FileMailslotSetInformation
Definition: from_kernel.h:88
@ FileValidDataLengthInformation
Definition: from_kernel.h:100
@ FileNameInformation
Definition: from_kernel.h:70
@ FileMailslotQueryInformation
Definition: from_kernel.h:87
@ FileAllocationInformation
Definition: from_kernel.h:80
@ FileCompletionInformation
Definition: from_kernel.h:91
@ FileFullDirectoryInformation
Definition: from_kernel.h:63
@ FileSfioReserveInformation
Definition: from_kernel.h:105
@ FileNetworkOpenInformation
Definition: from_kernel.h:95
@ FileStreamInformation
Definition: from_kernel.h:83
@ FileModeInformation
Definition: from_kernel.h:77
@ FileBasicInformation
Definition: from_kernel.h:65
@ FileDispositionInformation
Definition: from_kernel.h:74
@ FileShortNameInformation
Definition: from_kernel.h:101
@ FileNetworkPhysicalNameInformation
Definition: from_kernel.h:110
@ FileFullEaInformation
Definition: from_kernel.h:76
@ FileProcessIdsUsingFileInformation
Definition: from_kernel.h:108
@ FileBothDirectoryInformation
Definition: from_kernel.h:64
@ FileIoStatusBlockRangeInformation
Definition: from_kernel.h:103
@ FileHardLinkInformation
Definition: from_kernel.h:107
@ FileIdFullDirectoryInformation
Definition: from_kernel.h:99
enum _FSINFOCLASS * PFS_INFORMATION_CLASS
struct _FILE_GET_EA_INFORMATION FILE_GET_EA_INFORMATION
struct _FILE_NETWORK_OPEN_INFORMATION FILE_NETWORK_OPEN_INFORMATION
enum _FILE_INFORMATION_CLASS * PFILE_INFORMATION_CLASS
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
Definition: directory.c:44
struct _FILE_NETWORK_OPEN_INFORMATION * PFILE_NETWORK_OPEN_INFORMATION
struct _FILE_LINK_INFORMATION FILE_LINK_INFORMATION
struct _FILE_LINK_INFORMATION * PFILE_LINK_INFORMATION
struct _FILE_FS_ATTRIBUTE_INFORMATION FILE_FS_ATTRIBUTE_INFORMATION
struct _FILE_NAMES_INFORMATION * PFILE_NAMES_INFORMATION
_FSINFOCLASS
Definition: from_kernel.h:218
@ FileFsVolumeFlagsInformation
Definition: from_kernel.h:228
@ FileFsControlInformation
Definition: from_kernel.h:224
@ FileFsDeviceInformation
Definition: from_kernel.h:222
@ FileFsLabelInformation
Definition: from_kernel.h:220
@ FileFsAttributeInformation
Definition: from_kernel.h:223
@ FileFsVolumeInformation
Definition: from_kernel.h:219
@ FileFsSizeInformation
Definition: from_kernel.h:221
@ FileFsMaximumInformation
Definition: from_kernel.h:229
struct _FILE_GET_EA_INFORMATION * PFILE_GET_EA_INFORMATION
struct _FILE_INTERNAL_INFORMATION FILE_INTERNAL_INFORMATION
struct _FILE_FS_ATTRIBUTE_INFORMATION * PFILE_FS_ATTRIBUTE_INFORMATION
struct _FILE_FS_SIZE_INFORMATION FILE_FS_SIZE_INFORMATION
enum _FSINFOCLASS FS_INFORMATION_CLASS
struct _FILE_BOTH_DIR_INFORMATION FILE_BOTH_DIR_INFORMATION
struct _FILE_FULL_EA_INFORMATION FILE_FULL_EA_INFORMATION
struct _FILE_INTERNAL_INFORMATION * PFILE_INTERNAL_INFORMATION
struct _FILE_FS_FULL_SIZE_INFORMATION FILE_FS_FULL_SIZE_INFORMATION
struct _FILE_FS_FULL_SIZE_INFORMATION * PFILE_FS_FULL_SIZE_INFORMATION
struct _FILE_NAMES_INFORMATION FILE_NAMES_INFORMATION
struct _FILE_FS_SIZE_INFORMATION * PFILE_FS_SIZE_INFORMATION
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:49
_Must_inspect_result_ _In_ PDEVICE_OBJECT _In_ PSECTION_OBJECT_POINTERS SectionObjectPointer
Definition: fsrtlfuncs.h:1369
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING StreamName
Definition: fsrtlfuncs.h:741
union Alignment_ Alignment
Status
Definition: gdiplustypes.h:24
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 * u
Definition: glfuncs.h:240
CPPORT Port[4]
Definition: headless.c:38
_In_ ULONG Mode
Definition: hubbusif.h:303
_In_ UCXUSBDEVICE _In_ UCXENDPOINT _In_ ULONG Priority
Definition: hubucx.h:414
_In_ UCXHUB_DEVICE_CONTEXT DeviceContext
Definition: hubucx.h:237
_In_ UCXUSBDEVICE _In_ PDEVICE_OBJECT Pdo
Definition: hubucx.h:280
#define _NTIFS_
Definition: ifssupp.h:20
#define bits
Definition: infblock.c:15
ULONG IoWriteOperationCount
Definition: iomgr.c:47
LARGE_INTEGER IoReadTransferCount
Definition: iomgr.c:46
KSPIN_LOCK IoStatisticsLock
Definition: iomgr.c:51
LARGE_INTEGER IoWriteTransferCount
Definition: iomgr.c:48
ULONG IoOtherOperationCount
Definition: iomgr.c:49
LARGE_INTEGER IoOtherTransferCount
Definition: iomgr.c:50
ULONG IoReadOperationCount
Definition: iomgr.c:45
_In_ PIRP Irp
Definition: kse.h:79
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
Definition: kse.h:81
#define Unused(x)
Definition: atlwin.h:28
DeviceType
Definition: mmdrv.h:42
void Cancel(int sigNum)
Definition: shell.c:481
#define FILE_STANDARD_INFORMATION
Definition: disk.h:54
#define FILE_BASIC_INFORMATION
Definition: disk.h:53
unsigned __int64 ULONG64
Definition: imports.h:198
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
Definition: env.c:47
static const ENTRY Entries[]
DWORD SECURITY_INFORMATION
Definition: ms-dtyp.idl:311
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:159
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169
struct _PNP_REPLACE_PROCESSOR_LIST * PPNP_REPLACE_PROCESSOR_LIST
Definition: haltypes.h:393
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID ApcContext
Definition: iofuncs.h:727
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PLARGE_INTEGER MaximumSize
Definition: mmfuncs.h:366
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
Definition: rtlfuncs.h:1165
_In_ BOOLEAN _In_ USHORT Directory
Definition: rtlfuncs.h:3962
static BOOL StartDevice(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DevInfoData OPTIONAL, IN BOOL bEnable, IN DWORD HardwareProfile OPTIONAL, OUT BOOL *bNeedReboot OPTIONAL)
Definition: wizard.c:173
DRIVER_DISPATCH(nfs41_FsdDispatch)
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _Out_opt_
Definition: no_sal2.h:214
#define _Struct_size_bytes_(s)
Definition: no_sal2.h:386
#define _Inout_
Definition: no_sal2.h:162
#define _At_(t, a)
Definition: no_sal2.h:40
#define _Outptr_
Definition: no_sal2.h:262
#define _Out_writes_bytes_opt_(s)
Definition: no_sal2.h:228
#define _Inout_opt_
Definition: no_sal2.h:216
#define _Must_inspect_result_
Definition: no_sal2.h:62
#define _Out_writes_(s)
Definition: no_sal2.h:176
#define _Out_
Definition: no_sal2.h:160
#define _In_reads_opt_(s)
Definition: no_sal2.h:222
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _Field_range_(l, h)
Definition: no_sal2.h:380
#define _Function_class_(n)
Definition: no_sal2.h:398
#define _Inout_updates_bytes_(s)
Definition: no_sal2.h:184
#define _Out_writes_bytes_(s)
Definition: no_sal2.h:178
#define _When_(c, a)
Definition: no_sal2.h:38
#define _In_reads_bytes_opt_(s)
Definition: no_sal2.h:224
int Count
Definition: noreturn.cpp:7
BOOL WINAPI CreatePipe(PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes, DWORD nSize)
Definition: npipe.c:117
#define TypeA
Definition: nslookup.h:14
struct _FILE_FS_DEVICE_INFORMATION * PFILE_FS_DEVICE_INFORMATION
ULONG ACCESS_MASK
Definition: nt_native.h:40
struct _FILE_FS_DEVICE_INFORMATION FILE_FS_DEVICE_INFORMATION
struct _FILE_POSITION_INFORMATION FILE_POSITION_INFORMATION
struct _FILE_END_OF_FILE_INFORMATION * PFILE_END_OF_FILE_INFORMATION
struct _FILE_BASIC_INFORMATION * PFILE_BASIC_INFORMATION
struct _FILE_DISPOSITION_INFORMATION FILE_DISPOSITION_INFORMATION
struct _FILE_ALIGNMENT_INFORMATION FILE_ALIGNMENT_INFORMATION
struct _FILE_ALIGNMENT_INFORMATION * PFILE_ALIGNMENT_INFORMATION
struct _FILE_DISPOSITION_INFORMATION * PFILE_DISPOSITION_INFORMATION
struct _FILE_POSITION_INFORMATION * PFILE_POSITION_INFORMATION
VOID(* PIO_APC_ROUTINE)(IN PVOID ApcContext, IN PIO_STATUS_BLOCK IoStatusBlock, IN ULONG Reserved)
Definition: nt_native.h:880
struct _FILE_END_OF_FILE_INFORMATION FILE_END_OF_FILE_INFORMATION
LONGLONG USN
Definition: ntbasedef.h:400
void *POINTER_64 PVOID64
Definition: ntbasedef.h:335
_NullNull_terminated_ WCHAR * PZZWSTR
Definition: ntbasedef.h:432
#define _NTDDK_
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:142
struct _FILE_PIPE_WAIT_FOR_BUFFER * PFILE_PIPE_WAIT_FOR_BUFFER
struct _FILE_PIPE_WAIT_FOR_BUFFER FILE_PIPE_WAIT_FOR_BUFFER
static OUT PIO_STATUS_BLOCK OUT PVOID IN ULONG IN FILE_INFORMATION_CLASS FileInformationClass
Definition: pipe.c:100
#define FileFsDriverPathInformation
Definition: ntifs_ex.h:391
#define FileFsFullSizeInformation
Definition: ntifs_ex.h:389
#define FileFsObjectIdInformation
Definition: ntifs_ex.h:390
@ FILE_OBJECT
Definition: ntobjenum.h:17
@ PowerSystemMaximum
Definition: ntpoapi.h:42
enum _POWER_STATE_TYPE POWER_STATE_TYPE
POWER_ACTION
Definition: ntpoapi.h:122
@ PowerDeviceD1
Definition: ntpoapi.h:50
@ PowerDeviceUnspecified
Definition: ntpoapi.h:48
@ PowerDeviceD0
Definition: ntpoapi.h:49
@ PowerDeviceD2
Definition: ntpoapi.h:51
@ PowerDeviceD3
Definition: ntpoapi.h:52
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
_In_ ULONG _In_ PCI_SLOT_NUMBER PciSlot
Definition: pciidex.h:66
_In_ ULONG BusNumber
Definition: pciidex.h:65
#define DUMMYUNIONNAME
Definition: pecoff.h:91
#define DUMMYSTRUCTNAME
Definition: pecoff.h:117
#define _ANONYMOUS_UNION
Definition: pecoff.h:89
#define _ANONYMOUS_STRUCT
Definition: pecoff.h:115
#define CONST
Definition: pedump.c:81
short WCHAR
Definition: pedump.c:58
#define BOOLEAN
Definition: pedump.c:73
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
char CHAR
Definition: pedump.c:57
static WCHAR Address[46]
Definition: ping.c:68
static ULONG Timeout
Definition: ping.c:61
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
SECURITY_INTEGER TimeStamp
Definition: sspi.h:78
#define _DEVIOCTL_
Definition: winioctl.h:42
struct NTFS_VOLUME_DATA_BUFFER * PNTFS_VOLUME_DATA_BUFFER
struct _FAT_STATISTICS * PFAT_STATISTICS
struct STARTING_LCN_INPUT_BUFFER * PSTARTING_LCN_INPUT_BUFFER
struct VOLUME_BITMAP_BUFFER * PVOLUME_BITMAP_BUFFER
struct STARTING_VCN_INPUT_BUFFER * PSTARTING_VCN_INPUT_BUFFER
struct NTFS_EXTENDED_VOLUME_DATA * PNTFS_EXTENDED_VOLUME_DATA
struct MOVE_FILE_DATA * PMOVE_FILE_DATA
struct RETRIEVAL_POINTERS_BUFFER * PRETRIEVAL_POINTERS_BUFFER
struct _FILESYSTEM_STATISTICS * PFILESYSTEM_STATISTICS
struct _EXFAT_STATISTICS EXFAT_STATISTICS
struct _EXFAT_STATISTICS * PEXFAT_STATISTICS
struct _FILESYSTEM_STATISTICS FILESYSTEM_STATISTICS
struct NTFS_FILE_RECORD_OUTPUT_BUFFER * PNTFS_FILE_RECORD_OUTPUT_BUFFER
struct _NTFS_STATISTICS NTFS_STATISTICS
struct _FAT_STATISTICS FAT_STATISTICS
struct NTFS_FILE_RECORD_INPUT_BUFFER * PNTFS_FILE_RECORD_INPUT_BUFFER
struct _NTFS_STATISTICS * PNTFS_STATISTICS
enum _INTERFACE_TYPE INTERFACE_TYPE
@ Reserved3
Definition: sacdrv.h:1471
@ Reserved2
Definition: sacdrv.h:1470
@ Reserved1
Definition: sacdrv.h:1464
@ Restart
Definition: sacdrv.h:269
struct _IO_RESOURCE_DESCRIPTOR * PIO_RESOURCE_DESCRIPTOR
_DMA_WIDTH
Definition: miniport.h:104
@ MaximumDmaWidth
Definition: miniport.h:108
@ Width16Bits
Definition: miniport.h:106
@ Width8Bits
Definition: miniport.h:105
@ Width32Bits
Definition: miniport.h:107
enum _DMA_WIDTH * PDMA_WIDTH
enum _BUS_DATA_TYPE * PBUS_DATA_TYPE
enum _KINTERRUPT_MODE KINTERRUPT_MODE
enum _IRQ_DEVICE_POLICY IRQ_DEVICE_POLICY
enum _IRQ_PRIORITY * PIRQ_PRIORITY
_BUS_DATA_TYPE
Definition: miniport.h:87
@ SgiInternalConfiguration
Definition: miniport.h:100
@ EisaConfiguration
Definition: miniport.h:90
@ MaximumBusDataType
Definition: miniport.h:101
@ PNPISAConfiguration
Definition: miniport.h:99
@ MPIConfiguration
Definition: miniport.h:97
@ MPSAConfiguration
Definition: miniport.h:98
@ Cmos
Definition: miniport.h:89
@ ConfigurationSpaceUndefined
Definition: miniport.h:88
@ VMEConfiguration
Definition: miniport.h:94
@ NuBusConfiguration
Definition: miniport.h:95
@ PCMCIAConfiguration
Definition: miniport.h:96
@ CbusConfiguration
Definition: miniport.h:92
@ PCIConfiguration
Definition: miniport.h:93
enum _IRQ_DEVICE_POLICY * PIRQ_DEVICE_POLICY
enum _BUS_DATA_TYPE BUS_DATA_TYPE
enum _DMA_SPEED DMA_SPEED
enum _IRQ_PRIORITY IRQ_PRIORITY
struct _INTERFACE * PINTERFACE
struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR
enum _DMA_WIDTH DMA_WIDTH
_DMA_SPEED
Definition: miniport.h:111
@ TypeF
Definition: miniport.h:116
@ MaximumDmaSpeed
Definition: miniport.h:117
@ TypeB
Definition: miniport.h:114
@ Compatible
Definition: miniport.h:112
@ TypeC
Definition: miniport.h:115
_IRQ_DEVICE_POLICY
Definition: miniport.h:128
@ IrqPolicyOneCloseProcessor
Definition: miniport.h:131
@ IrqPolicyAllCloseProcessors
Definition: miniport.h:130
@ IrqPolicyAllProcessorsInMachine
Definition: miniport.h:132
@ IrqPolicySpreadMessagesAcrossAllProcessors
Definition: miniport.h:134
@ IrqPolicyMachineDefault
Definition: miniport.h:129
@ IrqPolicySpecifiedProcessors
Definition: miniport.h:133
_IRQ_PRIORITY
Definition: miniport.h:137
@ IrqPriorityUndefined
Definition: miniport.h:138
@ IrqPriorityHigh
Definition: miniport.h:141
@ IrqPriorityNormal
Definition: miniport.h:140
@ IrqPriorityLow
Definition: miniport.h:139
enum _DMA_SPEED * PDMA_SPEED
DWORD LCID
Definition: nls.h:13
_CONFIGURATION_TYPE
Definition: arc.h:112
@ PointerController
Definition: arc.h:134
@ MultiFunctionAdapter
Definition: arc.h:125
@ SecondaryIcache
Definition: arc.h:118
@ ModemPeripheral
Definition: arc.h:141
@ RealModeIrqRoutingTable
Definition: arc.h:152
@ SerialController
Definition: arc.h:130
@ PrimaryIcache
Definition: arc.h:116
@ ParallelController
Definition: arc.h:133
@ DiskPeripheral
Definition: arc.h:138
@ SystemMemory
Definition: arc.h:150
@ ArcSystem
Definition: arc.h:113
@ KeyboardPeripheral
Definition: arc.h:145
@ AudioController
Definition: arc.h:136
@ WormController
Definition: arc.h:129
@ TerminalPeripheral
Definition: arc.h:146
@ PrinterPeripheral
Definition: arc.h:143
@ RealModePCIEnumeration
Definition: arc.h:153
@ TapeController
Definition: arc.h:127
@ PrimaryDcache
Definition: arc.h:117
@ FloppyDiskPeripheral
Definition: arc.h:139
@ SecondaryDcache
Definition: arc.h:119
@ CentralProcessor
Definition: arc.h:114
@ KeyboardController
Definition: arc.h:135
@ DockingInformation
Definition: arc.h:151
@ LinePeripheral
Definition: arc.h:148
@ OtherPeripheral
Definition: arc.h:147
@ MonitorPeripheral
Definition: arc.h:142
@ TcAdapter
Definition: arc.h:122
@ NetworkPeripheral
Definition: arc.h:149
@ OtherController
Definition: arc.h:137
@ TapePeripheral
Definition: arc.h:140
@ MaximumType
Definition: arc.h:154
@ SecondaryCache
Definition: arc.h:120
@ CdromController
Definition: arc.h:128
@ PointerPeripheral
Definition: arc.h:144
@ DisplayController
Definition: arc.h:132
@ NetworkController
Definition: arc.h:131
@ DtiAdapter
Definition: arc.h:124
@ FloatingPointProcessor
Definition: arc.h:115
@ Removable
Definition: arc.h:90
enum _CONFIGURATION_TYPE CONFIGURATION_TYPE
enum _CONFIGURATION_TYPE * PCONFIGURATION_TYPE
$if(_WDMDDK_) typedef struct _KFLOATING_SAVE
Definition: ke.h:1
$endif(_WDMDDK_) $if(_NTDDK_) typedef struct _NEON128
Definition: ke.h:202
struct _FILE_STANDARD_INFORMATION * PFILE_STANDARD_INFORMATION
struct _FILE_ACCESS_INFORMATION FILE_ACCESS_INFORMATION
#define FileAccessInformation
Definition: propsheet.cpp:51
struct _FILE_ACCESS_INFORMATION * PFILE_ACCESS_INFORMATION
#define FileStandardInformation
Definition: propsheet.cpp:61
#define STATUS_MORE_PROCESSING_REQUIRED
Definition: shellext.h:68
struct _REPARSE_DATA_BUFFER REPARSE_DATA_BUFFER
struct _REPARSE_DATA_BUFFER * PREPARSE_DATA_BUFFER
DataType
Definition: simd.h:252
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
_In_ BOOLEAN Read
Definition: strmini.h:479
Definition: shell.h:41
PCI_AGP_CONTROL AgpControl
Definition: iotypes.h:4791
PCI_AGP_ISOCH_COMMAND IsochCommand
Definition: iotypes.h:4796
PCI_AGP_APERTURE_PAGE_SIZE AperturePageSize
Definition: iotypes.h:4793
PCI_AGP_ISOCH_STATUS IsochStatus
Definition: iotypes.h:4790
USHORT MaxMemoryReadByteCount
Definition: iotypes.h:3741
ULONG DeviceNumber
Definition: iotypes.h:3750
USHORT DataParityErrorRecoveryEnable
Definition: iotypes.h:3739
ULONG DesignedMaxCumulativeReadSize
Definition: iotypes.h:3759
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:3736
USHORT EnableRelaxedOrdering
Definition: iotypes.h:3740
ULONG UnexpectedSplitCompletion
Definition: iotypes.h:3755
ULONG FunctionNumber
Definition: iotypes.h:3749
ULONG DesignedMaxOutstandingSplitTransactions
Definition: iotypes.h:3758
ULONG SplitCompletionDiscarded
Definition: iotypes.h:3754
ULONG ReceivedSplitCompletionErrorMessage
Definition: iotypes.h:3760
ULONG Device64Bit
Definition: iotypes.h:3752
ULONG DesignedMaxMemoryReadByteCount
Definition: iotypes.h:3757
USHORT MaxOutstandingSplitTransactions
Definition: iotypes.h:3742
ULONG Capable133MHz
Definition: iotypes.h:3753
USHORT AsUSHORT
Definition: iotypes.h:3745
ULONG CapablePCIX533
Definition: iotypes.h:3762
ULONG DeviceComplexity
Definition: iotypes.h:3756
USHORT Reserved
Definition: iotypes.h:3743
ULONG CapablePCIX266
Definition: iotypes.h:3761
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:3111
PGPE_CLEAR_STATUS2 GpeClearStatus
Definition: iotypes.h:3116
PGPE_DISCONNECT_VECTOR2 GpeDisconnectVector
Definition: iotypes.h:3113
PGPE_CONNECT_VECTOR2 GpeConnectVector
Definition: iotypes.h:3112
PGPE_DISABLE_EVENT2 GpeDisableEvent
Definition: iotypes.h:3115
PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2 UnregisterForDeviceNotifications
Definition: iotypes.h:3118
PREGISTER_FOR_DEVICE_NOTIFICATIONS2 RegisterForDeviceNotifications
Definition: iotypes.h:3117
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:3110
PGPE_ENABLE_EVENT2 GpeEnableEvent
Definition: iotypes.h:3114
PUNREGISTER_FOR_DEVICE_NOTIFICATIONS UnregisterForDeviceNotifications
Definition: iotypes.h:3039
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:3032
PGPE_CLEAR_STATUS GpeClearStatus
Definition: iotypes.h:3037
PGPE_ENABLE_EVENT GpeEnableEvent
Definition: iotypes.h:3035
PREGISTER_FOR_DEVICE_NOTIFICATIONS RegisterForDeviceNotifications
Definition: iotypes.h:3038
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:3031
PGPE_DISCONNECT_VECTOR GpeDisconnectVector
Definition: iotypes.h:3034
PGPE_DISABLE_EVENT GpeDisableEvent
Definition: iotypes.h:3036
PGPE_CONNECT_VECTOR GpeConnectVector
Definition: iotypes.h:3033
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4536
PGET_SET_DEVICE_DATA GetBusData
Definition: iotypes.h:4539
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4537
PGET_SET_DEVICE_DATA SetBusData
Definition: iotypes.h:4538
_In_ PDEVICE_OBJECT ReserveDevice
Definition: iotypes.h:4613
_Inout_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4594
PDEVICE_OBJECT OwningObject
Definition: iotypes.h:4576
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4674
PARBITER_HANDLER ArbiterHandler
Definition: iotypes.h:4676
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4675
Definition: iotypes.h:4646
ULONG BusNumber
Definition: iotypes.h:4656
ARBITER_RESULT Result
Definition: iotypes.h:4659
PIO_RESOURCE_DESCRIPTOR SelectedAlternative
Definition: iotypes.h:4658
LONG_PTR WorkSpace
Definition: iotypes.h:4653
ULONG AlternativeCount
Definition: iotypes.h:4648
PDEVICE_OBJECT PhysicalDeviceObject
Definition: iotypes.h:4650
ULONG Flags
Definition: iotypes.h:4652
PIO_RESOURCE_DESCRIPTOR Alternatives
Definition: iotypes.h:4649
LIST_ENTRY ListEntry
Definition: iotypes.h:4647
ARBITER_REQUEST_SOURCE RequestSource
Definition: iotypes.h:4651
ULONG SlotNumber
Definition: iotypes.h:4655
INTERFACE_TYPE InterfaceType
Definition: iotypes.h:4654
PCM_PARTIAL_RESOURCE_DESCRIPTOR Assignment
Definition: iotypes.h:4657
ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict
Definition: iotypes.h:4622
ARBITER_ADD_RESERVED_PARAMETERS AddReserved
Definition: iotypes.h:4624
ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation
Definition: iotypes.h:4618
ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation
Definition: iotypes.h:4620
ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation
Definition: iotypes.h:4619
ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources
Definition: iotypes.h:4621
ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate
Definition: iotypes.h:4623
_Out_ PCM_PARTIAL_RESOURCE_LIST * AllocatedResources
Definition: iotypes.h:4598
_In_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4609
_In_ PDEVICE_OBJECT PhysicalDeviceObject
Definition: iotypes.h:4602
_In_ PIO_RESOURCE_DESCRIPTOR ConflictingResource
Definition: iotypes.h:4603
_Out_ PARBITER_CONFLICT_INFO * Conflicts
Definition: iotypes.h:4605
_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom
Definition: iotypes.h:4590
_Inout_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4588
_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom
Definition: iotypes.h:4584
_Inout_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4582
LONGLONG SystemPartitionOffset
Definition: iotypes.h:623
LONGLONG BootPartitionOffset
Definition: iotypes.h:622
LONGLONG SystemPartitionOffset
Definition: iotypes.h:616
LONGLONG BootPartitionOffset
Definition: iotypes.h:615
ULONG BootDeviceSignature
Definition: iotypes.h:617
ULONG SystemDeviceSignature
Definition: iotypes.h:618
PGET_SET_DEVICE_DATA SetBusData
Definition: iotypes.h:915
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:911
PTRANSLATE_BUS_ADDRESS TranslateBusAddress
Definition: iotypes.h:913
PGET_SET_DEVICE_DATA GetBusData
Definition: iotypes.h:916
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:912
PGET_DMA_ADAPTER GetDmaAdapter
Definition: iotypes.h:914
HANDLE UniqueThread
Definition: compat.h:826
HANDLE UniqueProcess
Definition: compat.h:825
BOOLEAN AtDiskPrimaryAddressClaimed
Definition: iotypes.h:4498
BOOLEAN AtDiskSecondaryAddressClaimed
Definition: iotypes.h:4499
KDEVICE_QUEUE DeviceWaitQueue
Definition: iotypes.h:4480
LARGE_INTEGER Spare2
Definition: iotypes.h:4482
PVOID ControllerExtension
Definition: iotypes.h:4479
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:7617
PD3COLD_REQUEST_CORE_POWER_RAIL RequestCorePowerRail
Definition: iotypes.h:7619
PD3COLD_REQUEST_AUX_POWER RequestAuxPower
Definition: iotypes.h:7620
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:7618
PD3COLD_REQUEST_PERST_DELAY RequestPerstDelay
Definition: iotypes.h:7621
PGET_D3COLD_CAPABILITY GetBusDriverD3ColdSupport
Definition: iotypes.h:7577
PSET_D3COLD_SUPPORT SetD3ColdSupport
Definition: iotypes.h:7574
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:7573
PGET_D3COLD_CAPABILITY GetD3ColdCapability
Definition: iotypes.h:7576
PGET_D3COLD_LAST_TRANSITION_STATUS GetLastTransitionStatus
Definition: iotypes.h:7578
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:7572
PGET_IDLE_WAKE_INFO GetIdleWakeInfo
Definition: iotypes.h:7575
BOOLEAN Dma64BitAddresses
Definition: iotypes.h:2077
DMA_SPEED DmaSpeed
Definition: iotypes.h:2082
PHYSICAL_ADDRESS DeviceAddress
Definition: iotypes.h:2089
ULONG DmaControllerInstance
Definition: iotypes.h:2087
BOOLEAN IgnoreCount
Definition: iotypes.h:2075
BOOLEAN ScatterGather
Definition: iotypes.h:2071
BOOLEAN AutoInitialize
Definition: iotypes.h:2073
DMA_WIDTH DmaWidth
Definition: iotypes.h:2081
INTERFACE_TYPE InterfaceType
Definition: iotypes.h:2080
BOOLEAN Dma32BitAddresses
Definition: iotypes.h:2074
BOOLEAN DemandMode
Definition: iotypes.h:2072
ULONG ExtensionFlags
Definition: iotypes.h:2174
ULONG StartIoFlags
Definition: iotypes.h:2179
PDEVICE_OBJECT AttachedTo
Definition: iotypes.h:2176
PVOID InterruptContext
Definition: iotypes.h:2182
PDEVICE_OBJECT DeviceObject
Definition: iotypes.h:2171
__volatile PVOID VerifierContext
Definition: iotypes.h:2184
PVOID DependencyNode
Definition: iotypes.h:2181
__volatile LONG StartIoCount
Definition: iotypes.h:2177
struct _DEVICE_OBJECT_POWER_EXTENSION * Dope
Definition: iotypes.h:2173
__volatile LONG InterruptCount
Definition: iotypes.h:2183
ULONG CheckSum
Definition: iotypes.h:4509
ULONG PartitionStyle
Definition: iotypes.h:4505
ULONG Signature
Definition: iotypes.h:4508
ULONG ScatterGatherLimit
Definition: iotypes.h:2101
ULONG MinimumTransferUnit
Definition: iotypes.h:2104
ULONG ReadDmaCounterAvailable
Definition: iotypes.h:2100
DMA_ADAPTER_INFO_V1 V1
Definition: iotypes.h:2112
struct _DMA_OPERATIONS * DmaOperations
Definition: iotypes.h:2310
USHORT Size
Definition: iotypes.h:2309
USHORT Version
Definition: iotypes.h:2308
PINITIALIZE_DMA_TRANSFER_CONTEXT InitializeDmaTransferContext
Definition: iotypes.h:2666
PFLUSH_ADAPTER_BUFFERS_EX FlushAdapterBuffersEx
Definition: iotypes.h:2674
PCANCEL_ADAPTER_CHANNEL CancelAdapterChannel
Definition: iotypes.h:2670
PGET_DMA_ADAPTER_INFO GetDmaAdapterInfo
Definition: iotypes.h:2664
PFREE_ADAPTER_CHANNEL FreeAdapterChannel
Definition: iotypes.h:2654
PMAP_TRANSFER_EX MapTransferEx
Definition: iotypes.h:2671
PGET_DMA_TRANSFER_INFO GetDmaTransferInfo
Definition: iotypes.h:2665
PALLOCATE_ADAPTER_CHANNEL_EX AllocateAdapterChannelEx
Definition: iotypes.h:2668
PALLOCATE_COMMON_BUFFER AllocateCommonBuffer
Definition: iotypes.h:2650
PCANCEL_MAPPED_TRANSFER CancelMappedTransfer
Definition: iotypes.h:2676
PGET_DMA_ALIGNMENT GetDmaAlignment
Definition: iotypes.h:2657
PPUT_SCATTER_GATHER_LIST PutScatterGatherList
Definition: iotypes.h:2660
PBUILD_SCATTER_GATHER_LIST BuildScatterGatherList
Definition: iotypes.h:2662
PFLUSH_DMA_BUFFER FlushDmaBuffer
Definition: iotypes.h:2678
PCONFIGURE_ADAPTER_CHANNEL ConfigureAdapterChannel
Definition: iotypes.h:2669
PFREE_COMMON_BUFFER FreeCommonBuffer
Definition: iotypes.h:2651
PFREE_COMMON_BUFFER_FROM_VECTOR FreeCommonBufferFromVector
Definition: iotypes.h:2685
PALLOCATE_COMMON_BUFFER_EX AllocateCommonBufferEx
Definition: iotypes.h:2667
PFREE_COMMON_BUFFER_VECTOR FreeCommonBufferVector
Definition: iotypes.h:2686
PREAD_DMA_COUNTER ReadDmaCounter
Definition: iotypes.h:2658
PALLOCATE_ADAPTER_CHANNEL AllocateAdapterChannel
Definition: iotypes.h:2652
PBUILD_MDL_FROM_SCATTER_GATHER_LIST BuildMdlFromScatterGatherList
Definition: iotypes.h:2663
PFLUSH_ADAPTER_BUFFERS FlushAdapterBuffers
Definition: iotypes.h:2653
PALLOCATE_COMMON_BUFFER_WITH_BOUNDS AllocateCommonBufferWithBounds
Definition: iotypes.h:2682
PJOIN_DMA_DOMAIN JoinDmaDomain
Definition: iotypes.h:2679
PALLOCATE_DOMAIN_COMMON_BUFFER AllocateDomainCommonBuffer
Definition: iotypes.h:2677
PCALCULATE_SCATTER_GATHER_LIST_SIZE CalculateScatterGatherList
Definition: iotypes.h:2661
PGET_SCATTER_GATHER_LIST_EX GetScatterGatherListEx
Definition: iotypes.h:2672
PGET_COMMON_BUFFER_FROM_VECTOR_BY_INDEX GetCommonBufferFromVectorByIndex
Definition: iotypes.h:2684
PGET_SCATTER_GATHER_LIST GetScatterGatherList
Definition: iotypes.h:2659
PFREE_MAP_REGISTERS FreeMapRegisters
Definition: iotypes.h:2655
PMAP_TRANSFER MapTransfer
Definition: iotypes.h:2656
PGET_DMA_DOMAIN GetDmaDomain
Definition: iotypes.h:2681
PLEAVE_DMA_DOMAIN LeaveDmaDomain
Definition: iotypes.h:2680
PFREE_ADAPTER_OBJECT FreeAdapterObject
Definition: iotypes.h:2675
PBUILD_SCATTER_GATHER_LIST_EX BuildScatterGatherListEx
Definition: iotypes.h:2673
PALLOCATE_COMMON_BUFFER_VECTOR AllocateCommonBufferVector
Definition: iotypes.h:2683
PPUT_DMA_ADAPTER PutDmaAdapter
Definition: iotypes.h:2649
ULONG ScatterGatherListSize
Definition: iotypes.h:2123
ULONG ScatterGatherElementCount
Definition: iotypes.h:2122
ULONG ScatterGatherElementCount
Definition: iotypes.h:2129
ULONG ScatterGatherListSize
Definition: iotypes.h:2130
DMA_TRANSFER_INFO_V1 V1
Definition: iotypes.h:2138
DMA_TRANSFER_INFO_V2 V2
Definition: iotypes.h:2139
PDRIVER_ADD_DEVICE AddDevice
Definition: iotypes.h:2235
struct _DRIVER_OBJECT * DriverObject
Definition: iotypes.h:2234
UNICODE_STRING ServiceKeyName
Definition: iotypes.h:2237
PUNICODE_STRING HardwareDatabase
Definition: iotypes.h:2299
PVOID DriverStart
Definition: iotypes.h:2294
struct _FAST_IO_DISPATCH * FastIoDispatch
Definition: iotypes.h:2300
PVOID DriverSection
Definition: iotypes.h:2296
PDRIVER_STARTIO DriverStartIo
Definition: iotypes.h:2302
CSHORT Size
Definition: iotypes.h:2291
ULONG DriverSize
Definition: iotypes.h:2295
PDRIVER_INITIALIZE DriverInit
Definition: iotypes.h:2301
PDRIVER_EXTENSION DriverExtension
Definition: iotypes.h:2297
CSHORT Type
Definition: iotypes.h:2290
PDEVICE_OBJECT DeviceObject
Definition: iotypes.h:2292
PDRIVER_UNLOAD DriverUnload
Definition: iotypes.h:2303
UNICODE_STRING DriverName
Definition: iotypes.h:2298
DMA_CONFIGURATION_BYTE1 ConfigurationByte1
Definition: iotypes.h:713
DMA_CONFIGURATION_BYTE0 ConfigurationByte0
Definition: iotypes.h:712
EISA_IRQ_DESCRIPTOR ConfigurationByte
Definition: iotypes.h:693
EISA_MEMORY_TYPE ConfigurationByte
Definition: iotypes.h:677
UCHAR MoreEntries
Definition: iotypes.h:673
EISA_PORT_DESCRIPTOR Configuration
Definition: iotypes.h:724
PFAST_IO_ACQUIRE_FOR_MOD_WRITE AcquireForModWrite
Definition: iotypes.h:1748
PFAST_IO_QUERY_STANDARD_INFO FastIoQueryStandardInfo
Definition: iotypes.h:1738
PFAST_IO_UNLOCK_ALL_BY_KEY FastIoUnlockAllByKey
Definition: iotypes.h:1742
PFAST_IO_RELEASE_FOR_CCFLUSH ReleaseForCcFlush
Definition: iotypes.h:1760
PFAST_IO_MDL_READ_COMPLETE MdlReadComplete
Definition: iotypes.h:1750
PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED MdlWriteCompleteCompressed
Definition: iotypes.h:1756
PFAST_IO_MDL_READ MdlRead
Definition: iotypes.h:1749
PFAST_IO_WRITE FastIoWrite
Definition: iotypes.h:1736
PFAST_IO_UNLOCK_ALL FastIoUnlockAll
Definition: iotypes.h:1741
PFAST_IO_QUERY_NETWORK_OPEN_INFO FastIoQueryNetworkOpenInfo
Definition: iotypes.h:1747
PFAST_IO_ACQUIRE_FOR_CCFLUSH AcquireForCcFlush
Definition: iotypes.h:1759
PFAST_IO_MDL_WRITE_COMPLETE MdlWriteComplete
Definition: iotypes.h:1752
ULONG SizeOfFastIoDispatch
Definition: iotypes.h:1733
PFAST_IO_DEVICE_CONTROL FastIoDeviceControl
Definition: iotypes.h:1743
PFAST_IO_ACQUIRE_FILE AcquireFileForNtCreateSection
Definition: iotypes.h:1744
PFAST_IO_READ FastIoRead
Definition: iotypes.h:1735
PFAST_IO_QUERY_BASIC_INFO FastIoQueryBasicInfo
Definition: iotypes.h:1737
PFAST_IO_LOCK FastIoLock
Definition: iotypes.h:1739
PFAST_IO_WRITE_COMPRESSED FastIoWriteCompressed
Definition: iotypes.h:1754
PFAST_IO_MDL_READ_COMPLETE_COMPRESSED MdlReadCompleteCompressed
Definition: iotypes.h:1755
PFAST_IO_UNLOCK_SINGLE FastIoUnlockSingle
Definition: iotypes.h:1740
PFAST_IO_READ_COMPRESSED FastIoReadCompressed
Definition: iotypes.h:1753
PFAST_IO_RELEASE_FILE ReleaseFileForNtCreateSection
Definition: iotypes.h:1745
PFAST_IO_PREPARE_MDL_WRITE PrepareMdlWrite
Definition: iotypes.h:1751
PFAST_IO_RELEASE_FOR_MOD_WRITE ReleaseForModWrite
Definition: iotypes.h:1758
PFAST_IO_CHECK_IF_POSSIBLE FastIoCheckIfPossible
Definition: iotypes.h:1734
PFAST_IO_QUERY_OPEN FastIoQueryOpen
Definition: iotypes.h:1757
PFAST_IO_DETACH_DEVICE FastIoDetachDevice
Definition: iotypes.h:1746
LARGE_INTEGER CompressedFileSize
Definition: iotypes.h:5865
LARGE_INTEGER FreeSpaceStopFiltering
Definition: iotypes.h:6053
LARGE_INTEGER FreeSpaceStartFiltering
Definition: iotypes.h:6051
LARGE_INTEGER DefaultQuotaLimit
Definition: iotypes.h:6055
LARGE_INTEGER DefaultQuotaThreshold
Definition: iotypes.h:6054
LARGE_INTEGER FreeSpaceThreshold
Definition: iotypes.h:6052
LARGE_INTEGER ChangeTime
Definition: iotypes.h:5723
LARGE_INTEGER EndOfFile
Definition: iotypes.h:5724
LARGE_INTEGER CreationTime
Definition: iotypes.h:5720
LARGE_INTEGER AllocationSize
Definition: iotypes.h:5725
LARGE_INTEGER LastAccessTime
Definition: iotypes.h:5721
LARGE_INTEGER LastWriteTime
Definition: iotypes.h:5722
LARGE_INTEGER LastWriteTime
Definition: iotypes.h:5770
LARGE_INTEGER LastAccessTime
Definition: iotypes.h:5769
LARGE_INTEGER AllocationSize
Definition: iotypes.h:5773
LARGE_INTEGER CreationTime
Definition: iotypes.h:5768
LARGE_INTEGER LastAccessTime
Definition: iotypes.h:5736
LARGE_INTEGER AllocationSize
Definition: iotypes.h:5740
LARGE_INTEGER CreationTime
Definition: iotypes.h:5735
LARGE_INTEGER LastWriteTime
Definition: iotypes.h:5737
Definition: iotypes.h:5953
ULONG NextEntryOffset
Definition: iotypes.h:5954
ULONG FileNameLength
Definition: iotypes.h:5956
LONGLONG ParentFileId
Definition: iotypes.h:5955
PLARGE_INTEGER ReadTimeout
Definition: iotypes.h:5945
LARGE_INTEGER CollectDataTime
Definition: iotypes.h:5932
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForModifiedPageWriter
Definition: iotypes.h:7453
PFS_FILTER_CALLBACK PreAcquireForCcFlush
Definition: iotypes.h:7448
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForCcFlush
Definition: iotypes.h:7449
ULONG SizeOfFsFilterCallbacks
Definition: iotypes.h:7442
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForCcFlush
Definition: iotypes.h:7451
PFS_FILTER_CALLBACK PreReleaseForModifiedPageWriter
Definition: iotypes.h:7454
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForSectionSynchronization
Definition: iotypes.h:7445
PFS_FILTER_CALLBACK PreAcquireForSectionSynchronization
Definition: iotypes.h:7444
PFS_FILTER_CALLBACK PreReleaseForCcFlush
Definition: iotypes.h:7450
PFS_FILTER_CALLBACK PreAcquireForModifiedPageWriter
Definition: iotypes.h:7452
PFS_FILTER_CALLBACK PreReleaseForSectionSynchronization
Definition: iotypes.h:7446
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForSectionSynchronization
Definition: iotypes.h:7447
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForModifiedPageWriter
Definition: iotypes.h:7455
FS_FILTER_PARAMETERS Parameters
Definition: iotypes.h:7427
struct _DEVICE_OBJECT * DeviceObject
Definition: iotypes.h:7425
ULONG SizeOfFsFilterCallbackData
Definition: iotypes.h:7422
struct _FILE_OBJECT * FileObject
Definition: iotypes.h:7426
Definition: scsiwmi.h:51
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5517
PGET_INTERRUPT_ROUTING GetInterruptRouting
Definition: iotypes.h:5518
PUPDATE_INTERRUPT_LINE UpdateInterruptLine
Definition: iotypes.h:5520
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5516
PSET_INTERRUPT_ROUTING_TOKEN SetInterruptRoutingToken
Definition: iotypes.h:5519
_In_ PDEVICE_OBJECT PhysicalDeviceObject
Definition: iotypes.h:370
_In_ PKSERVICE_ROUTINE ServiceRoutine
Definition: iotypes.h:372
_In_ PKMESSAGE_SERVICE_ROUTINE MessageServiceRoutine
Definition: iotypes.h:386
_Out_ PIO_INTERRUPT_MESSAGE_INFO * InterruptMessageTable
Definition: iotypes.h:383
_In_opt_ PKSERVICE_ROUTINE FallBackServiceRoutine
Definition: iotypes.h:391
IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS MessageBased
Definition: iotypes.h:399
IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS FullySpecified
Definition: iotypes.h:397
IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS LineBased
Definition: iotypes.h:398
struct _IO_CSQ * Csq
Definition: iotypes.h:2892
struct _IRP * Irp
Definition: iotypes.h:2891
Definition: csq.h:222
_In_ PIO_INTERRUPT_MESSAGE_INFO InterruptMessageTable
Definition: iotypes.h:408
_In_ PKINTERRUPT InterruptObject
Definition: iotypes.h:407
PTXN_PARAMETER_BLOCK TxnParameters
Definition: iotypes.h:4529
struct _ECP_LIST * ExtraCreateParameter
Definition: iotypes.h:4527
LARGE_INTEGER TimeStamp
Definition: iotypes.h:2020
IO_ERROR_LOG_PACKET EntryData
Definition: iotypes.h:2022
LARGE_INTEGER DeviceOffset
Definition: iotypes.h:2012
NTSTATUS ErrorCode
Definition: iotypes.h:2007
USHORT NumberOfStrings
Definition: iotypes.h:2004
NTSTATUS FinalStatus
Definition: iotypes.h:2009
Definition: iotypes.h:336
PKINTERRUPT InterruptObject
Definition: iotypes.h:339
KIRQL Irql
Definition: iotypes.h:342
PHYSICAL_ADDRESS MessageAddress
Definition: iotypes.h:337
ULONG MessageData
Definition: iotypes.h:340
KAFFINITY TargetProcessorSet
Definition: iotypes.h:338
ULONG Vector
Definition: iotypes.h:341
KINTERRUPT_POLARITY Polarity
Definition: iotypes.h:344
KINTERRUPT_MODE Mode
Definition: iotypes.h:343
IO_PRIORITY_HINT IoPriority
Definition: iotypes.h:7474
ULONG ThreadPriority
Definition: iotypes.h:7472
ULONG PagePriority
Definition: iotypes.h:7473
volatile LONG LowMemoryCount
Definition: iotypes.h:493
PIO_REMOVE_LOCK_TRACKING_BLOCK Blocks
Definition: iotypes.h:496
IO_REMOVE_LOCK_COMMON_BLOCK Common
Definition: iotypes.h:500
PIO_INTERRUPT_MESSAGE_INFO InterruptMessageTable
Definition: iotypes.h:419
INTERFACE_TYPE InterfaceType
Definition: iotypes.h:2757
PACCESS_STATE AccessState
Definition: iotypes.h:2882
PSECURITY_QUALITY_OF_SERVICE SecurityQos
Definition: iotypes.h:2881
ACCESS_MASK DesiredAccess
Definition: iotypes.h:2883
IO_SESSION_STATE SessionState
Definition: iotypes.h:454
ULONG POINTER_ALIGNMENT FileIndex
Definition: iotypes.h:3166
DEVICE_TEXT_TYPE DeviceTextType
Definition: iotypes.h:3285
PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: iotypes.h:3234
ULONG POINTER_ALIGNMENT IoControlCode
Definition: iotypes.h:3225
PINTERFACE Interface
Definition: iotypes.h:3263
USHORT POINTER_ALIGNMENT FileAttributes
Definition: iotypes.h:3134
struct _MAILSLOT_CREATE_PARAMETERS * Parameters
Definition: iotypes.h:3150
PCM_RESOURCE_LIST AllocatedResourcesTranslated
Definition: iotypes.h:3312
POWER_ACTION POINTER_ALIGNMENT ShutdownType
Definition: iotypes.h:3308
ULONG POINTER_ALIGNMENT InputBufferLength
Definition: iotypes.h:3213
PFILE_OBJECT FileObject
Definition: iotypes.h:3184
PIO_SECURITY_CONTEXT SecurityContext
Definition: iotypes.h:3132
ULONG POINTER_ALIGNMENT EaIndex
Definition: iotypes.h:3198
BOOLEAN ReplaceIfExists
Definition: iotypes.h:3187
BUS_QUERY_ID_TYPE IdType
Definition: iotypes.h:3282
PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList
Definition: iotypes.h:3270
PUNICODE_STRING FileName
Definition: iotypes.h:3164
USHORT POINTER_ALIGNMENT Reserved
Definition: iotypes.h:3141
LCID POINTER_ALIGNMENT LocaleId
Definition: iotypes.h:3286
DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT Type
Definition: iotypes.h:3291
ULONG POINTER_ALIGNMENT FsControlCode
Definition: iotypes.h:3214
FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass
Definition: iotypes.h:3205
PDEVICE_OBJECT DeviceObject
Definition: iotypes.h:3238
PCM_RESOURCE_LIST AllocatedResources
Definition: iotypes.h:3311
LARGE_INTEGER ByteOffset
Definition: iotypes.h:3155
FILE_INFORMATION_CLASS FileInformationClass
Definition: iotypes.h:3165
POWER_STATE_TYPE POINTER_ALIGNMENT Type
Definition: iotypes.h:3306
SECURITY_INFORMATION SecurityInformation
Definition: iotypes.h:3229
SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext
Definition: iotypes.h:3303
ULONG POINTER_ALIGNMENT EaLength
Definition: iotypes.h:3136
struct _IO_SECURITY_CONTEXT * SecurityContext
Definition: iotypes.h:3139
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
Definition: iotypes.h:3143
SYSTEM_POWER_STATE PowerState
Definition: iotypes.h:3294
USHORT ShareAccess
Definition: iotypes.h:3135
HANDLE DeleteHandle
Definition: iotypes.h:3191
BOOLEAN AdvanceOnly
Definition: iotypes.h:3188
struct _SCSI_REQUEST_BLOCK * Srb
Definition: iotypes.h:3245
ULONG POINTER_ALIGNMENT CompletionFilter
Definition: iotypes.h:3170
PIO_COMPLETION_ROUTINE CompletionRoutine
Definition: iotypes.h:3329
FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass
Definition: iotypes.h:3179
struct _FILE_GET_QUOTA_INFORMATION * SidList
Definition: iotypes.h:3250
PDEVICE_CAPABILITIES Capabilities
Definition: iotypes.h:3267
ULONG POINTER_ALIGNMENT Length
Definition: iotypes.h:3230
PVOID InterfaceSpecificData
Definition: iotypes.h:3264
ULONG POINTER_ALIGNMENT Key
Definition: iotypes.h:3154
POWER_STATE POINTER_ALIGNMENT State
Definition: iotypes.h:3307
DIRECTORY_NOTIFY_INFORMATION_CLASS POINTER_ALIGNMENT DirectoryNotifyInformationClass
Definition: iotypes.h:3175
PLARGE_INTEGER Length
Definition: iotypes.h:3218
CONST GUID * InterfaceType
Definition: iotypes.h:3260
PPOWER_SEQUENCE PowerSequence
Definition: iotypes.h:3297
DEVICE_RELATION_TYPE Type
Definition: iotypes.h:3257
PVOID Type3InputBuffer
Definition: iotypes.h:3215
ULONG_PTR ProviderId
Definition: iotypes.h:3315
Definition: ketypes.h:615
Definition: ketypes.h:646
Definition: ketypes.h:767
INTERFACE_TYPE LegacyBusType
Definition: iotypes.h:835
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5528
PLEGACY_DEVICE_DETECTION_HANDLER LegacyDeviceDetection
Definition: iotypes.h:5529
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5527
Definition: typedefs.h:120
ACCESS_MASK GrantedAccess
Definition: iotypes.h:181
ULONG PathNameLength
Definition: iotypes.h:6245
PciReadWriteConfig WriteConfig
Definition: iotypes.h:5298
PciLine2Pin Line2Pin
Definition: iotypes.h:5300
ULONG Tag
Definition: iotypes.h:5295
PciReadWriteConfig ReadConfig
Definition: iotypes.h:5297
PCI_SLOT_NUMBER ParentSlot
Definition: iotypes.h:5301
ULONG Version
Definition: iotypes.h:5296
PciPin2Line Pin2Line
Definition: iotypes.h:5299
ULONG AdditionalUncorrectableError
Definition: iotypes.h:4863
USHORT SplitCompletionOverrun
Definition: iotypes.h:4826
USHORT DownstreamSplitTransactionCapacity
Definition: iotypes.h:4856
USHORT SplitCompletionDiscarded
Definition: iotypes.h:4824
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:4819
ULONG SplitCompletionDiscarded
Definition: iotypes.h:4843
USHORT UpstreamSplitTransactionLimit
Definition: iotypes.h:4855
ULONG SelectSecondaryRegisters
Definition: iotypes.h:4860
ULONG UnexpectedSplitCompletion
Definition: iotypes.h:4844
USHORT UnexpectedSplitCompletion
Definition: iotypes.h:4825
ULONG AdditionalCorrectableError
Definition: iotypes.h:4862
ULONG DisableSingleBitCorrection
Definition: iotypes.h:4872
USHORT DownstreamSplitTransactionLimit
Definition: iotypes.h:4857
USHORT UpstreamSplitTransactionCapacity
Definition: iotypes.h:4854
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:4714
ULONG GTLB_Enable
Definition: iotypes.h:4771
ULONG CAL_Disable
Definition: iotypes.h:4773
PCI_LINE_TO_PIN LineToPin
Definition: iotypes.h:5347
PCI_PIN_TO_LINE PinToLine
Definition: iotypes.h:5346
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5343
PCI_ROOT_BUS_CAPABILITY RootBusCapability
Definition: iotypes.h:5348
PCI_EXPRESS_WAKE_CONTROL ExpressWakeControl
Definition: iotypes.h:5349
PCI_READ_WRITE_CONFIG ReadConfig
Definition: iotypes.h:5344
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5342
PCI_READ_WRITE_CONFIG WriteConfig
Definition: iotypes.h:5345
PCARDBUSDELETE DeleteCardBus
Definition: iotypes.h:5579
PCARDBUSPCIDISPATCH DispatchPnp
Definition: iotypes.h:5580
PDRIVER_OBJECT DriverObject
Definition: iotypes.h:5577
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5575
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5576
PCI_COMMON_HEADER DUMMYSTRUCTNAME
Definition: iotypes.h:3604
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:923
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:924
PPCI_IS_DEVICE_PRESENT_EX IsDevicePresentEx
Definition: iotypes.h:926
PPCI_IS_DEVICE_PRESENT IsDevicePresent
Definition: iotypes.h:925
PCI_EXPRESS_AER_CAPABILITIES CapabilitiesAndControl
Definition: iotypes.h:4021
PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity
Definition: iotypes.h:4018
PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus
Definition: iotypes.h:4019
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:4015
PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask
Definition: iotypes.h:4020
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY SecUncorrectableErrorSeverity
Definition: iotypes.h:4025
PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask
Definition: iotypes.h:4017
PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus
Definition: iotypes.h:4016
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS SecUncorrectableErrorStatus
Definition: iotypes.h:4023
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK SecUncorrectableErrorMask
Definition: iotypes.h:4024
PCI_EXPRESS_SEC_AER_CAPABILITIES SecCapabilitiesAndControl
Definition: iotypes.h:4026
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY SecUncorrectableErrorSeverity
Definition: iotypes.h:4055
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK SecUncorrectableErrorMask
Definition: iotypes.h:4054
PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity
Definition: iotypes.h:4048
PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask
Definition: iotypes.h:4050
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS SecUncorrectableErrorStatus
Definition: iotypes.h:4053
PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus
Definition: iotypes.h:4049
PCI_EXPRESS_SEC_AER_CAPABILITIES SecCapabilitiesAndControl
Definition: iotypes.h:4056
PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus
Definition: iotypes.h:4046
PCI_EXPRESS_AER_CAPABILITIES CapabilitiesAndControl
Definition: iotypes.h:4051
PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask
Definition: iotypes.h:4047
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:4045
PCI_EXPRESS_SLOT_STATUS_REGISTER SlotStatus
Definition: iotypes.h:5151
PCI_EXPRESS_LINK_CONTROL_REGISTER LinkControl
Definition: iotypes.h:5147
PCI_EXPRESS_DEVICE_STATUS_REGISTER DeviceStatus
Definition: iotypes.h:5145
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:5141
PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER RootCapabilities
Definition: iotypes.h:5153
PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER DeviceCapabilities
Definition: iotypes.h:5143
PCI_EXPRESS_ROOT_CONTROL_REGISTER RootControl
Definition: iotypes.h:5152
PCI_EXPRESS_LINK_CAPABILITIES_REGISTER LinkCapabilities
Definition: iotypes.h:5146
PCI_EXPRESS_ROOT_STATUS_REGISTER RootStatus
Definition: iotypes.h:5154
PCI_EXPRESS_CAPABILITIES_REGISTER ExpressCapabilities
Definition: iotypes.h:5142
PCI_EXPRESS_SLOT_CONTROL_REGISTER SlotControl
Definition: iotypes.h:5150
PCI_EXPRESS_LINK_STATUS_REGISTER LinkStatus
Definition: iotypes.h:5148
PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER SlotCapabilities
Definition: iotypes.h:5149
PCI_EXPRESS_DEVICE_CONTROL_REGISTER DeviceControl
Definition: iotypes.h:5144
PCI_EXPRESS_ROOT_ERROR_STATUS RootErrorStatus
Definition: iotypes.h:4040
PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask
Definition: iotypes.h:4036
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:4031
PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus
Definition: iotypes.h:4035
PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus
Definition: iotypes.h:4032
PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask
Definition: iotypes.h:4033
PCI_EXPRESS_ERROR_SOURCE_ID ErrorSourceId
Definition: iotypes.h:4041
PCI_EXPRESS_ROOT_ERROR_COMMAND RootErrorCommand
Definition: iotypes.h:4039
PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity
Definition: iotypes.h:4034
PCI_EXPRESS_AER_CAPABILITIES CapabilitiesAndControl
Definition: iotypes.h:4037
PPCI_EXPRESS_ROOT_PORT_READ_CONFIG_SPACE ReadConfigSpace
Definition: iotypes.h:4309
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4308
PPCI_EXPRESS_ROOT_PORT_WRITE_CONFIG_SPACE WriteConfigSpace
Definition: iotypes.h:4310
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4307
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:3787
PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY VFMigrationStateArrayOffset
Definition: iotypes.h:4114
PCI_EXPRESS_SRIOV_CAPS SRIOVCapabilities
Definition: iotypes.h:4099
PCI_EXPRESS_SRIOV_STATUS SRIOVStatus
Definition: iotypes.h:4101
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:4098
PCI_EXPRESS_SRIOV_CONTROL SRIOVControl
Definition: iotypes.h:4100
PPCI_MSIX_GET_TABLE_SIZE GetTableSize
Definition: iotypes.h:4356
PPCI_MSIX_MASKUNMASK_ENTRY UnmaskTableEntry
Definition: iotypes.h:4354
PPCI_MSIX_SET_ENTRY SetTableEntry
Definition: iotypes.h:4352
PPCI_MSIX_MASKUNMASK_ENTRY MaskTableEntry
Definition: iotypes.h:4353
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4351
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4350
PPCI_MSIX_GET_ENTRY GetTableEntry
Definition: iotypes.h:4355
UCHAR D3HotSupportsStopClock
Definition: iotypes.h:3714
UCHAR BusPowerClockControlEnabled
Definition: iotypes.h:3715
USHORT DataSelect
Definition: iotypes.h:3707
USHORT PowerState
Definition: iotypes.h:3704
USHORT Rsvd1
Definition: iotypes.h:3705
USHORT PMEStatus
Definition: iotypes.h:3709
USHORT PMEEnable
Definition: iotypes.h:3706
USHORT DataScale
Definition: iotypes.h:3708
UCHAR Version
Definition: iotypes.h:3686
UCHAR DeviceSpecificInitialization
Definition: iotypes.h:3689
UCHAR Rsvd2
Definition: iotypes.h:3690
UCHAR Rsvd1
Definition: iotypes.h:3688
UCHAR PMEClock
Definition: iotypes.h:3687
PPME_GET_INFORMATION GetPmeInformation
Definition: iotypes.h:5589
PPME_CLEAR_PME_STATUS ClearPmeStatus
Definition: iotypes.h:5590
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5588
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5587
PPME_SET_PME_ENABLE UpdateEnable
Definition: iotypes.h:5591
PCI_PMCSR_BSE BridgeSupport
Definition: iotypes.h:3729
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:3719
PCI_PMCSR ControlStatus
Definition: iotypes.h:3725
PCI_PMC Capabilities
Definition: iotypes.h:3721
PCI_ROOT_BUS_OSC_SUPPORT_FIELD OscFeatureSupport
Definition: iotypes.h:4946
PCI_ROOT_BUS_OSC_CONTROL_FIELD OscControlRequest
Definition: iotypes.h:4947
PCI_HARDWARE_INTERFACE SecondaryInterface
Definition: iotypes.h:4938
PCI_ROOT_BUS_OSC_CONTROL_FIELD OscControlGranted
Definition: iotypes.h:4948
ULONG FunctionNumber
Definition: iotypes.h:3508
ULONG DeviceNumber
Definition: iotypes.h:3507
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:4883
PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE Type
Definition: iotypes.h:5251
PGET_LOCATION_STRING GetLocationString
Definition: iotypes.h:4559
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4557
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4558
PREPLACE_MIRROR_PHYSICAL_MEMORY MirrorPhysicalMemory
Definition: iotypes.h:1153
PREPLACE_INITIATE_HARDWARE_MIRROR InitiateHardwareMirror
Definition: iotypes.h:1156
PREPLACE_SET_PROCESSOR_ID SetProcessorId
Definition: iotypes.h:1154
PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE EnableDisableHardwareQuiesce
Definition: iotypes.h:1159
PREPLACE_MIRROR_PLATFORM_MEMORY MirrorPlatformMemory
Definition: iotypes.h:1157
PREPLACE_BEGIN BeginReplace
Definition: iotypes.h:1151
PREPLACE_GET_MEMORY_DESTINATION GetMemoryDestination
Definition: iotypes.h:1158
PREPLACE_UNLOAD Unload
Definition: iotypes.h:1150
PHYSICAL_ADDRESS Address
Definition: iotypes.h:1045
PPNP_REPLACE_PROCESSOR_LIST SpareProcessors
Definition: iotypes.h:1073
PREPLACE_MAP_MEMORY MapMemory
Definition: iotypes.h:1076
PPNP_REPLACE_MEMORY_LIST TargetMemory
Definition: iotypes.h:1074
PPNP_REPLACE_PROCESSOR_LIST TargetProcessors
Definition: iotypes.h:1072
PPNP_REPLACE_MEMORY_LIST SpareMemory
Definition: iotypes.h:1075
_Field_range_(<=, MAXIMUM_GROUPS) ULONG GroupCount
ULONG SequenceD2
Definition: iotypes.h:1180
ULONG SequenceD1
Definition: iotypes.h:1179
ULONG SequenceD3
Definition: iotypes.h:1181
PREENUMERATE_SELF SurpriseRemoveAndReenumerateSelf
Definition: iotypes.h:855
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:853
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:854
ULONG FileReparseTag
Definition: iotypes.h:7262
LARGE_INTEGER FileId
Definition: iotypes.h:7263
PVOID LinkNode
Definition: iotypes.h:5484
ULONG StaticVector
Definition: iotypes.h:5485
PHYSICAL_ADDRESS Address
Definition: iotypes.h:2188
ULONG Deleters
Definition: iotypes.h:528
ULONG Writers
Definition: iotypes.h:527
ULONG SharedRead
Definition: iotypes.h:529
ULONG SharedWrite
Definition: iotypes.h:530
ULONG Readers
Definition: iotypes.h:526
ULONG SharedDelete
Definition: iotypes.h:531
ULONG OpenCount
Definition: iotypes.h:525
struct _FILE_OBJECT * FileObject
Definition: iotypes.h:1012
struct _FILE_OBJECT * FileObject
Definition: iotypes.h:1021
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4707
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4708
PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER TranslateResourceRequirements
Definition: iotypes.h:4710
PTRANSLATE_RESOURCE_HANDLER TranslateResources
Definition: iotypes.h:4709
Definition: iotypes.h:189
WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH/sizeof(WCHAR)]
Definition: iotypes.h:198
CSHORT Type
Definition: iotypes.h:190
USHORT VolumeLabelLength
Definition: iotypes.h:193
CSHORT Size
Definition: iotypes.h:191
struct _DEVICE_OBJECT * DeviceObject
Definition: iotypes.h:194
USHORT Flags
Definition: iotypes.h:192
ULONG ReferenceCount
Definition: iotypes.h:197
ULONG SerialNumber
Definition: iotypes.h:196
struct _DEVICE_OBJECT * RealDevice
Definition: iotypes.h:195
PKDPC BufferChainingDpc
Definition: iotypes.h:224
ULONG NumberOfMapRegisters
Definition: iotypes.h:221
KDEVICE_QUEUE_ENTRY WaitQueueEntry
Definition: iotypes.h:218
PDRIVER_CONTROL DeviceRoutine
Definition: iotypes.h:219
BYTE ExtendedCode
Definition: condrv.c:27
#define OPTIONAL
Definition: typedefs.h:41
uint32_t * PULONG
Definition: typedefs.h:59
unsigned char UCHAR
Definition: typedefs.h:53
unsigned char * PBOOLEAN
Definition: typedefs.h:53
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
int64_t LONGLONG
Definition: typedefs.h:68
#define NTAPI
Definition: typedefs.h:36
void * PVOID
Definition: typedefs.h:50
PVOID HANDLE
Definition: typedefs.h:73
uint64_t ULONGLONG
Definition: typedefs.h:67
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
uint32_t UINT32
Definition: typedefs.h:59
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
char CCHAR
Definition: typedefs.h:51
char * PCHAR
Definition: typedefs.h:51
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
_In_ PGUID _In_ ULONG OutputBufferLength
Definition: ucxcontroller.h:81
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
_Must_inspect_result_ _In_ UCXENDPOINT _In_ PVOID Tag
Definition: ucxendpoint.h:325
_In_ UCXUSBDEVICE _In_ ULONG Interface
Definition: ucxusbdevice.h:428
short CSHORT
Definition: umtypes.h:127
ULONGLONG Alignment
Definition: iotypes.h:5448
FS_FILTER_SECTION_SYNC_TYPE SyncType
Definition: iotypes.h:7398
BOOLEAN POINTER_ALIGNMENT SafeToRecurse
Definition: iotypes.h:7403
PLARGE_INTEGER EndingOffset
Definition: iotypes.h:7391
FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType
Definition: iotypes.h:7402
PERESOURCE ResourceToRelease
Definition: iotypes.h:7395
PERESOURCE * ResourceToRelease
Definition: iotypes.h:7392
ULONG VFMigrationInterruptNumber
Definition: iotypes.h:4064
static BOOL Write(PBYTE Address, PBYTE Data, SIZE_T Size)
Definition: vmhorizon.c:15
NTSTATUS MountVolume(_Inout_ PVOLINFO Volume, _In_opt_ UCHAR MbrPartitionType)
Definition: volutil.c:23
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061
_In_ UCHAR _In_ UCHAR _In_ ULONG _In_ WDFCONTEXT DriverContext
Definition: wdfdevice.h:1709
_In_ WDFDEVICE _Out_ PWDF_DEVICE_STATE DeviceState
Definition: wdfdevice.h:2005
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2664
_In_ WDFDEVICE _In_ ULONG AlignmentRequirement
Definition: wdfdevice.h:2860
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
Definition: wdfdevice.h:2231
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3540
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4539
_In_ UCHAR MajorFunction
Definition: wdfdevice.h:1703
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3777
_In_ WDFDEVICE _In_ PPNP_BUS_INFORMATION BusInformation
Definition: wdfdevice.h:3921
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION Direction
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
Definition: wdfdpc.h:112
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:170
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
Definition: wdfdriver.h:215
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:379
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:863
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
Definition: wdfiotarget.h:510
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG DeviceOffset
Definition: wdfiotarget.h:865
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET OutputBufferOffset
Definition: wdfiotarget.h:912
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:953
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
Definition: wdfmemory.h:169
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceID
Definition: wdfpdo.h:278
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
Definition: wdfrequest.h:898
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
Definition: wdfrequest.h:1049
_Must_inspect_result_ _In_ WDFCMRESLIST List
Definition: wdfresource.h:550
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
Definition: wdfresource.h:68
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
Definition: wdfsync.h:127
#define FORCEINLINE
Definition: wdftypes.h:67
#define _WDMDDK_
Definition: wdm.template.h:26
#define NTKERNELAPI
#define POINTER_ALIGNMENT
#define DeleteFile
Definition: winbase.h:3487
#define CreateMailslot
Definition: winbase.h:3478
_In_ ULONG NotifyCode
Definition: winddi.h:4265
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
struct _FILE_FS_VOLUME_INFORMATION * PFILE_FS_VOLUME_INFORMATION
struct _FILE_FS_VOLUME_INFORMATION FILE_FS_VOLUME_INFORMATION
struct _FILE_PIPE_PEEK_BUFFER FILE_PIPE_PEEK_BUFFER
struct _FILE_PIPE_PEEK_BUFFER * PFILE_PIPE_PEEK_BUFFER
struct _FILE_IO_COMPLETION_NOTIFICATION_INFORMATION * PFILE_IO_COMPLETION_NOTIFICATION_INFORMATION
@ FileRemoteProtocolInformation
Definition: winternl.h:1430
@ FileStandardLinkInformation
Definition: winternl.h:1429
@ FileIsRemoteDeviceInformation
Definition: winternl.h:1426
@ FileAttributeCacheInformation
Definition: winternl.h:1427
@ FileNumaNodeInformation
Definition: winternl.h:1428
struct _FILE_ATTRIBUTE_TAG_INFORMATION FILE_ATTRIBUTE_TAG_INFORMATION
struct _FILE_IO_COMPLETION_NOTIFICATION_INFORMATION FILE_IO_COMPLETION_NOTIFICATION_INFORMATION
struct _FILE_OBJECTID_BUFFER * PFILE_OBJECTID_BUFFER
struct _FILE_OBJECTID_INFORMATION FILE_OBJECTID_INFORMATION
struct _FILE_MODE_INFORMATION FILE_MODE_INFORMATION
struct _FILE_ALLOCATION_INFORMATION * PFILE_ALLOCATION_INFORMATION
struct _FILE_FULL_DIRECTORY_INFORMATION * PFILE_FULL_DIR_INFORMATION
struct _FILE_RENAME_INFORMATION * PFILE_RENAME_INFORMATION
struct _FILE_QUOTA_INFORMATION FILE_QUOTA_INFORMATION
struct _FILE_REPARSE_POINT_INFORMATION * PFILE_REPARSE_POINT_INFORMATION
struct _FILE_QUOTA_INFORMATION * PFILE_QUOTA_INFORMATION
struct _FILE_ALL_INFORMATION * PFILE_ALL_INFORMATION
struct _FILE_FULL_DIRECTORY_INFORMATION FILE_FULL_DIR_INFORMATION
struct _FILE_OBJECTID_BUFFER FILE_OBJECTID_BUFFER
struct _FILE_NAME_INFORMATION FILE_NAME_INFORMATION
struct _FILE_STREAM_INFORMATION * PFILE_STREAM_INFORMATION
struct _FILE_NAME_INFORMATION * PFILE_NAME_INFORMATION
struct _FILE_RENAME_INFORMATION FILE_RENAME_INFORMATION
struct _FILE_EA_INFORMATION * PFILE_EA_INFORMATION
struct _FILE_REPARSE_POINT_INFORMATION FILE_REPARSE_POINT_INFORMATION
struct _FILE_COMPLETION_INFORMATION * PFILE_COMPLETION_INFORMATION
struct _FILE_ID_GLOBAL_TX_DIR_INFORMATION FILE_ID_GLOBAL_TX_DIR_INFORMATION
struct _FILE_ALLOCATION_INFORMATION FILE_ALLOCATION_INFORMATION
struct _FILE_MAILSLOT_QUERY_INFORMATION FILE_MAILSLOT_QUERY_INFORMATION
struct _FILE_ATTRIBUTE_TAG_INFORMATION * PFILE_ATTRIBUTE_TAG_INFORMATION
struct _FILE_MAILSLOT_SET_INFORMATION * PFILE_MAILSLOT_SET_INFORMATION
struct _FILE_OBJECTID_INFORMATION * PFILE_OBJECTID_INFORMATION
struct _FILE_COMPLETION_INFORMATION FILE_COMPLETION_INFORMATION
struct _FILE_EA_INFORMATION FILE_EA_INFORMATION
struct _FILE_MAILSLOT_QUERY_INFORMATION * PFILE_MAILSLOT_QUERY_INFORMATION
struct _FILE_DIRECTORY_INFORMATION * PFILE_DIRECTORY_INFORMATION
struct _FILE_PIPE_INFORMATION * PFILE_PIPE_INFORMATION
struct _FILE_MODE_INFORMATION * PFILE_MODE_INFORMATION
struct _FILE_STREAM_INFORMATION FILE_STREAM_INFORMATION
struct _FILE_ID_GLOBAL_TX_DIR_INFORMATION * PFILE_ID_GLOBAL_TX_DIR_INFORMATION
struct _FILE_ALL_INFORMATION FILE_ALL_INFORMATION
struct _FILE_PIPE_LOCAL_INFORMATION * PFILE_PIPE_LOCAL_INFORMATION
struct _FILE_MAILSLOT_SET_INFORMATION FILE_MAILSLOT_SET_INFORMATION
struct _FILE_DIRECTORY_INFORMATION FILE_DIRECTORY_INFORMATION
#define DeviceCapabilities
Definition: wingdi.h:4895
struct _FILE_NOTIFY_INFORMATION FILE_NOTIFY_INFORMATION
struct _FILE_NOTIFY_INFORMATION * PFILE_NOTIFY_INFORMATION
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: wsk.h:191
_Out_ PULONG NumberOfMapRegisters
Definition: halfuncs.h:209
_In_ ULONG SectorSize
Definition: halfuncs.h:291
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
Definition: halfuncs.h:159
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT SourceDevice
Definition: iofuncs.h:690
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP _In_ PIO_CSQ_PEEK_NEXT_IRP _In_ PIO_CSQ_ACQUIRE_LOCK _In_ PIO_CSQ_RELEASE_LOCK _In_ PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp
Definition: iofuncs.h:1893
_In_ PKSERVICE_ROUTINE ServiceRoutine
Definition: iofuncs.h:800
_In_ PIO_CSQ_INSERT_IRP CsqInsertIrp
Definition: iofuncs.h:1888
_In_opt_ PDRIVER_CANCEL CancelRoutine
Definition: iofuncs.h:2751
_In_ PDEVICE_OBJECT _In_ ULONG _In_ PDRIVER_CONTROL ExecutionRoutine
Definition: iofuncs.h:1399
_In_ INTERFACE_TYPE LegacyBusType
Definition: iofuncs.h:1547
_In_ ULONG _In_ PHYSICAL_ADDRESS BusAddress
Definition: iofuncs.h:2273
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
Definition: iofuncs.h:691
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
Definition: iofuncs.h:2275
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
Definition: iofuncs.h:2274
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP _In_ PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp
Definition: iofuncs.h:1890
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP _In_ PIO_CSQ_PEEK_NEXT_IRP _In_ PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock
Definition: iofuncs.h:1891
_Inout_ PMDL TargetMdl
Definition: iofuncs.h:730
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID ServiceContext
Definition: iofuncs.h:801
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP CsqRemoveIrp
Definition: iofuncs.h:1889
_In_ PVOID NotificationStructure
Definition: iofuncs.h:1206
_In_ PIO_CSQ_INSERT_IRP _In_ PIO_CSQ_REMOVE_IRP _In_ PIO_CSQ_PEEK_NEXT_IRP _In_ PIO_CSQ_ACQUIRE_LOCK _In_ PIO_CSQ_RELEASE_LOCK CsqReleaseLock
Definition: iofuncs.h:1892
union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY * PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY
FAST_IO_DEVICE_CONTROL * PFAST_IO_DEVICE_CONTROL
Definition: iotypes.h:1557
struct _IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS
struct _PCI_ROOT_BUS_OSC_SUPPORT_FIELD PCI_ROOT_BUS_OSC_SUPPORT_FIELD
enum _IRQ_GROUP_POLICY IRQ_GROUP_POLICY
NTSTATUS(NTAPI * PJOIN_DMA_DOMAIN)(_In_ PDMA_ADAPTER DmaAdapter, _In_ HANDLE DomainHandle)
Definition: iotypes.h:2591
enum _DEVICE_WAKE_DEPTH DEVICE_WAKE_DEPTH
PCI_MSIX_GET_ENTRY * PPCI_MSIX_GET_ENTRY
Definition: iotypes.h:4337
FAST_IO_WRITE_COMPRESSED * PFAST_IO_WRITE_COMPRESSED
Definition: iotypes.h:1677
struct _ARBITER_QUERY_ARBITRATE_PARAMETERS ARBITER_QUERY_ARBITRATE_PARAMETERS
ULONG KINTERRUPT_MODE BOOLEAN PGPE_SERVICE_ROUTINE PVOID PVOID * ObjectContext
Definition: iotypes.h:3057
enum _FS_FILTER_SECTION_SYNC_TYPE FS_FILTER_SECTION_SYNC_TYPE
struct _BOOTDISK_INFORMATION_EX * PBOOTDISK_INFORMATION_EX
D3COLD_REQUEST_AUX_POWER * PD3COLD_REQUEST_AUX_POWER
Definition: iotypes.h:7600
union _PCI_EXPRESS_ROOT_STATUS_REGISTER PCI_EXPRESS_ROOT_STATUS_REGISTER
FAST_IO_CHECK_IF_POSSIBLE * PFAST_IO_CHECK_IF_POSSIBLE
Definition: iotypes.h:1443
_FS_FILTER_STREAM_FO_NOTIFICATION_TYPE
Definition: iotypes.h:7384
@ NotifyTypeRetired
Definition: iotypes.h:7386
@ NotifyTypeCreate
Definition: iotypes.h:7385
struct _FILE_COMPRESSION_INFORMATION FILE_COMPRESSION_INFORMATION
enum _D3COLD_LAST_TRANSITION_STATUS * PD3COLD_LAST_TRANSITION_STATUS
struct _FILE_VALID_DATA_LENGTH_INFORMATION FILE_VALID_DATA_LENGTH_INFORMATION
VOID(NTAPI * PPME_CLEAR_PME_STATUS)(IN PDEVICE_OBJECT Pdo)
Definition: iotypes.h:5561
struct _PCI_EXPRESS_ROOTPORT_AER_CAPABILITY PCI_EXPRESS_ROOTPORT_AER_CAPABILITY
_PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE
Definition: iotypes.h:5242
@ ResourceTypeMax
Definition: iotypes.h:5247
@ ResourceTypeRange
Definition: iotypes.h:5244
@ ResourceTypeSingle
Definition: iotypes.h:5243
@ ResourceTypeOverflow
Definition: iotypes.h:5246
@ ResourceTypeExtendedCounterConfiguration
Definition: iotypes.h:5245
_In_ PIRP Irp
Definition: iotypes.h:2898
struct _PCI_EXPRESS_SRIOV_CAPABILITY * PPCI_EXPRESS_SRIOV_CAPABILITY
_IO_CONTAINER_INFORMATION_CLASS
Definition: iotypes.h:447
@ IoSessionStateInformation
Definition: iotypes.h:448
@ IoMaxContainerInformationClass
Definition: iotypes.h:449
struct _FILE_FS_VOLUME_FLAGS_INFORMATION FILE_FS_VOLUME_FLAGS_INFORMATION
union _PCI_EXPRESS_SRIOV_CONTROL PCI_EXPRESS_SRIOV_CONTROL
VOID(NTAPI * PFREE_ADAPTER_CHANNEL)(_In_ PDMA_ADAPTER DmaAdapter)
Definition: iotypes.h:2358
struct _INT_ROUTE_INTERFACE_STANDARD * PINT_ROUTE_INTERFACE_STANDARD
struct _PNP_REPLACE_MEMORY_LIST PNP_REPLACE_MEMORY_LIST
DEVICE_CAPABILITIES
Definition: iotypes.h:965
struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS * PARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS
union _PCI_EXPRESS_DEVICE_STATUS_REGISTER PCI_EXPRESS_DEVICE_STATUS_REGISTER
FAST_IO_ACQUIRE_FOR_MOD_WRITE * PFAST_IO_ACQUIRE_FOR_MOD_WRITE
Definition: iotypes.h:1600
FAST_IO_LOCK * PFAST_IO_LOCK
Definition: iotypes.h:1508
enum _DEVICE_INSTALL_STATE DEVICE_INSTALL_STATE
struct _ACPI_INTERFACE_STANDARD2 * PACPI_INTERFACE_STANDARD2
struct _FAST_IO_DISPATCH * PFAST_IO_DISPATCH
FAST_IO_MDL_WRITE_COMPLETE * PFAST_IO_MDL_WRITE_COMPLETE
Definition: iotypes.h:1645
_DEVICE_RELATION_TYPE
Definition: iotypes.h:2153
@ SingleBusRelations
Definition: iotypes.h:2159
@ EjectionRelations
Definition: iotypes.h:2155
@ RemovalRelations
Definition: iotypes.h:2157
@ BusRelations
Definition: iotypes.h:2154
@ TargetDeviceRelation
Definition: iotypes.h:2158
@ TransportRelations
Definition: iotypes.h:2160
@ PowerRelations
Definition: iotypes.h:2156
#define STATUS_CONTINUE_COMPLETION
struct _IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS
union _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS * PPCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS
_IO_ACCESS_MODE
Definition: iotypes.h:429
@ SequentialAccess
Definition: iotypes.h:430
@ RandomAccess
Definition: iotypes.h:431
_In_ PVOID _In_ ULONG _In_ PVOID Context
Definition: iotypes.h:469
FAST_IO_UNLOCK_ALL_BY_KEY * PFAST_IO_UNLOCK_ALL_BY_KEY
Definition: iotypes.h:1542
struct _PHYSICAL_COUNTER_RESOURCE_LIST * PPHYSICAL_COUNTER_RESOURCE_LIST
union _PCI_EXPRESS_ROOT_ERROR_STATUS PCI_EXPRESS_ROOT_ERROR_STATUS
struct _FSCTL_QUERY_FAT_BPB_BUFFER * PFSCTL_QUERY_FAT_BPB_BUFFER
PCI_EXPRESS_DEVICE_TYPE
Definition: iotypes.h:5212
@ PciXToExpressBridge
Definition: iotypes.h:5219
@ PciExpressToPciXBridge
Definition: iotypes.h:5218
@ PciExpressUpstreamSwitchPort
Definition: iotypes.h:5216
@ PciExpressDownstreamSwitchPort
Definition: iotypes.h:5217
@ PciExpressRootPort
Definition: iotypes.h:5215
@ PciExpressRootComplexIntegratedEndpoint
Definition: iotypes.h:5220
@ PciExpressRootComplexEventCollector
Definition: iotypes.h:5221
@ PciExpressLegacyEndpoint
Definition: iotypes.h:5214
@ PciExpressEndpoint
Definition: iotypes.h:5213
struct _DMA_ADAPTER_INFO * PDMA_ADAPTER_INFO
struct _TARGET_DEVICE_CUSTOM_NOTIFICATION * PTARGET_DEVICE_CUSTOM_NOTIFICATION
_Must_inspect_result_ typedef _In_ ULONG ApicId
Definition: iotypes.h:1105
struct _DRIVER_OBJECT * PDRIVER_OBJECT
struct _PCI_BUS_INTERFACE_STANDARD * PPCI_BUS_INTERFACE_STANDARD
struct _ROUTING_TOKEN ROUTING_TOKEN
struct _FILE_STANDARD_LINK_INFORMATION * PFILE_STANDARD_LINK_INFORMATION
struct _PCI_ROOT_BUS_OSC_CONTROL_FIELD PCI_ROOT_BUS_OSC_CONTROL_FIELD
struct _PCI_AGP_APERTURE_PAGE_SIZE * PPCI_AGP_APERTURE_PAGE_SIZE
struct _PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR
enum _IO_PAGING_PRIORITY IO_PAGING_PRIORITY
PCI_EXPRESS_L0s_EXIT_LATENCY
Definition: iotypes.h:5190
@ L0s_Below64ns
Definition: iotypes.h:5191
@ L0s_1us_2us
Definition: iotypes.h:5196
@ L0s_256ns_512ns
Definition: iotypes.h:5194
@ L0s_64ns_128ns
Definition: iotypes.h:5192
@ L0s_2us_4us
Definition: iotypes.h:5197
@ L0s_Above4us
Definition: iotypes.h:5198
@ L0s_128ns_256ns
Definition: iotypes.h:5193
@ L0s_512ns_1us
Definition: iotypes.h:5195
NTSTATUS(NTAPI * PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER)(_Inout_opt_ PVOID Context, _In_ PIO_RESOURCE_DESCRIPTOR Source, _In_ PDEVICE_OBJECT PhysicalDeviceObject, _Out_ PULONG TargetCount, _Out_writes_(*TargetCount) PIO_RESOURCE_DESCRIPTOR *Target)
Definition: iotypes.h:4696
struct _PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY * PPCI_EXPRESS_SERIAL_NUMBER_CAPABILITY
struct _FILE_REMOTE_PROTOCOL_INFORMATION * PFILE_REMOTE_PROTOCOL_INFORMATION
NTSTATUS(NTAPI * PBUILD_SCATTER_GATHER_LIST)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDEVICE_OBJECT DeviceObject, _In_ PMDL Mdl, _In_ PVOID CurrentVa, _In_ ULONG Length, _In_ PDRIVER_LIST_CONTROL ExecutionRoutine, _In_ PVOID Context, _In_ BOOLEAN WriteToDevice, _In_ PVOID ScatterGatherBuffer, _In_ ULONG ScatterGatherLength)
Definition: iotypes.h:2421
PCI_IS_DEVICE_PRESENT_EX * PPCI_IS_DEVICE_PRESENT_EX
Definition: iotypes.h:905
struct _PLUGPLAY_NOTIFICATION_HEADER * PPLUGPLAY_NOTIFICATION_HEADER
struct _PCI_AGP_ISOCH_STATUS * PPCI_AGP_ISOCH_STATUS
struct _DMA_OPERATIONS * PDMA_OPERATIONS
DRIVER_STARTIO * PDRIVER_STARTIO
Definition: iotypes.h:2260
struct _IO_DRIVER_CREATE_CONTEXT IO_DRIVER_CREATE_CONTEXT
struct _FILE_PIPE_REMOTE_INFORMATION * PFILE_PIPE_REMOTE_INFORMATION
union _PCI_EXPRESS_PME_REQUESTOR_ID PCI_EXPRESS_PME_REQUESTOR_ID
#define __guid_type
Definition: iotypes.h:1190
_In_ BOOLEAN FsActive
Definition: iotypes.h:7376
PCI_EXPRESS_MRL_STATE
Definition: iotypes.h:5157
@ MRLOpen
Definition: iotypes.h:5159
@ MRLClosed
Definition: iotypes.h:5158
_In_ ULONG AuxPowerInMilliWatts
Definition: iotypes.h:7597
struct _IO_INTERRUPT_MESSAGE_INFO * PIO_INTERRUPT_MESSAGE_INFO
struct _FILE_PIPE_EVENT_BUFFER FILE_PIPE_EVENT_BUFFER
#define FILE_PIPE_COMPUTER_NAME_LENGTH
Definition: iotypes.h:7335
struct _ARBITER_PARAMETERS ARBITER_PARAMETERS
enum _IO_NOTIFICATION_EVENT_CATEGORY IO_NOTIFICATION_EVENT_CATEGORY
struct _ARBITER_PARAMETERS * PARBITER_PARAMETERS
struct _BOOTDISK_INFORMATION_LITE * PBOOTDISK_INFORMATION_LITE
_In_ PVOID IoObject
Definition: iotypes.h:467
FAST_IO_READ_COMPRESSED * PFAST_IO_READ_COMPRESSED
Definition: iotypes.h:1661
union _PCI_EXPRESS_LINK_STATUS_REGISTER PCI_EXPRESS_LINK_STATUS_REGISTER
union _FS_FILTER_PARAMETERS * PFS_FILTER_PARAMETERS
struct _FILE_PIPE_CLIENT_PROCESS_BUFFER * PFILE_PIPE_CLIENT_PROCESS_BUFFER
struct _PCI_PMCSR_BSE * PPCI_PMCSR_BSE
union _PCI_EXPRESS_AER_CAPABILITIES * PPCI_EXPRESS_AER_CAPABILITIES
_In_ PLARGE_INTEGER _Out_ struct _ERESOURCE ** ResourceToRelease
Definition: iotypes.h:1598
struct _OBJECT_HANDLE_INFORMATION * POBJECT_HANDLE_INFORMATION
struct _PCI_PMCSR * PPCI_PMCSR
VOID(NTAPI * PFREE_MAP_REGISTERS)(_In_ PDMA_ADAPTER DmaAdapter, PVOID MapRegisterBase, ULONG NumberOfMapRegisters)
Definition: iotypes.h:2362
struct _PLUGPLAY_NOTIFICATION_HEADER PLUGPLAY_NOTIFICATION_HEADER
union _PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK
enum _IO_ACCESS_TYPE IO_ACCESS_TYPE
struct _ARBITER_RETEST_ALLOCATION_PARAMETERS * PARBITER_RETEST_ALLOCATION_PARAMETERS
union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK
struct _ACPI_INTERFACE_STANDARD2 ACPI_INTERFACE_STANDARD2
struct _ARBITER_LIST_ENTRY * PARBITER_LIST_ENTRY
struct _PCIBUSDATA * PPCIBUSDATA
union _PCI_EXPRESS_SRIOV_CAPS PCI_EXPRESS_SRIOV_CAPS
struct _DMA_OPERATIONS DMA_OPERATIONS
struct _IO_COMPLETION_CONTEXT IO_COMPLETION_CONTEXT
NTSTATUS(NTAPI * PINITIALIZE_DMA_TRANSFER_CONTEXT)(_In_ PDMA_ADAPTER DmaAdapter, _Out_ PVOID DmaTransferContext)
Definition: iotypes.h:2455
struct _FILE_ID_FULL_DIR_INFORMATION FILE_ID_FULL_DIR_INFORMATION
union _PCI_EXPRESS_LINK_CONTROL_REGISTER * PPCI_EXPRESS_LINK_CONTROL_REGISTER
struct _WAIT_CONTEXT_BLOCK * PWAIT_CONTEXT_BLOCK
struct _FILE_LINK_ENTRY_INFORMATION FILE_LINK_ENTRY_INFORMATION
struct _SCATTER_GATHER_LIST SCATTER_GATHER_LIST
Definition: iotypes.h:2219
struct _PNP_REPLACE_DRIVER_INTERFACE * PPNP_REPLACE_DRIVER_INTERFACE
union _PCI_EXPRESS_SRIOV_CONTROL * PPCI_EXPRESS_SRIOV_CONTROL
union _PCI_EXPRESS_SEC_AER_CAPABILITIES * PPCI_EXPRESS_SEC_AER_CAPABILITIES
NTSTATUS(NTAPI * PMM_DLL_UNLOAD)(VOID)
Definition: iotypes.h:2869
struct _PCI_CAPABILITIES_HEADER PCI_CAPABILITIES_HEADER
struct _LEGACY_DEVICE_DETECTION_INTERFACE LEGACY_DEVICE_DETECTION_INTERFACE
struct _FILE_IS_REMOTE_DEVICE_INFORMATION * PFILE_IS_REMOTE_DEVICE_INFORMATION
struct _PNP_REPLACE_PARAMETERS PNP_REPLACE_PARAMETERS
_Must_inspect_result_ typedef _Out_ PULONG TableSize
Definition: iotypes.h:4343
union _PCI_EXPRESS_DEVICE_CONTROL_REGISTER PCI_EXPRESS_DEVICE_CONTROL_REGISTER
struct _EISA_IRQ_DESCRIPTOR * PEISA_IRQ_DESCRIPTOR
struct _IO_PRIORITY_INFO IO_PRIORITY_INFO
_RESOURCE_TRANSLATION_DIRECTION
Definition: iotypes.h:4680
@ TranslateChildToParent
Definition: iotypes.h:4681
@ TranslateParentToChild
Definition: iotypes.h:4682
IO_SESSION_NOTIFICATION_FUNCTION * PIO_SESSION_NOTIFICATION_FUNCTION
Definition: iotypes.h:473
VOID(NTAPI * PFS_FILTER_COMPLETION_CALLBACK)(_In_ PFS_FILTER_CALLBACK_DATA Data, _In_ NTSTATUS OperationStatus, _In_ PVOID CompletionContext)
Definition: iotypes.h:7436
_IO_ACCESS_TYPE
Definition: iotypes.h:423
@ ReadAccess
Definition: iotypes.h:424
@ WriteAccess
Definition: iotypes.h:425
@ ModifyAccess
Definition: iotypes.h:426
DEVICE_CHANGE_COMPLETE_CALLBACK * PDEVICE_CHANGE_COMPLETE_CALLBACK
Definition: iotypes.h:1254
struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS
_FS_FILTER_SECTION_SYNC_TYPE
Definition: iotypes.h:7379
@ SyncTypeOther
Definition: iotypes.h:7380
@ SyncTypeCreateSection
Definition: iotypes.h:7381
struct _LOADER_PARTITION_INFORMATION_EX * PLOADER_PARTITION_INFORMATION_EX
enum _BUS_QUERY_ID_TYPE * PBUS_QUERY_ID_TYPE
enum _IO_QUERY_DEVICE_DATA_FORMAT IO_QUERY_DEVICE_DATA_FORMAT
struct _EISA_MEMORY_CONFIGURATION * PEISA_MEMORY_CONFIGURATION
struct _PCIX_BRIDGE_CAPABILITY PCIX_BRIDGE_CAPABILITY
struct _FILE_IO_PRIORITY_HINT_INFORMATION * PFILE_IO_PRIORITY_HINT_INFORMATION
struct _PCI_ROOT_BUS_OSC_SUPPORT_FIELD * PPCI_ROOT_BUS_OSC_SUPPORT_FIELD
ULONG(NTAPI * PREAD_DMA_COUNTER)(_In_ PDMA_ADAPTER DmaAdapter)
Definition: iotypes.h:2381
GET_SET_DEVICE_DATA * PGET_SET_DEVICE_DATA
Definition: iotypes.h:824
NTSTATUS(NTAPI * PBUILD_SCATTER_GATHER_LIST_EX)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDEVICE_OBJECT DeviceObject, _In_ PVOID DmaTransferContext, _In_ PMDL Mdl, _In_ ULONGLONG Offset, _In_ ULONG Length, _In_ ULONG Flags, _In_opt_ PDRIVER_LIST_CONTROL ExecutionRoutine, _In_opt_ PVOID Context, _In_ BOOLEAN WriteToDevice, _In_ PVOID ScatterGatherBuffer, _In_ ULONG ScatterGatherLength, _In_opt_ PDMA_COMPLETION_ROUTINE DmaCompletionRoutine, _In_opt_ PVOID CompletionContext, _Out_opt_ PVOID ScatterGatherList)
Definition: iotypes.h:2536
_Outptr_ _At_ * LocationStrings(return==0, __drv_allocatesMem(Mem))) PZZWSTR *LocationStrings
struct _FILE_NUMA_NODE_INFORMATION * PFILE_NUMA_NODE_INFORMATION
VOID(NTAPI * PFREE_COMMON_BUFFER_VECTOR)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDMA_COMMON_BUFFER_VECTOR Vector)
Definition: iotypes.h:2643
struct _TXN_PARAMETER_BLOCK * PTXN_PARAMETER_BLOCK
struct _DEVOBJ_EXTENSION * PDEVOBJ_EXTENSION
struct _PCI_ROOT_BUS_OSC_CONTROL_FIELD * PPCI_ROOT_BUS_OSC_CONTROL_FIELD
struct _PCI_AGP_CAPABILITY * PPCI_AGP_CAPABILITY
FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED * PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED
Definition: iotypes.h:1696
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
union _PCI_EXPRESS_ROOT_ERROR_COMMAND * PPCI_EXPRESS_ROOT_ERROR_COMMAND
struct _PNP_REPLACE_PROCESSOR_LIST_V1 PNP_REPLACE_PROCESSOR_LIST_V1
struct _VPB * PVPB
FAST_IO_QUERY_BASIC_INFO * PFAST_IO_QUERY_BASIC_INFO
Definition: iotypes.h:1482
struct _PCI_PMCSR PCI_PMCSR
struct _SCATTER_GATHER_LIST * PSCATTER_GATHER_LIST
Definition: iotypes.h:2219
enum _DEVICE_TEXT_TYPE * PDEVICE_TEXT_TYPE
union _PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER * PPCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER
enum _EXTENDED_AGP_REGISTER * PEXTENDED_AGP_REGISTER
#define __multiString_type
Definition: iotypes.h:1191
struct _FILE_NETWORK_PHYSICAL_NAME_INFORMATION * PFILE_NETWORK_PHYSICAL_NAME_INFORMATION
struct _PCI_BUS_INTERFACE_STANDARD PCI_BUS_INTERFACE_STANDARD
struct _PCI_PMC * PPCI_PMC
struct _PCI_CARDBUS_INTERFACE_PRIVATE * PPCI_CARDBUS_INTERFACE_PRIVATE
struct _EISA_MEMORY_CONFIGURATION EISA_MEMORY_CONFIGURATION
struct _EISA_MEMORY_TYPE * PEISA_MEMORY_TYPE
enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE * PFS_FILTER_STREAM_FO_NOTIFICATION_TYPE
enum _IO_COMPLETION_ROUTINE_RESULT IO_COMPLETION_ROUTINE_RESULT
struct _ARBITER_BOOT_ALLOCATION_PARAMETERS * PARBITER_BOOT_ALLOCATION_PARAMETERS
struct _LINK_TRACKING_INFORMATION * PLINK_TRACKING_INFORMATION
ULONG(NTAPI * PCI_READ_WRITE_CONFIG)(_In_ PVOID Context, _In_ ULONG BusOffset, _In_ ULONG Slot, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
Definition: iotypes.h:5309
struct _EISA_DMA_CONFIGURATION * PEISA_DMA_CONFIGURATION
VOID(NTAPI * PPME_SET_PME_ENABLE)(IN PDEVICE_OBJECT Pdo, IN BOOLEAN PmeEnable)
Definition: iotypes.h:5556
_Inout_ struct _IRP _In_ PVOID MapRegisterBase
Definition: iotypes.h:213
enum _IO_ALLOCATION_ACTION IO_ALLOCATION_ACTION
enum _DEVICE_REMOVAL_POLICY * PDEVICE_REMOVAL_POLICY
union _PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER
struct _PCI_CARDBUS_INTERFACE_PRIVATE PCI_CARDBUS_INTERFACE_PRIVATE
struct _FILE_MOVE_CLUSTER_INFORMATION * PFILE_MOVE_CLUSTER_INFORMATION
union _PCI_EXPRESS_CAPABILITIES_REGISTER * PPCI_EXPRESS_CAPABILITIES_REGISTER
VOID(NTAPI * PCI_LINE_TO_PIN)(_In_ PVOID Context, _In_ PPCI_COMMON_CONFIG PciNewData, _In_ PPCI_COMMON_CONFIG PciOldData)
Definition: iotypes.h:5323
#define PCI_TYPE0_ADDRESSES
Definition: iotypes.h:3515
struct _ARBITER_QUERY_ARBITRATE_PARAMETERS * PARBITER_QUERY_ARBITRATE_PARAMETERS
_In_opt_ PVOID _In_ PIO_WORKITEM IoWorkItem
Definition: iotypes.h:521
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER _Outptr_ PVOID _Outptr_ PVOID * SpareAddress
Definition: iotypes.h:1038
$if(_WDMDDK_||_NTDDK_) $endif(_WDMDDK_||_NTDDK_) $if(_WDMDDK_) $endif(_WDMDDK_) $if(_WDMDDK_||_DEVIOCTL_) $endif(_WDMDDK_||_DEVIOCTL_) $if(_WDMDDK_) typedef enum _IRQ_DEVICE_POLICY
Definition: iotypes.h:1
struct _FILE_NUMA_NODE_INFORMATION FILE_NUMA_NODE_INFORMATION
union _PCI_EXPRESS_ERROR_SOURCE_ID PCI_EXPRESS_ERROR_SOURCE_ID
DRIVER_DISPATCH DRIVER_DISPATCH_RAISED
Definition: iotypes.h:2278
NTSTATUS(NTAPI * PTRANSLATE_RESOURCE_HANDLER)(_Inout_opt_ PVOID Context, _In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Source, _In_ RESOURCE_TRANSLATION_DIRECTION Direction, _In_opt_ ULONG AlternativesCount, _In_reads_opt_(AlternativesCount) IO_RESOURCE_DESCRIPTOR Alternatives[], _In_ PDEVICE_OBJECT PhysicalDeviceObject, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Target)
Definition: iotypes.h:4686
NTSTATUS(NTAPI * PCONFIGURE_ADAPTER_CHANNEL)(_In_ PDMA_ADAPTER DmaAdapter, _In_ ULONG FunctionNumber, _In_ PVOID Context)
Definition: iotypes.h:2480
struct _FILE_SFIO_VOLUME_INFORMATION * PFILE_SFIO_VOLUME_INFORMATION
struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION * PDEVICE_INTERFACE_CHANGE_NOTIFICATION
NTSTATUS(NTAPI * PCARDBUSPCIDISPATCH)(IN PVOID DeviceContext, IN PIRP Irp)
Definition: iotypes.h:5551
union _PCI_EXPRESS_ROOT_CONTROL_REGISTER PCI_EXPRESS_ROOT_CONTROL_REGISTER
struct _CLIENT_ID CLIENT_ID
struct _CONFIGURATION_INFORMATION CONFIGURATION_INFORMATION
enum _ARBITER_REQUEST_SOURCE ARBITER_REQUEST_SOURCE
struct _PCI_EXPRESS_SRIOV_CAPABILITY PCI_EXPRESS_SRIOV_CAPABILITY
VOID(NTAPI * PciPin2Line)(_In_ struct _BUS_HANDLER *BusHandler, _In_ struct _BUS_HANDLER *RootHandler, _In_ PCI_SLOT_NUMBER SlotNumber, _In_ PPCI_COMMON_CONFIG PciData)
Definition: iotypes.h:5269
_IO_ALLOCATION_ACTION
Definition: iotypes.h:201
@ DeallocateObject
Definition: iotypes.h:203
@ KeepObject
Definition: iotypes.h:202
@ DeallocateObjectKeepRegisters
Definition: iotypes.h:204
PCI_MSIX_MASKUNMASK_ENTRY * PPCI_MSIX_MASKUNMASK_ENTRY
Definition: iotypes.h:4328
struct _IO_REMOVE_LOCK_COMMON_BLOCK IO_REMOVE_LOCK_COMMON_BLOCK
NTSTATUS(NTAPI * PSET_INTERRUPT_ROUTING_TOKEN)(IN PDEVICE_OBJECT Pdo, IN PROUTING_TOKEN RoutingToken)
Definition: iotypes.h:5503
BOOLEAN(NTAPI * PCANCEL_ADAPTER_CHANNEL)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDEVICE_OBJECT DeviceObject, _In_ PVOID DmaTransferContext)
Definition: iotypes.h:2486
enum _IO_CONTAINER_INFORMATION_CLASS IO_CONTAINER_INFORMATION_CLASS
union _FILE_SEGMENT_ELEMENT * PFILE_SEGMENT_ELEMENT
VOID(NTAPI * PUPDATE_INTERRUPT_LINE)(IN PDEVICE_OBJECT Pdo, IN UCHAR LineRegister)
Definition: iotypes.h:5508
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _In_ LARGE_INTEGER ByteCount
Definition: iotypes.h:1099
_IO_PAGING_PRIORITY
Definition: iotypes.h:2834
@ IoPagingPriorityReserved1
Definition: iotypes.h:2838
@ IoPagingPriorityNormal
Definition: iotypes.h:2836
@ IoPagingPriorityHigh
Definition: iotypes.h:2837
@ IoPagingPriorityReserved2
Definition: iotypes.h:2839
@ IoPagingPriorityInvalid
Definition: iotypes.h:2835
struct _IO_CONNECT_INTERRUPT_PARAMETERS * PIO_CONNECT_INTERRUPT_PARAMETERS
struct _PCI_SLOT_NUMBER * PPCI_SLOT_NUMBER
struct _PCI_EXPRESS_CAPABILITY * PPCI_EXPRESS_CAPABILITY
enum _DEVICE_REMOVAL_POLICY DEVICE_REMOVAL_POLICY
struct _IO_SESSION_STATE_INFORMATION IO_SESSION_STATE_INFORMATION
struct _OBJECT_HANDLE_INFORMATION OBJECT_HANDLE_INFORMATION
PCI_MSIX_SET_ENTRY * PPCI_MSIX_SET_ENTRY
Definition: iotypes.h:4321
struct _IO_ERROR_LOG_MESSAGE * PIO_ERROR_LOG_MESSAGE
DRIVER_LIST_CONTROL * PDRIVER_LIST_CONTROL
Definition: iotypes.h:2392
struct _DISK_SIGNATURE DISK_SIGNATURE
PCI_EXPRESS_INDICATOR_STATE
Definition: iotypes.h:5167
@ IndicatorOff
Definition: iotypes.h:5170
@ IndicatorBlink
Definition: iotypes.h:5169
@ IndicatorOn
Definition: iotypes.h:5168
struct _PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR * PPHYSICAL_COUNTER_RESOURCE_DESCRIPTOR
FAST_IO_QUERY_NETWORK_OPEN_INFO * PFAST_IO_QUERY_NETWORK_OPEN_INFO
Definition: iotypes.h:1590
FAST_IO_PREPARE_MDL_WRITE * PFAST_IO_PREPARE_MDL_WRITE
Definition: iotypes.h:1635
struct _DRIVER_OBJECT DRIVER_OBJECT
struct _FILE_NETWORK_PHYSICAL_NAME_INFORMATION FILE_NETWORK_PHYSICAL_NAME_INFORMATION
FAST_IO_MDL_READ_COMPLETE * PFAST_IO_MDL_READ_COMPLETE
Definition: iotypes.h:1622
struct _IO_RESOURCE_LIST * PIO_RESOURCE_LIST
struct _FILE_FS_LABEL_INFORMATION FILE_FS_LABEL_INFORMATION
$endif(_WDMDDK_) $if(_NTDDK_) $endif(_NTDDK_) $if(_WDMDDK_) $endif(_WDMDDK_) $if(_WDMDDK_) typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _DEVICE_OBJECT
Definition: iotypes.h:227
NTSTATUS(NTAPI * PGET_SCATTER_GATHER_LIST_EX)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDEVICE_OBJECT DeviceObject, _In_ PVOID DmaTransferContext, _In_ PMDL Mdl, _In_ ULONGLONG Offset, _In_ ULONG Length, _In_ ULONG Flags, _In_opt_ PDRIVER_LIST_CONTROL ExecutionRoutine, _In_opt_ PVOID Context, _In_ BOOLEAN WriteToDevice, _In_opt_ PDMA_COMPLETION_ROUTINE DmaCompletionRoutine, _In_opt_ PVOID CompletionContext, _Out_opt_ PSCATTER_GATHER_LIST *ScatterGatherList)
Definition: iotypes.h:2520
ULONG PNP_DEVICE_STATE
Definition: iotypes.h:997
NTSTATUS(NTAPI * PFLUSH_ADAPTER_BUFFERS_EX)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PMDL Mdl, _In_ PVOID MapRegisterBase, _In_ ULONGLONG Offset, _In_ ULONG Length, _In_ BOOLEAN WriteToDevice)
Definition: iotypes.h:2554
struct _IO_INTERRUPT_MESSAGE_INFO IO_INTERRUPT_MESSAGE_INFO
struct _FILE_FS_OBJECTID_INFORMATION * PFILE_FS_OBJECTID_INFORMATION
struct _FILE_ID_BOTH_DIR_INFORMATION * PFILE_ID_BOTH_DIR_INFORMATION
struct _CM_EISA_FUNCTION_INFORMATION * PCM_EISA_FUNCTION_INFORMATION
union _PCI_EXPRESS_SEC_AER_CAPABILITIES PCI_EXPRESS_SEC_AER_CAPABILITIES
struct _FSCTL_QUERY_FAT_BPB_BUFFER FSCTL_QUERY_FAT_BPB_BUFFER
union _PCI_EXPRESS_DEVICE_STATUS_REGISTER * PPCI_EXPRESS_DEVICE_STATUS_REGISTER
_ARBITER_ACTION
Definition: iotypes.h:4562
@ ArbiterActionQueryConflict
Definition: iotypes.h:4569
@ ArbiterActionQueryArbitrate
Definition: iotypes.h:4570
@ ArbiterActionBootAllocation
Definition: iotypes.h:4572
@ ArbiterActionWriteReservedResources
Definition: iotypes.h:4568
@ ArbiterActionAddReserved
Definition: iotypes.h:4571
@ ArbiterActionCommitAllocation
Definition: iotypes.h:4565
@ ArbiterActionRollbackAllocation
Definition: iotypes.h:4566
@ ArbiterActionRetestAllocation
Definition: iotypes.h:4564
@ ArbiterActionQueryAllocatedResources
Definition: iotypes.h:4567
@ ArbiterActionTestAllocation
Definition: iotypes.h:4563
struct _FS_FILTER_CALLBACKS * PFS_FILTER_CALLBACKS
struct _PCI_DEVICE_PRESENT_INTERFACE PCI_DEVICE_PRESENT_INTERFACE
#define __string_type
Definition: iotypes.h:1189
struct _INT_ROUTE_INTERFACE_STANDARD INT_ROUTE_INTERFACE_STANDARD
enum _DIRECTORY_NOTIFY_INFORMATION_CLASS DIRECTORY_NOTIFY_INFORMATION_CLASS
struct _ARBITER_CONFLICT_INFO * PARBITER_CONFLICT_INFO
VOID(NTAPI * PDRIVER_REINITIALIZE)(_In_ struct _DRIVER_OBJECT *DriverObject, _In_opt_ PVOID Context, _In_ ULONG Count)
Definition: iotypes.h:4471
struct _DEVOBJ_EXTENSION DEVOBJ_EXTENSION
struct _IO_SESSION_CONNECT_INFO * PIO_SESSION_CONNECT_INFO
struct _ARBITER_ADD_RESERVED_PARAMETERS * PARBITER_ADD_RESERVED_PARAMETERS
struct _PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER
struct _IO_SESSION_STATE_NOTIFICATION IO_SESSION_STATE_NOTIFICATION
NTSTATUS(NTAPI * PMAP_TRANSFER_EX)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PMDL Mdl, _In_ PVOID MapRegisterBase, _In_ ULONGLONG Offset, _In_ ULONG DeviceOffset, _Inout_ PULONG Length, _In_ BOOLEAN WriteToDevice, _Out_writes_bytes_opt_(ScatterGatherBufferLength) PSCATTER_GATHER_LIST ScatterGatherBuffer, _In_ ULONG ScatterGatherBufferLength, _In_opt_ PDMA_COMPLETION_ROUTINE DmaCompletionRoutine, _In_opt_ PVOID CompletionContext)
Definition: iotypes.h:2506
struct _PCI_MSIX_TABLE_CONFIG_INTERFACE PCI_MSIX_TABLE_CONFIG_INTERFACE
struct _PCI_AGP_CONTROL * PPCI_AGP_CONTROL
_In_ BOOLEAN CorePowerRailNeeded
Definition: iotypes.h:7587
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
struct _DRIVER_EXTENSION * PDRIVER_EXTENSION
union _PCI_EXPRESS_ROOT_ERROR_COMMAND PCI_EXPRESS_ROOT_ERROR_COMMAND
struct _EISA_PORT_DESCRIPTOR * PEISA_PORT_DESCRIPTOR
struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION DEVICE_INTERFACE_CHANGE_NOTIFICATION
struct _EISA_MEMORY_TYPE EISA_MEMORY_TYPE
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER _Outptr_ PVOID * TargetAddress
Definition: iotypes.h:1037
struct _FILE_TRACKING_INFORMATION FILE_TRACKING_INFORMATION
NTSTATUS(NTAPI * PGET_INTERRUPT_ROUTING)(IN PDEVICE_OBJECT Pdo, OUT ULONG *Bus, OUT ULONG *PciSlot, OUT UCHAR *InterruptLine, OUT UCHAR *InterruptPin, OUT UCHAR *ClassCode, OUT UCHAR *SubClassCode, OUT PDEVICE_OBJECT *ParentPdo, OUT ROUTING_TOKEN *RoutingToken, OUT UCHAR *Flags)
Definition: iotypes.h:5490
_IO_PRIORITY_HINT
Definition: iotypes.h:1230
@ MaxIoPriorityTypes
Definition: iotypes.h:1236
@ IoPriorityNormal
Definition: iotypes.h:1233
@ IoPriorityLow
Definition: iotypes.h:1232
@ IoPriorityVeryLow
Definition: iotypes.h:1231
@ IoPriorityCritical
Definition: iotypes.h:1235
@ IoPriorityHigh
Definition: iotypes.h:1234
PHYSICAL_ADDRESS(NTAPI * PMAP_TRANSFER)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PMDL Mdl, _In_ PVOID MapRegisterBase, _In_ PVOID CurrentVa, _Inout_ PULONG Length, _In_ BOOLEAN WriteToDevice)
Definition: iotypes.h:2368
struct _POWER_SEQUENCE POWER_SEQUENCE
DRIVER_UNLOAD * PDRIVER_UNLOAD
Definition: iotypes.h:2268
struct _IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS * PIO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS
NTSTATUS(NTAPI * PCANCEL_MAPPED_TRANSFER)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PVOID DmaTransferContext)
Definition: iotypes.h:2568
struct _ARBITER_TEST_ALLOCATION_PARAMETERS ARBITER_TEST_ALLOCATION_PARAMETERS
struct _FILE_ID_BOTH_DIR_INFORMATION FILE_ID_BOTH_DIR_INFORMATION
struct _ACPI_INTERFACE_STANDARD ACPI_INTERFACE_STANDARD
union _PCI_EXPRESS_SRIOV_STATUS PCI_EXPRESS_SRIOV_STATUS
struct _IO_REMOVE_LOCK_DBG_BLOCK IO_REMOVE_LOCK_DBG_BLOCK
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS SparePhysicalAddress
Definition: iotypes.h:1035
struct _REMOTE_LINK_TRACKING_INFORMATION REMOTE_LINK_TRACKING_INFORMATION
NTSTATUS(NTAPI * PALLOCATE_COMMON_BUFFER_VECTOR)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PHYSICAL_ADDRESS LowAddress, _In_ PHYSICAL_ADDRESS HighAddress, _In_ MEMORY_CACHING_TYPE CacheType, _In_ ULONG IdealNode, _In_ ULONG Flags, _In_ ULONG NumberOfElements, _In_ ULONGLONG SizeOfElements, _Out_ PDMA_COMMON_BUFFER_VECTOR *VectorOut)
Definition: iotypes.h:2617
struct _PCI_COMMON_CONFIG * PPCI_COMMON_CONFIG
NTSTATUS(NTAPI * PBUILD_MDL_FROM_SCATTER_GATHER_LIST)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PSCATTER_GATHER_LIST ScatterGather, _In_ PMDL OriginalMdl, _Out_ PMDL *TargetMdl)
Definition: iotypes.h:2434
NTSTATUS(NTAPI * PGET_DMA_TRANSFER_INFO)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PMDL Mdl, _In_ ULONGLONG Offset, _In_ ULONG Length, _In_ BOOLEAN WriteOnly, _Inout_ PDMA_TRANSFER_INFO TransferInfo)
Definition: iotypes.h:2446
struct _FILE_PIPE_EVENT_BUFFER * PFILE_PIPE_EVENT_BUFFER
struct _PCI_AGP_CAPABILITY PCI_AGP_CAPABILITY
union _PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY
IO_COMPLETION_ROUTINE * PIO_COMPLETION_ROUTINE
Definition: iotypes.h:2850
BOOLEAN(NTAPI * PFLUSH_ADAPTER_BUFFERS)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PMDL Mdl, _In_ PVOID MapRegisterBase, _In_ PVOID CurrentVa, _In_ ULONG Length, _In_ BOOLEAN WriteToDevice)
Definition: iotypes.h:2349
struct _POWER_SEQUENCE * PPOWER_SEQUENCE
_Must_inspect_result_ typedef _In_ ULONG _Out_ PULONG _Out_ PBOOLEAN Masked
Definition: iotypes.h:4336
struct _CM_EISA_SLOT_INFORMATION * PCM_EISA_SLOT_INFORMATION
PCI_EXPRESS_L1_EXIT_LATENCY
Definition: iotypes.h:5201
@ L1_16us_32us
Definition: iotypes.h:5207
@ L1_Below1us
Definition: iotypes.h:5202
@ L1_8us_16us
Definition: iotypes.h:5206
@ L1_32us_64us
Definition: iotypes.h:5208
@ L1_4us_8us
Definition: iotypes.h:5205
@ L1_Above64us
Definition: iotypes.h:5209
@ L1_2us_4us
Definition: iotypes.h:5204
@ L1_1us_2us
Definition: iotypes.h:5203
struct _PCI_AGP_APERTURE_PAGE_SIZE PCI_AGP_APERTURE_PAGE_SIZE
_IO_QUERY_DEVICE_DATA_FORMAT
Definition: iotypes.h:4463
@ IoQueryDeviceComponentInformation
Definition: iotypes.h:4466
@ IoQueryDeviceMaxData
Definition: iotypes.h:4467
@ IoQueryDeviceConfigurationData
Definition: iotypes.h:4465
@ IoQueryDeviceIdentifier
Definition: iotypes.h:4464
struct _IO_REMOVE_LOCK_TRACKING_BLOCK * PIO_REMOVE_LOCK_TRACKING_BLOCK
Definition: iotypes.h:477
FAST_IO_RELEASE_FOR_CCFLUSH * PFAST_IO_RELEASE_FOR_CCFLUSH
Definition: iotypes.h:1730
enum _ARBITER_ACTION * PARBITER_ACTION
union _PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY
struct _CM_EISA_FUNCTION_INFORMATION CM_EISA_FUNCTION_INFORMATION
struct _PATHNAME_BUFFER PATHNAME_BUFFER
VOID(NTAPI * PciLine2Pin)(_In_ struct _BUS_HANDLER *BusHandler, _In_ struct _BUS_HANDLER *RootHandler, _In_ PCI_SLOT_NUMBER SlotNumber, _In_ PPCI_COMMON_CONFIG PciNewData, _In_ PPCI_COMMON_CONFIG PciOldData)
Definition: iotypes.h:5276
struct _IO_RESOURCE_LIST IO_RESOURCE_LIST
union _PCI_EXPRESS_PME_REQUESTOR_ID * PPCI_EXPRESS_PME_REQUESTOR_ID
union _PCI_EXPRESS_SLOT_STATUS_REGISTER * PPCI_EXPRESS_SLOT_STATUS_REGISTER
_LINK_TRACKING_INFORMATION_TYPE
Definition: iotypes.h:7351
@ NtfsLinkTrackingInformation
Definition: iotypes.h:7352
@ DfsLinkTrackingInformation
Definition: iotypes.h:7353
FAST_IO_MDL_READ * PFAST_IO_MDL_READ
Definition: iotypes.h:1613
DRIVER_CANCEL * PDRIVER_CANCEL
Definition: iotypes.h:2774
struct _DMA_COMMON_BUFFER_VECTOR DMA_COMMON_BUFFER_VECTOR
Definition: iotypes.h:2614
_Must_inspect_result_ typedef _In_ ULONG TableEntry
Definition: iotypes.h:4319
union _PCI_EXPRESS_CORRECTABLE_ERROR_STATUS * PPCI_CORRECTABLE_ERROR_STATUS
enum _RESOURCE_TRANSLATION_DIRECTION RESOURCE_TRANSLATION_DIRECTION
struct _SCATTER_GATHER_ELEMENT * PSCATTER_GATHER_ELEMENT
DRIVER_ADD_DEVICE * PDRIVER_ADD_DEVICE
Definition: iotypes.h:2231
NTSTATUS(NTAPI * PCARDBUSDELETE)(IN PVOID DeviceContext)
Definition: iotypes.h:5547
_ARBITER_REQUEST_SOURCE
Definition: iotypes.h:4628
@ ArbiterRequestHalReported
Definition: iotypes.h:4631
@ ArbiterRequestLegacyAssigned
Definition: iotypes.h:4632
@ ArbiterRequestPnpDetected
Definition: iotypes.h:4633
@ ArbiterRequestUndefined
Definition: iotypes.h:4629
@ ArbiterRequestLegacyReported
Definition: iotypes.h:4630
@ ArbiterRequestPnpEnumerated
Definition: iotypes.h:4634
_PCI_HARDWARE_INTERFACE
Definition: iotypes.h:4925
@ PciXMode2
Definition: iotypes.h:4928
@ PciConventional
Definition: iotypes.h:4926
@ PciXMode1
Definition: iotypes.h:4927
@ PciExpress
Definition: iotypes.h:4929
struct _PNP_LOCATION_INTERFACE PNP_LOCATION_INTERFACE
NTSTATUS(NTAPI * PFS_FILTER_CALLBACK)(_In_ PFS_FILTER_CALLBACK_DATA Data, _Out_ PVOID *CompletionContext)
Definition: iotypes.h:7431
struct _PCI_DEVICE_PRESENCE_PARAMETERS * PPCI_DEVICE_PRESENCE_PARAMETERS
struct _PNP_LOCATION_INTERFACE * PPNP_LOCATION_INTERFACE
struct _FILE_PIPE_CLIENT_PROCESS_BUFFER_EX FILE_PIPE_CLIENT_PROCESS_BUFFER_EX
NTSTATUS(NTAPI * PALLOCATE_DOMAIN_COMMON_BUFFER)(_In_ PDMA_ADAPTER DmaAdapter, _In_ HANDLE DomainHandle, _In_opt_ PPHYSICAL_ADDRESS MaximumAddress, _In_ ULONG Length, _In_ ULONG Flags, _In_opt_ MEMORY_CACHING_TYPE *CacheType, _In_ NODE_REQUIREMENT PreferredNode, _Out_ PPHYSICAL_ADDRESS LogicalAddress, _Out_ PVOID *VirtualAddress)
Definition: iotypes.h:2573
_In_ ULONG DelayInMicroSeconds
Definition: iotypes.h:7608
struct _PCI_DEVICE_PRESENT_INTERFACE * PPCI_DEVICE_PRESENT_INTERFACE
GET_DMA_ADAPTER * PGET_DMA_ADAPTER
Definition: iotypes.h:813
union _PCI_EXPRESS_CORRECTABLE_ERROR_MASK PCI_EXPRESS_CORRECTABLE_ERROR_MASK
struct _IO_DRIVER_CREATE_CONTEXT * PIO_DRIVER_CREATE_CONTEXT
struct _FILE_PIPE_ASSIGN_EVENT_BUFFER FILE_PIPE_ASSIGN_EVENT_BUFFER
union _PCI_EXPRESS_LINK_CAPABILITIES_REGISTER * PPCI_EXPRESS_LINK_CAPABILITIES_REGISTER
_In_ PVOID _In_ ULONG _In_ PVOID _In_ ULONG PayloadLength
Definition: iotypes.h:471
_Out_ PFILE_NETWORK_OPEN_INFORMATION NetworkInformation
Definition: iotypes.h:1703
DEVICE_REGISTRY_PROPERTY
Definition: iotypes.h:1194
@ DevicePropertyCompatibleIDs
Definition: iotypes.h:1197
@ DevicePropertyAddress
Definition: iotypes.h:1211
@ DevicePropertyEnumeratorName
Definition: iotypes.h:1210
@ DevicePropertyBootConfiguration
Definition: iotypes.h:1198
@ DevicePropertyResourceRequirements
Definition: iotypes.h:1215
@ DevicePropertyDriverKeyName
Definition: iotypes.h:1202
@ DevicePropertyInstallState
Definition: iotypes.h:1213
@ DevicePropertyClassGuid
Definition: iotypes.h:1201
@ DevicePropertyUINumber
Definition: iotypes.h:1212
@ DevicePropertyBusNumber
Definition: iotypes.h:1209
@ DevicePropertyBootConfigurationTranslated
Definition: iotypes.h:1199
@ DevicePropertyRemovalPolicy
Definition: iotypes.h:1214
@ DevicePropertyPhysicalDeviceObjectName
Definition: iotypes.h:1206
@ DevicePropertyLegacyBusType
Definition: iotypes.h:1208
@ DevicePropertyAllocatedResources
Definition: iotypes.h:1216
@ DevicePropertyManufacturer
Definition: iotypes.h:1203
@ DevicePropertyClassName
Definition: iotypes.h:1200
@ DevicePropertyFriendlyName
Definition: iotypes.h:1204
@ DevicePropertyContainerID
Definition: iotypes.h:1217
@ DevicePropertyLocationInformation
Definition: iotypes.h:1205
@ DevicePropertyHardwareID
Definition: iotypes.h:1196
@ DevicePropertyBusTypeGuid
Definition: iotypes.h:1207
@ DevicePropertyDeviceDescription
Definition: iotypes.h:1195
struct _PCI_EXPRESS_ROOT_PORT_INTERFACE * PPCI_EXPRESS_ROOT_PORT_INTERFACE
union _PCI_EXPRESS_SLOT_CONTROL_REGISTER PCI_EXPRESS_SLOT_CONTROL_REGISTER
struct _DMA_ADAPTER_INFO_V1 DMA_ADAPTER_INFO_V1
struct _FILE_IOSTATUSBLOCK_RANGE_INFORMATION FILE_IOSTATUSBLOCK_RANGE_INFORMATION
NTSTATUS(NTAPI * PALLOCATE_ADAPTER_CHANNEL_EX)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDEVICE_OBJECT DeviceObject, _In_ PVOID DmaTransferContext, _In_ ULONG NumberOfMapRegisters, _In_ ULONG Flags, _In_opt_ PDRIVER_CONTROL ExecutionRoutine, _In_opt_ PVOID ExecutionContext, _Out_opt_ PVOID *MapRegisterBase)
Definition: iotypes.h:2469
enum _DIRECTORY_NOTIFY_INFORMATION_CLASS * PDIRECTORY_NOTIFY_INFORMATION_CLASS
struct _AGP_TARGET_BUS_INTERFACE_STANDARD * PAGP_TARGET_BUS_INTERFACE_STANDARD
struct _BUS_INTERFACE_STANDARD BUS_INTERFACE_STANDARD
struct _IO_DISCONNECT_INTERRUPT_PARAMETERS IO_DISCONNECT_INTERRUPT_PARAMETERS
struct _PCI_COMMON_CONFIG PCI_COMMON_CONFIG
union _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS
struct _DMA_CONFIGURATION_BYTE1 DMA_CONFIGURATION_BYTE1
VOID(NTAPI * PIO_DEVICE_EJECT_CALLBACK)(_In_ NTSTATUS Status, _Inout_opt_ PVOID Context)
Definition: iotypes.h:859
struct _DMA_TRANSFER_INFO_V1 * PDMA_TRANSFER_INFO_V1
struct _FILE_IOSTATUSBLOCK_RANGE_INFORMATION * PFILE_IOSTATUSBLOCK_RANGE_INFORMATION
struct _DMA_ADAPTER * PDMA_ADAPTER
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_ PVOID _Out_ PMDL _Out_ PIO_STATUS_BLOCK _Out_ struct _COMPRESSED_DATA_INFO * CompressedDataInfo
Definition: iotypes.h:1658
enum _DEVICE_RELATION_TYPE * PDEVICE_RELATION_TYPE
union _PCI_EXPRESS_AER_CAPABILITIES PCI_EXPRESS_AER_CAPABILITIES
struct _FILE_FS_OBJECTID_INFORMATION FILE_FS_OBJECTID_INFORMATION
struct _REPARSE_GUID_DATA_BUFFER * PREPARSE_GUID_DATA_BUFFER
enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE FS_FILTER_STREAM_FO_NOTIFICATION_TYPE
struct _PCI_PM_CAPABILITY PCI_PM_CAPABILITY
FAST_IO_UNLOCK_SINGLE * PFAST_IO_UNLOCK_SINGLE
Definition: iotypes.h:1521
struct _FILE_LINKS_INFORMATION * PFILE_LINKS_INFORMATION
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_ PVOID _Out_ PMDL _Out_ PIO_STATUS_BLOCK _Out_ struct _COMPRESSED_DATA_INFO _In_ ULONG CompressedDataInfoLength
Definition: iotypes.h:1659
DRIVER_DISPATCH * PDRIVER_DISPATCH
Definition: iotypes.h:2277
struct _EISA_DMA_CONFIGURATION EISA_DMA_CONFIGURATION
_In_ struct _IRP _In_ struct _SCATTER_GATHER_LIST * ScatterGather
Definition: iotypes.h:2390
struct _DEVICE_RELATIONS * PDEVICE_RELATIONS
IO_DPC_ROUTINE * PIO_DPC_ROUTINE
Definition: iotypes.h:2862
union _PCI_EXPRESS_CAPABILITIES_REGISTER PCI_EXPRESS_CAPABILITIES_REGISTER
struct _FILE_STANDARD_LINK_INFORMATION FILE_STANDARD_LINK_INFORMATION
struct _IO_SECURITY_CONTEXT * PIO_SECURITY_CONTEXT
struct _DISK_SIGNATURE * PDISK_SIGNATURE
PVOID(NTAPI * PALLOCATE_COMMON_BUFFER_EX)(_In_ PDMA_ADAPTER DmaAdapter, _In_opt_ PPHYSICAL_ADDRESS MaximumAddress, _In_ ULONG Length, _Out_ PPHYSICAL_ADDRESS LogicalAddress, _In_ BOOLEAN CacheEnabled, _In_ NODE_REQUIREMENT PreferredNode)
Definition: iotypes.h:2460
union _PCI_EXPRESS_SLOT_CONTROL_REGISTER * PPCI_EXPRESS_SLOT_CONTROL_REGISTER
struct _FILE_MOVE_CLUSTER_INFORMATION FILE_MOVE_CLUSTER_INFORMATION
struct _ARBITER_TEST_ALLOCATION_PARAMETERS * PARBITER_TEST_ALLOCATION_PARAMETERS
enum _IO_SESSION_STATE IO_SESSION_STATE
struct _PCI_MSIX_TABLE_CONFIG_INTERFACE * PPCI_MSIX_TABLE_CONFIG_INTERFACE
_DEVICE_INSTALL_STATE
Definition: iotypes.h:826
@ InstallStateFailedInstall
Definition: iotypes.h:829
@ InstallStateInstalled
Definition: iotypes.h:827
@ InstallStateFinishInstall
Definition: iotypes.h:830
@ InstallStateNeedsReinstall
Definition: iotypes.h:828
struct _IO_REMOVE_LOCK IO_REMOVE_LOCK
VOID(NTAPI * PciReadWriteConfig)(_In_ struct _BUS_HANDLER *BusHandler, _In_ PCI_SLOT_NUMBER Slot, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
Definition: iotypes.h:5284
DMA_COMPLETION_STATUS
Definition: iotypes.h:2314
@ DmaError
Definition: iotypes.h:2317
@ DmaComplete
Definition: iotypes.h:2315
@ DmaCancelled
Definition: iotypes.h:2318
@ DmaAborted
Definition: iotypes.h:2316
struct _EISA_PORT_DESCRIPTOR EISA_PORT_DESCRIPTOR
struct _PCI_SUBSYSTEM_IDS_CAPABILITY * PPCI_SUBSYSTEM_IDS_CAPABILITY
struct _IO_SESSION_STATE_NOTIFICATION * PIO_SESSION_STATE_NOTIFICATION
struct _PCI_ROOT_BUS_HARDWARE_CAPABILITY * PPCI_ROOT_BUS_HARDWARE_CAPABILITY
DRIVER_CONTROL * PDRIVER_CONTROL
Definition: iotypes.h:215
struct _PNP_REPLACE_PROCESSOR_LIST_V1 * PPNP_REPLACE_PROCESSOR_LIST_V1
struct _BUS_INTERFACE_STANDARD * PBUS_INTERFACE_STANDARD
struct _PHYSICAL_COUNTER_RESOURCE_LIST PHYSICAL_COUNTER_RESOURCE_LIST
struct _REENUMERATE_SELF_INTERFACE_STANDARD * PREENUMERATE_SELF_INTERFACE_STANDARD
struct _FILE_GET_QUOTA_INFORMATION * PFILE_GET_QUOTA_INFORMATION
PCI_EXPRESS_ASPM_CONTROL
Definition: iotypes.h:5183
@ L0sEntryEnabled
Definition: iotypes.h:5185
@ L0sAndL1EntryEnabled
Definition: iotypes.h:5187
@ L0sAndL1EntryDisabled
Definition: iotypes.h:5184
@ L1EntryEnabled
Definition: iotypes.h:5186
union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS * PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS
union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY
struct _ARBITER_QUERY_CONFLICT_PARAMETERS * PARBITER_QUERY_CONFLICT_PARAMETERS
struct _CM_EISA_SLOT_INFORMATION CM_EISA_SLOT_INFORMATION
struct _ARBITER_CONFLICT_INFO ARBITER_CONFLICT_INFO
IO_WORKITEM_ROUTINE_EX * PIO_WORKITEM_ROUTINE_EX
Definition: iotypes.h:522
enum _IO_SESSION_EVENT IO_SESSION_EVENT
PCI_EXPRESS_POWER_STATE
Definition: iotypes.h:5173
@ PowerOff
Definition: iotypes.h:5175
@ PowerOn
Definition: iotypes.h:5174
union _PCI_EXPRESS_SLOT_STATUS_REGISTER PCI_EXPRESS_SLOT_STATUS_REGISTER
struct _ARBITER_BOOT_ALLOCATION_PARAMETERS ARBITER_BOOT_ALLOCATION_PARAMETERS
struct _LOADER_PARTITION_INFORMATION_EX LOADER_PARTITION_INFORMATION_EX
struct _D3COLD_AUX_POWER_AND_TIMING_INTERFACE * PD3COLD_AUX_POWER_AND_TIMING_INTERFACE
struct _FS_FILTER_CALLBACKS FS_FILTER_CALLBACKS
struct _VPB VPB
union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK * PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Out_ PPHYSICAL_ADDRESS DestinationAddress
Definition: iotypes.h:1128
struct _IO_INTERRUPT_MESSAGE_INFO_ENTRY IO_INTERRUPT_MESSAGE_INFO_ENTRY
struct _PCI_EXPRESS_CAPABILITY PCI_EXPRESS_CAPABILITY
struct _PCI_COMMON_HEADER * PPCI_COMMON_HEADER
SET_D3COLD_SUPPORT * PSET_D3COLD_SUPPORT
Definition: iotypes.h:7491
struct _IO_ERROR_LOG_MESSAGE IO_ERROR_LOG_MESSAGE
struct _PCI_EXPRESS_LINK_QUIESCENT_INTERFACE * PPCI_EXPRESS_LINK_QUIESCENT_INTERFACE
struct _FILE_SFIO_RESERVE_INFORMATION * PFILE_SFIO_RESERVE_INFORMATION
_IO_NOTIFICATION_EVENT_CATEGORY
Definition: iotypes.h:1223
@ EventCategoryTargetDeviceChange
Definition: iotypes.h:1227
@ EventCategoryDeviceInterfaceChange
Definition: iotypes.h:1226
@ EventCategoryHardwareProfileChange
Definition: iotypes.h:1225
@ EventCategoryReserved
Definition: iotypes.h:1224
struct _HWPROFILE_CHANGE_NOTIFICATION HWPROFILE_CHANGE_NOTIFICATION
_In_ PDEVICE_OBJECT DeviceObject
Definition: iotypes.h:2499
enum _DMA_SPEED DMA_SPEED
struct _PCI_SLOT_NUMBER PCI_SLOT_NUMBER
union _PCI_EXPRESS_ROOT_STATUS_REGISTER * PPCI_EXPRESS_ROOT_STATUS_REGISTER
struct _PCIBUSDATA PCIBUSDATA
* PFILE_OBJECT
Definition: iotypes.h:1998
FAST_IO_QUERY_OPEN * PFAST_IO_QUERY_OPEN
Definition: iotypes.h:1705
struct _IO_WORKITEM * PIO_WORKITEM
Definition: iotypes.h:506
struct _REENUMERATE_SELF_INTERFACE_STANDARD REENUMERATE_SELF_INTERFACE_STANDARD
struct _IO_ERROR_LOG_PACKET * PIO_ERROR_LOG_PACKET
struct _PCI_EXPRESS_AER_CAPABILITY PCI_EXPRESS_AER_CAPABILITY
struct _EISA_PORT_CONFIGURATION EISA_PORT_CONFIGURATION
VOID(NTAPI * PFREE_ADAPTER_OBJECT)(_In_ PDMA_ADAPTER DmaAdapter, _In_ IO_ALLOCATION_ACTION AllocationAction)
Definition: iotypes.h:2563
struct _ARBITER_ADD_RESERVED_PARAMETERS ARBITER_ADD_RESERVED_PARAMETERS
struct _PCI_EXPRESS_AER_CAPABILITY * PPCI_EXPRESS_AER_CAPABILITY
struct _FILE_COMPRESSION_INFORMATION * PFILE_COMPRESSION_INFORMATION
struct _IO_SECURITY_CONTEXT IO_SECURITY_CONTEXT
HANDLE(NTAPI * PGET_DMA_DOMAIN)(_In_ PDMA_ADAPTER DmaAdapter)
Definition: iotypes.h:2600
ULONG KINTERRUPT_MODE BOOLEAN Shareable
Definition: iotypes.h:3054
enum _ARBITER_RESULT ARBITER_RESULT
ULONG(NTAPI * PPCI_EXPRESS_ROOT_PORT_READ_CONFIG_SPACE)(_In_ PVOID Context, _Out_writes_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
Definition: iotypes.h:4290
FAST_IO_ACQUIRE_FILE * PFAST_IO_ACQUIRE_FILE
Definition: iotypes.h:1564
struct _FAST_IO_DISPATCH FAST_IO_DISPATCH
PCI_EXPRESS_MAX_PAYLOAD_SIZE
Definition: iotypes.h:5224
@ MaxPayload128Bytes
Definition: iotypes.h:5225
@ MaxPayload2048Bytes
Definition: iotypes.h:5229
@ MaxPayload256Bytes
Definition: iotypes.h:5226
@ MaxPayload1024Bytes
Definition: iotypes.h:5228
@ MaxPayload512Bytes
Definition: iotypes.h:5227
@ MaxPayload4096Bytes
Definition: iotypes.h:5230
struct _PCI_EXPRESS_ROOTPORT_AER_CAPABILITY * PPCI_EXPRESS_ROOTPORT_AER_CAPABILITY
struct _FILE_VALID_DATA_LENGTH_INFORMATION * PFILE_VALID_DATA_LENGTH_INFORMATION
struct _BOOTDISK_INFORMATION BOOTDISK_INFORMATION
struct _FS_FILTER_CALLBACK_DATA * PFS_FILTER_CALLBACK_DATA
PVOID(NTAPI * PALLOCATE_COMMON_BUFFER)(_In_ PDMA_ADAPTER DmaAdapter, _In_ ULONG Length, _Out_ PPHYSICAL_ADDRESS LogicalAddress, _In_ BOOLEAN CacheEnabled)
Definition: iotypes.h:2326
struct _FILE_SFIO_RESERVE_INFORMATION FILE_SFIO_RESERVE_INFORMATION
struct _IO_COMPLETION_CONTEXT * PIO_COMPLETION_CONTEXT
struct _EISA_PORT_CONFIGURATION * PEISA_PORT_CONFIGURATION
FAST_IO_DETACH_DEVICE * PFAST_IO_DETACH_DEVICE
Definition: iotypes.h:1579
NTSTATUS(NTAPI * PLEGACY_DEVICE_DETECTION_HANDLER)(IN PVOID Context, IN INTERFACE_TYPE LegacyBusType, IN ULONG BusNumber, IN ULONG SlotNumber, OUT PDEVICE_OBJECT *PhysicalDeviceObject)
Definition: iotypes.h:5476
struct _EISA_IRQ_CONFIGURATION EISA_IRQ_CONFIGURATION
struct _DMA_TRANSFER_INFO_V1 DMA_TRANSFER_INFO_V1
struct _PNP_REPLACE_PROCESSOR_LIST PNP_REPLACE_PROCESSOR_LIST
struct _FILE_IO_PRIORITY_HINT_INFORMATION FILE_IO_PRIORITY_HINT_INFORMATION
struct _EISA_IRQ_DESCRIPTOR EISA_IRQ_DESCRIPTOR
NTSTATUS(NTAPI * PLEAVE_DMA_DOMAIN)(_In_ PDMA_ADAPTER DmaAdapter)
Definition: iotypes.h:2596
NTSTATUS(NTAPI * PGET_DMA_ADAPTER_INFO)(_In_ PDMA_ADAPTER DmaAdapter, _Inout_ PDMA_ADAPTER_INFO AdapterInfo)
Definition: iotypes.h:2441
struct _REMOTE_LINK_TRACKING_INFORMATION * PREMOTE_LINK_TRACKING_INFORMATION
_In_ SYSTEM_POWER_STATE _Out_ PDEVICE_WAKE_DEPTH DeepestWakeableDstate
Definition: iotypes.h:7536
_EXTENDED_AGP_REGISTER
Definition: iotypes.h:4750
@ AperturePageSize
Definition: iotypes.h:4754
@ ApertureSize
Definition: iotypes.h:4753
@ AgpControl
Definition: iotypes.h:4752
@ GartHigh
Definition: iotypes.h:4756
@ IsochStatus
Definition: iotypes.h:4751
@ GartLow
Definition: iotypes.h:4755
@ IsochCommand
Definition: iotypes.h:4757
union _PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK * PPCI_EXPRESS_UNCORRECTABLE_ERROR_MASK
struct _DRIVER_EXTENSION DRIVER_EXTENSION
union _FILE_SEGMENT_ELEMENT FILE_SEGMENT_ELEMENT
PCI_MSIX_GET_TABLE_SIZE * PPCI_MSIX_GET_TABLE_SIZE
Definition: iotypes.h:4344
enum _IO_CONTAINER_NOTIFICATION_CLASS IO_CONTAINER_NOTIFICATION_CLASS
* PDEVICE_CAPABILITIES
Definition: iotypes.h:965
_DIRECTORY_NOTIFY_INFORMATION_CLASS
Definition: iotypes.h:1319
@ DirectoryNotifyInformation
Definition: iotypes.h:1320
@ DirectoryNotifyExtendedInformation
Definition: iotypes.h:1321
struct _PCI_SUBSYSTEM_IDS_CAPABILITY PCI_SUBSYSTEM_IDS_CAPABILITY
DRIVER_FS_NOTIFICATION * PDRIVER_FS_NOTIFICATION
Definition: iotypes.h:7377
FAST_IO_WRITE * PFAST_IO_WRITE
Definition: iotypes.h:1471
BOOLEAN(NTAPI * PGPE_SERVICE_ROUTINE)(PVOID, PVOID)
Definition: iotypes.h:2965
PCI_BUS_WIDTH
Definition: iotypes.h:4932
@ BusWidth32Bits
Definition: iotypes.h:4933
@ BusWidth64Bits
Definition: iotypes.h:4934
PCI_EXPRESS_ASPM_SUPPORT
Definition: iotypes.h:5178
@ L0sEntrySupport
Definition: iotypes.h:5179
@ L0sAndL1EntrySupport
Definition: iotypes.h:5180
enum _PCI_HARDWARE_INTERFACE * PPCI_HARDWARE_INTERFACE
struct _DEVICE_RELATIONS DEVICE_RELATIONS
union _PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY * PPCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY
struct _FILE_LINK_ENTRY_INFORMATION * PFILE_LINK_ENTRY_INFORMATION
struct _IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS * PIO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS
struct _PCI_DEVICE_PRESENCE_PARAMETERS PCI_DEVICE_PRESENCE_PARAMETERS
struct _PCI_AGP_CONTROL PCI_AGP_CONTROL
struct _FILE_PROCESS_IDS_USING_FILE_INFORMATION * PFILE_PROCESS_IDS_USING_FILE_INFORMATION
VOID(NTAPI * PCI_ROOT_BUS_CAPABILITY)(_In_ PVOID Context, _Out_ PPCI_ROOT_BUS_HARDWARE_CAPABILITY HardwareCapability)
Definition: iotypes.h:5329
struct _ARBITER_LIST_ENTRY ARBITER_LIST_ENTRY
VOID(NTAPI * PGET_COMMON_BUFFER_FROM_VECTOR_BY_INDEX)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDMA_COMMON_BUFFER_VECTOR Vector, _In_ ULONG Index, _Out_ PVOID *VirtualAddressOut, _Out_ PPHYSICAL_ADDRESS LogicalAddressOut)
Definition: iotypes.h:2629
struct _BOOTDISK_INFORMATION * PBOOTDISK_INFORMATION
struct _PNP_REPLACE_DRIVER_INTERFACE PNP_REPLACE_DRIVER_INTERFACE
struct _TRANSLATOR_INTERFACE TRANSLATOR_INTERFACE
enum _IO_PRIORITY_HINT IO_PRIORITY_HINT
_In_ USHORT _In_ UCHAR _In_ USHORT _In_ USHORT SubSystemID
Definition: iotypes.h:895
GET_D3COLD_CAPABILITY * PGET_D3COLD_CAPABILITY
Definition: iotypes.h:7548
union _PCI_EXPRESS_LINK_CAPABILITIES_REGISTER PCI_EXPRESS_LINK_CAPABILITIES_REGISTER
_CREATE_FILE_TYPE
Definition: iotypes.h:534
@ CreateFileTypeNone
Definition: iotypes.h:535
@ CreateFileTypeNamedPipe
Definition: iotypes.h:536
@ CreateFileTypeMailslot
Definition: iotypes.h:537
struct _SCATTER_GATHER_ELEMENT SCATTER_GATHER_ELEMENT
struct _DMA_COMMON_BUFFER_VECTOR * PDMA_COMMON_BUFFER_VECTOR
Definition: iotypes.h:2614
struct _CONFIGURATION_INFORMATION * PCONFIGURATION_INFORMATION
struct _AGP_TARGET_BUS_INTERFACE_STANDARD AGP_TARGET_BUS_INTERFACE_STANDARD
struct _IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS * PIO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS
IO_TIMER_ROUTINE * PIO_TIMER_ROUTINE
Definition: iotypes.h:2878
struct _PCI_ROOT_BUS_HARDWARE_CAPABILITY PCI_ROOT_BUS_HARDWARE_CAPABILITY
enum _IO_QUERY_DEVICE_DATA_FORMAT * PIO_QUERY_DEVICE_DATA_FORMAT
struct _IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS
struct _IO_PRIORITY_INFO * PIO_PRIORITY_INFO
struct _PCI_EXPRESS_BRIDGE_AER_CAPABILITY PCI_EXPRESS_BRIDGE_AER_CAPABILITY
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS SourceAddress
Definition: iotypes.h:1127
VOID(NTAPI * PCI_EXPRESS_WAKE_CONTROL)(_In_ PVOID Context, _In_ BOOLEAN EnableWake)
Definition: iotypes.h:5334
VOID(NTAPI * PREENUMERATE_SELF)(_In_ PVOID Context)
Definition: iotypes.h:846
struct _DEVICE_DESCRIPTION * PDEVICE_DESCRIPTION
struct _PCI_CAPABILITIES_HEADER * PPCI_CAPABILITIES_HEADER
struct _FILE_LINKS_INFORMATION FILE_LINKS_INFORMATION
struct _DMA_TRANSFER_INFO DMA_TRANSFER_INFO
struct _REPARSE_INDEX_KEY REPARSE_INDEX_KEY
FAST_IO_RELEASE_FOR_MOD_WRITE * PFAST_IO_RELEASE_FOR_MOD_WRITE
Definition: iotypes.h:1714
VOID(NTAPI * PPME_GET_INFORMATION)(IN PDEVICE_OBJECT Pdo, OUT PBOOLEAN PmeCapable, OUT PBOOLEAN PmeStatus, OUT PBOOLEAN PmeEnable)
Definition: iotypes.h:5565
struct _PATHNAME_BUFFER * PPATHNAME_BUFFER
struct _FILE_FS_LABEL_INFORMATION * PFILE_FS_LABEL_INFORMATION
struct _FILE_IS_REMOTE_DEVICE_INFORMATION FILE_IS_REMOTE_DEVICE_INFORMATION
struct _TARGET_DEVICE_CUSTOM_NOTIFICATION TARGET_DEVICE_CUSTOM_NOTIFICATION
union _PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER * PPCI_EXPRESS_ROOT_CAPABILITIES_REGISTER
struct _FILE_SFIO_VOLUME_INFORMATION FILE_SFIO_VOLUME_INFORMATION
struct _PCI_COMMON_HEADER PCI_COMMON_HEADER
struct _D3COLD_SUPPORT_INTERFACE D3COLD_SUPPORT_INTERFACE
_IO_CONTAINER_NOTIFICATION_CLASS
Definition: iotypes.h:434
@ IoMaxContainerNotificationClass
Definition: iotypes.h:436
@ IoSessionStateNotification
Definition: iotypes.h:435
struct _DMA_TRANSFER_INFO_V2 DMA_TRANSFER_INFO_V2
PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE * PPCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE
Definition: iotypes.h:4268
_IO_COMPLETION_ROUTINE_RESULT
Definition: iotypes.h:331
@ StopCompletion
Definition: iotypes.h:333
@ ContinueCompletion
Definition: iotypes.h:332
_D3COLD_LAST_TRANSITION_STATUS
Definition: iotypes.h:7551
@ LastDStateTransitionStatusUnknown
Definition: iotypes.h:7552
@ LastDStateTransitionD3hot
Definition: iotypes.h:7553
@ LastDStateTransitionD3cold
Definition: iotypes.h:7554
enum _IO_SESSION_STATE * PIO_SESSION_STATE
struct _IO_DISCONNECT_INTERRUPT_PARAMETERS * PIO_DISCONNECT_INTERRUPT_PARAMETERS
struct _EISA_IRQ_CONFIGURATION * PEISA_IRQ_CONFIGURATION
struct _DMA_ADAPTER_INFO DMA_ADAPTER_INFO
_DEVICE_WAKE_DEPTH
Definition: iotypes.h:7494
@ DeviceWakeDepthD3cold
Definition: iotypes.h:7500
@ DeviceWakeDepthD1
Definition: iotypes.h:7497
@ DeviceWakeDepthD3hot
Definition: iotypes.h:7499
@ DeviceWakeDepthMaximum
Definition: iotypes.h:7501
@ DeviceWakeDepthD2
Definition: iotypes.h:7498
@ DeviceWakeDepthD0
Definition: iotypes.h:7496
@ DeviceWakeDepthNotWakeable
Definition: iotypes.h:7495
FAST_IO_RELEASE_FILE * PFAST_IO_RELEASE_FILE
Definition: iotypes.h:1571
struct _LINK_TRACKING_INFORMATION LINK_TRACKING_INFORMATION
struct _ARBITER_INTERFACE * PARBITER_INTERFACE
union _PCI_EXPRESS_ERROR_SOURCE_ID * PPCI_EXPRESS_ERROR_SOURCE_ID
_DEVICE_TEXT_TYPE
Definition: iotypes.h:2959
@ DeviceTextLocationInformation
Definition: iotypes.h:2961
@ DeviceTextDescription
Definition: iotypes.h:2960
FAST_IO_QUERY_STANDARD_INFO * PFAST_IO_QUERY_STANDARD_INFO
Definition: iotypes.h:1493
GET_D3COLD_LAST_TRANSITION_STATUS * PGET_D3COLD_LAST_TRANSITION_STATUS
Definition: iotypes.h:7565
D3COLD_REQUEST_CORE_POWER_RAIL * PD3COLD_REQUEST_CORE_POWER_RAIL
Definition: iotypes.h:7589
enum _DEVICE_TEXT_TYPE DEVICE_TEXT_TYPE
NTSTATUS(NTAPI * PARBITER_HANDLER)(_Inout_opt_ PVOID Context, _In_ ARBITER_ACTION Action, _Inout_ PARBITER_PARAMETERS Parameters)
Definition: iotypes.h:4663
union _PCI_EXPRESS_DEVICE_CONTROL_REGISTER * PPCI_EXPRESS_DEVICE_CONTROL_REGISTER
struct _FILE_FS_DRIVER_PATH_INFORMATION FILE_FS_DRIVER_PATH_INFORMATION
enum _DEVICE_INSTALL_STATE * PDEVICE_INSTALL_STATE
struct _FILE_FS_CONTROL_INFORMATION FILE_FS_CONTROL_INFORMATION
enum _CREATE_FILE_TYPE CREATE_FILE_TYPE
enum _FSINFOCLASS FS_INFORMATION_CLASS
struct _IO_SESSION_STATE_INFORMATION * PIO_SESSION_STATE_INFORMATION
_In_ USHORT _In_ UCHAR RevisionID
Definition: iotypes.h:893
struct _SHARE_ACCESS SHARE_ACCESS
BOOLEAN(NTAPI * PGPE_SERVICE_ROUTINE2)(PVOID ObjectContext, PVOID ServiceContext)
Definition: iotypes.h:3043
_Out_ PD3COLD_LAST_TRANSITION_STATUS LastTransitionStatus
Definition: iotypes.h:7563
struct _PCIX_BRIDGE_CAPABILITY * PPCIX_BRIDGE_CAPABILITY
union _PCI_EXPRESS_CORRECTABLE_ERROR_STATUS PCI_EXPRESS_CORRECTABLE_ERROR_STATUS
struct _BOOTDISK_INFORMATION_LITE BOOTDISK_INFORMATION_LITE
union _PCI_EXPRESS_ROOT_CONTROL_REGISTER * PPCI_EXPRESS_ROOT_CONTROL_REGISTER
struct _D3COLD_AUX_POWER_AND_TIMING_INTERFACE D3COLD_AUX_POWER_AND_TIMING_INTERFACE
struct PCI_X_CAPABILITY * PPCI_X_CAPABILITY
FAST_IO_ACQUIRE_FOR_CCFLUSH * PFAST_IO_ACQUIRE_FOR_CCFLUSH
Definition: iotypes.h:1722
struct _PCI_AGP_ISOCH_COMMAND PCI_AGP_ISOCH_COMMAND
TRANSLATE_BUS_ADDRESS * PTRANSLATE_BUS_ADDRESS
Definition: iotypes.h:804
NTSTATUS(NTAPI * PGET_SCATTER_GATHER_LIST)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDEVICE_OBJECT DeviceObject, _In_ PMDL Mdl, _In_ PVOID CurrentVa, _In_ ULONG Length, _In_ PDRIVER_LIST_CONTROL ExecutionRoutine, _In_ PVOID Context, _In_ BOOLEAN WriteToDevice)
Definition: iotypes.h:2395
PCI_EXPRESS_CARD_PRESENCE
Definition: iotypes.h:5162
@ CardPresent
Definition: iotypes.h:5164
@ SlotEmpty
Definition: iotypes.h:5163
enum _DMA_WIDTH DMA_WIDTH
struct _PNP_REPLACE_PARAMETERS * PPNP_REPLACE_PARAMETERS
#define MAXIMUM_VOLUME_LABEL_LENGTH
Definition: iotypes.h:177
_In_ PLARGE_INTEGER EndingOffset
Definition: iotypes.h:1597
struct _DMA_ADAPTER_INFO_V1 * PDMA_ADAPTER_INFO_V1
struct _IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS * PIO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS
struct _TXN_PARAMETER_BLOCK TXN_PARAMETER_BLOCK
struct _CONTROLLER_OBJECT * PCONTROLLER_OBJECT
struct _FILE_FS_VOLUME_FLAGS_INFORMATION * PFILE_FS_VOLUME_FLAGS_INFORMATION
struct _IO_SESSION_CONNECT_INFO IO_SESSION_CONNECT_INFO
DRIVER_NOTIFICATION_CALLBACK_ROUTINE * PDRIVER_NOTIFICATION_CALLBACK_ROUTINE
Definition: iotypes.h:1247
struct _PCI_PMCSR_BSE PCI_PMCSR_BSE
union _PCI_EXPRESS_SRIOV_CAPS * PPCI_EXPRESS_SRIOV_CAPS
union _PCI_EXPRESS_CORRECTABLE_ERROR_MASK * PPCI_CORRECTABLE_ERROR_MASK
enum _ARBITER_ACTION ARBITER_ACTION
VOID(NTAPI * PCI_PIN_TO_LINE)(_In_ PVOID Context, _In_ PPCI_COMMON_CONFIG PciData)
Definition: iotypes.h:5318
ULONG(NTAPI * PPCI_EXPRESS_ROOT_PORT_WRITE_CONFIG_SPACE)(_In_ PVOID Context, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
Definition: iotypes.h:4297
union _PCI_EXPRESS_ROOT_ERROR_STATUS * PPCI_EXPRESS_ROOT_ERROR_STATUS
struct _LEGACY_BUS_INFORMATION LEGACY_BUS_INFORMATION
enum _IO_ALLOCATION_ACTION * PIO_ALLOCATION_ACTION
NTSTATUS(NTAPI * PCALCULATE_SCATTER_GATHER_LIST_SIZE)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PMDL Mdl OPTIONAL, _In_ PVOID CurrentVa, _In_ ULONG Length, _Out_ PULONG ScatterGatherListSize, _Out_ OPTIONAL PULONG pNumberOfMapRegisters)
Definition: iotypes.h:2412
struct _FILE_ID_FULL_DIR_INFORMATION * PFILE_ID_FULL_DIR_INFORMATION
union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS
struct _ROUTING_TOKEN * PROUTING_TOKEN
union _PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER
struct _PNP_REPLACE_MEMORY_LIST * PPNP_REPLACE_MEMORY_LIST
struct _ACPI_INTERFACE_STANDARD * PACPI_INTERFACE_STANDARD
struct _PCI_PM_CAPABILITY * PPCI_PM_CAPABILITY
ULONG * PPNP_DEVICE_STATE
Definition: iotypes.h:997
enum _PCI_HARDWARE_INTERFACE PCI_HARDWARE_INTERFACE
_In_ BOOLEAN D3ColdSupport
Definition: iotypes.h:7489
_In_ SYSTEM_POWER_STATE SystemPowerState
Definition: iotypes.h:7535
union _PCI_EXPRESS_SRIOV_STATUS * PPCI_EXPRESS_SRIOV_STATUS
_IO_SESSION_EVENT
Definition: iotypes.h:569
@ IoSessionEventMax
Definition: iotypes.h:577
@ IoSessionEventIgnore
Definition: iotypes.h:570
@ IoSessionEventDisconnected
Definition: iotypes.h:574
@ IoSessionEventCreated
Definition: iotypes.h:571
@ IoSessionEventTerminated
Definition: iotypes.h:572
@ IoSessionEventConnected
Definition: iotypes.h:573
@ IoSessionEventLogoff
Definition: iotypes.h:576
@ IoSessionEventLogon
Definition: iotypes.h:575
VOID(NTAPI * PPUT_SCATTER_GATHER_LIST)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PSCATTER_GATHER_LIST ScatterGather, _In_ BOOLEAN WriteToDevice)
Definition: iotypes.h:2406
PVOID(NTAPI * PALLOCATE_COMMON_BUFFER_WITH_BOUNDS)(_In_ PDMA_ADAPTER DmaAdapter, _In_opt_ PPHYSICAL_ADDRESS MinimumAddress, _In_opt_ PPHYSICAL_ADDRESS MaximumAddress, _In_ ULONG Length, _In_ ULONG Flags, _In_opt_ MEMORY_CACHING_TYPE *CacheType, _In_ NODE_REQUIREMENT PreferredNode, _Out_ PPHYSICAL_ADDRESS LogicalAddress)
Definition: iotypes.h:2604
struct _FILE_REMOTE_PROTOCOL_INFORMATION FILE_REMOTE_PROTOCOL_INFORMATION
_In_ ULONG _Out_ PULONG RetryInSeconds
Definition: iotypes.h:7598
_BUS_QUERY_ID_TYPE
Definition: iotypes.h:2950
@ BusQueryCompatibleIDs
Definition: iotypes.h:2953
@ BusQueryContainerID
Definition: iotypes.h:2956
@ BusQueryDeviceSerialNumber
Definition: iotypes.h:2955
@ BusQueryInstanceID
Definition: iotypes.h:2954
@ BusQueryDeviceID
Definition: iotypes.h:2951
@ BusQueryHardwareIDs
Definition: iotypes.h:2952
VOID(NTAPI * PREPLACE_UNLOAD)(VOID)
Definition: iotypes.h:1080
FAST_IO_MDL_READ_COMPLETE_COMPRESSED * PFAST_IO_MDL_READ_COMPLETE_COMPRESSED
Definition: iotypes.h:1686
struct _FILE_PROCESS_IDS_USING_FILE_INFORMATION FILE_PROCESS_IDS_USING_FILE_INFORMATION
struct _PCI_AGP_ISOCH_STATUS PCI_AGP_ISOCH_STATUS
struct _ARBITER_QUERY_CONFLICT_PARAMETERS ARBITER_QUERY_CONFLICT_PARAMETERS
PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE * PPCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE
Definition: iotypes.h:4275
enum _PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE
struct _CONTROLLER_OBJECT CONTROLLER_OBJECT
struct _PCI_AGP_ISOCH_COMMAND * PPCI_AGP_ISOCH_COMMAND
VOID(NTAPI * PDEVICE_NOTIFY_CALLBACK)(PVOID, ULONG)
Definition: iotypes.h:3009
struct _FS_FILTER_CALLBACK_DATA FS_FILTER_CALLBACK_DATA
#define PCI_COMMON_HEADER_LAYOUT
Definition: iotypes.h:3522
struct _PCI_PMC PCI_PMC
VOID(NTAPI * PPUT_DMA_ADAPTER)(PDMA_ADAPTER DmaAdapter)
Definition: iotypes.h:2322
struct _IO_CONNECT_INTERRUPT_PARAMETERS IO_CONNECT_INTERRUPT_PARAMETERS
struct _LEGACY_DEVICE_DETECTION_INTERFACE * PLEGACY_DEVICE_DETECTION_INTERFACE
_IO_SESSION_STATE
Definition: iotypes.h:319
@ IoSessionStateDisconnected
Definition: iotypes.h:323
@ IoSessionStateConnected
Definition: iotypes.h:322
@ IoSessionStateMax
Definition: iotypes.h:328
@ IoSessionStateTerminated
Definition: iotypes.h:327
@ IoSessionStateDisconnectedLoggedOn
Definition: iotypes.h:324
@ IoSessionStateCreated
Definition: iotypes.h:320
@ IoSessionStateLoggedOn
Definition: iotypes.h:325
@ IoSessionStateInitialized
Definition: iotypes.h:321
@ IoSessionStateLoggedOff
Definition: iotypes.h:326
union _PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER * PPCI_EXPRESS_SLOT_CAPABILITIES_REGISTER
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
struct _FILE_TRACKING_INFORMATION * PFILE_TRACKING_INFORMATION
struct _ARBITER_RETEST_ALLOCATION_PARAMETERS ARBITER_RETEST_ALLOCATION_PARAMETERS
FAST_IO_UNLOCK_ALL * PFAST_IO_UNLOCK_ALL
Definition: iotypes.h:1531
struct _PCI_PME_INTERFACE * PPCI_PME_INTERFACE
struct _PCI_EXPRESS_ROOT_PORT_INTERFACE PCI_EXPRESS_ROOT_PORT_INTERFACE
enum _EXTENDED_AGP_REGISTER EXTENDED_AGP_REGISTER
struct _DMA_ADAPTER DMA_ADAPTER
PCI_IS_DEVICE_PRESENT * PPCI_IS_DEVICE_PRESENT
Definition: iotypes.h:897
union _FS_FILTER_PARAMETERS FS_FILTER_PARAMETERS
FORCEINLINE DEVICE_POWER_STATE MapWakeDepthToDstate(_In_ DEVICE_WAKE_DEPTH WakeDepth)
Definition: iotypes.h:7506
struct _DMA_TRANSFER_INFO_V2 * PDMA_TRANSFER_INFO_V2
struct PCI_AGP_EXTENDED_CAPABILITY * PPCI_AGP_EXTENDED_CAPABILITY
PDEVICE_NOTIFY_CALLBACK2 NotificationHandler
Definition: iotypes.h:3098
struct _TARGET_DEVICE_REMOVAL_NOTIFICATION TARGET_DEVICE_REMOVAL_NOTIFICATION
NTSTATUS(NTAPI * PCARDBUSADD)(IN PDEVICE_OBJECT DeviceObject, IN OUT PVOID *DeviceContext)
Definition: iotypes.h:5542
struct _PCI_PME_INTERFACE PCI_PME_INTERFACE
DMA_COMPLETION_ROUTINE * PDMA_COMPLETION_ROUTINE
Definition: iotypes.h:2503
NTSTATUS(NTAPI * PIO_QUERY_DEVICE_ROUTINE)(_In_ PVOID Context, _In_ PUNICODE_STRING PathName, _In_ INTERFACE_TYPE BusType, _In_ ULONG BusNumber, _In_ PKEY_VALUE_FULL_INFORMATION *BusInformation, _In_ CONFIGURATION_TYPE ControllerType, _In_ ULONG ControllerNumber, _In_ PKEY_VALUE_FULL_INFORMATION *ControllerInformation, _In_ CONFIGURATION_TYPE PeripheralType, _In_ ULONG PeripheralNumber, _In_ PKEY_VALUE_FULL_INFORMATION *PeripheralInformation)
Definition: iotypes.h:4450
struct _DMA_TRANSFER_INFO * PDMA_TRANSFER_INFO
struct _FILE_GET_QUOTA_INFORMATION FILE_GET_QUOTA_INFORMATION
NTSTATUS(NTAPI * PALLOCATE_ADAPTER_CHANNEL)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG NumberOfMapRegisters, _In_ PDRIVER_CONTROL ExecutionRoutine, _In_ PVOID Context)
Definition: iotypes.h:2341
struct _TRANSLATOR_INTERFACE * PTRANSLATOR_INTERFACE
_IRQ_GROUP_POLICY
Definition: iotypes.h:172
@ GroupAffinityAllGroupZero
Definition: iotypes.h:173
@ GroupAffinityDontCare
Definition: iotypes.h:174
enum _IRQ_GROUP_POLICY * PIRQ_GROUP_POLICY
enum _IO_COMPLETION_ROUTINE_RESULT * PIO_COMPLETION_ROUTINE_RESULT
struct _DMA_CONFIGURATION_BYTE0 DMA_CONFIGURATION_BYTE0
_ARBITER_RESULT
Definition: iotypes.h:4637
@ ArbiterResultUndefined
Definition: iotypes.h:4638
@ ArbiterResultExternalConflict
Definition: iotypes.h:4640
@ ArbiterResultSuccess
Definition: iotypes.h:4639
@ ArbiterResultNullRequest
Definition: iotypes.h:4641
NTSTATUS(NTAPI * PIO_CONTAINER_NOTIFICATION_FUNCTION)(VOID)
Definition: iotypes.h:461
union _PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY * PPCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY
enum _IO_ACCESS_MODE IO_ACCESS_MODE
struct _PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY
struct _FILE_FS_DRIVER_PATH_INFORMATION * PFILE_FS_DRIVER_PATH_INFORMATION
struct _FILE_FS_CONTROL_INFORMATION * PFILE_FS_CONTROL_INFORMATION
struct _IO_INTERRUPT_MESSAGE_INFO_ENTRY * PIO_INTERRUPT_MESSAGE_INFO_ENTRY
_Out_ PBOOLEAN D3ColdSupported
Definition: iotypes.h:7546
struct _REPARSE_GUID_DATA_BUFFER REPARSE_GUID_DATA_BUFFER
enum _LINK_TRACKING_INFORMATION_TYPE LINK_TRACKING_INFORMATION_TYPE
struct _IO_RESOURCE_REQUIREMENTS_LIST * PIO_RESOURCE_REQUIREMENTS_LIST
DRIVER_DISPATCH_PAGED * PDRIVER_DISPATCH_PAGED
Definition: iotypes.h:2287
struct _FILE_PIPE_CLIENT_PROCESS_BUFFER FILE_PIPE_CLIENT_PROCESS_BUFFER
struct _REPARSE_INDEX_KEY * PREPARSE_INDEX_KEY
union _PCI_EXPRESS_LINK_CONTROL_REGISTER PCI_EXPRESS_LINK_CONTROL_REGISTER
FWMI_NOTIFICATION_CALLBACK * WMI_NOTIFICATION_CALLBACK
Definition: iotypes.h:3499
struct _HWPROFILE_CHANGE_NOTIFICATION * PHWPROFILE_CHANGE_NOTIFICATION
IO_WORKITEM_ROUTINE * PIO_WORKITEM_ROUTINE
Definition: iotypes.h:515
struct _TARGET_DEVICE_REMOVAL_NOTIFICATION * PTARGET_DEVICE_REMOVAL_NOTIFICATION
enum _D3COLD_LAST_TRANSITION_STATUS D3COLD_LAST_TRANSITION_STATUS
enum _IO_SESSION_EVENT * PIO_SESSION_EVENT
GET_IDLE_WAKE_INFO * PGET_IDLE_WAKE_INFO
Definition: iotypes.h:7538
enum _DEVICE_WAKE_DEPTH * PDEVICE_WAKE_DEPTH
struct _PCI_EXPRESS_BRIDGE_AER_CAPABILITY * PPCI_EXPRESS_BRIDGE_AER_CAPABILITY
struct _DEVICE_DESCRIPTION DEVICE_DESCRIPTION
struct _FILE_PIPE_CLIENT_PROCESS_BUFFER_EX * PFILE_PIPE_CLIENT_PROCESS_BUFFER_EX
struct _D3COLD_SUPPORT_INTERFACE * PD3COLD_SUPPORT_INTERFACE
_In_ USHORT _In_ UCHAR _In_ USHORT SubVendorID
Definition: iotypes.h:894
struct _LEGACY_BUS_INFORMATION * PLEGACY_BUS_INFORMATION
struct _IO_REMOVE_LOCK * PIO_REMOVE_LOCK
struct _CLIENT_ID * PCLIENT_ID
enum _LINK_TRACKING_INFORMATION_TYPE * PLINK_TRACKING_INFORMATION_TYPE
union _PCI_EXPRESS_LINK_STATUS_REGISTER * PPCI_EXPRESS_LINK_STATUS_REGISTER
NTSTATUS(NTAPI * PMM_DLL_INITIALIZE)(_In_ PUNICODE_STRING RegistryPath)
Definition: iotypes.h:2865
FAST_IO_READ * PFAST_IO_READ
Definition: iotypes.h:1457
enum _DEVICE_USAGE_NOTIFICATION_TYPE DEVICE_USAGE_NOTIFICATION_TYPE
VOID(NTAPI * PFREE_COMMON_BUFFER)(_In_ PDMA_ADAPTER DmaAdapter, _In_ ULONG Length, _In_ PHYSICAL_ADDRESS LogicalAddress, _In_ PVOID VirtualAddress, _In_ BOOLEAN CacheEnabled)
Definition: iotypes.h:2333
struct _SHARE_ACCESS * PSHARE_ACCESS
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:1036
union _PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER
struct _IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS
ULONG(NTAPI * PGET_DMA_ALIGNMENT)(_In_ PDMA_ADAPTER DmaAdapter)
Definition: iotypes.h:2377
struct _BOOTDISK_INFORMATION_EX BOOTDISK_INFORMATION_EX
struct _FILE_PIPE_ASSIGN_EVENT_BUFFER * PFILE_PIPE_ASSIGN_EVENT_BUFFER
struct _IO_RESOURCE_REQUIREMENTS_LIST IO_RESOURCE_REQUIREMENTS_LIST
struct _WAIT_CONTEXT_BLOCK WAIT_CONTEXT_BLOCK
struct _FILE_PIPE_REMOTE_INFORMATION FILE_PIPE_REMOTE_INFORMATION
struct _PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER * PPCI_EXPRESS_ENHANCED_CAPABILITY_HEADER
struct _ARBITER_INTERFACE ARBITER_INTERFACE
struct _IO_ERROR_LOG_PACKET IO_ERROR_LOG_PACKET
#define IRP_MJ_MAXIMUM_FUNCTION
enum _FS_FILTER_SECTION_SYNC_TYPE * PFS_FILTER_SECTION_SYNC_TYPE
D3COLD_REQUEST_PERST_DELAY * PD3COLD_REQUEST_PERST_DELAY
Definition: iotypes.h:7610
DRIVER_INITIALIZE * PDRIVER_INITIALIZE
Definition: iotypes.h:2250
_DEVICE_REMOVAL_POLICY
Definition: iotypes.h:839
@ RemovalPolicyExpectSurpriseRemoval
Definition: iotypes.h:842
@ RemovalPolicyExpectNoRemoval
Definition: iotypes.h:840
@ RemovalPolicyExpectOrderlyRemoval
Definition: iotypes.h:841
VOID(NTAPI * PFREE_COMMON_BUFFER_FROM_VECTOR)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDMA_COMMON_BUFFER_VECTOR Vector, _In_ ULONG Index)
Definition: iotypes.h:2637
_DEVICE_USAGE_NOTIFICATION_TYPE
Definition: iotypes.h:1168
@ DeviceUsageTypePostDisplay
Definition: iotypes.h:1174
@ DeviceUsageTypeUndefined
Definition: iotypes.h:1169
@ DeviceUsageTypeHibernation
Definition: iotypes.h:1171
@ DeviceUsageTypeBoot
Definition: iotypes.h:1173
@ DeviceUsageTypeDumpFile
Definition: iotypes.h:1172
@ DeviceUsageTypePaging
Definition: iotypes.h:1170
@ DeviceUsageTypeGuestAssigned
Definition: iotypes.h:1175
NTSTATUS(NTAPI * PFLUSH_DMA_BUFFER)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PMDL Mdl, _In_ BOOLEAN ReadOperation)
Definition: iotypes.h:2585
struct _PCI_EXPRESS_LINK_QUIESCENT_INTERFACE PCI_EXPRESS_LINK_QUIESCENT_INTERFACE
_Inout_ PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
Definition: kefuncs.h:327
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
KSERVICE_ROUTINE * PKSERVICE_ROUTINE
Definition: ketypes.h:580
_IRQL_requires_same_ _In_ PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT _Inout_ PNTSTATUS OperationStatus
Definition: ketypes.h:425
KMESSAGE_SERVICE_ROUTINE * PKMESSAGE_SERVICE_ROUTINE
Definition: ketypes.h:589
enum _KINTERRUPT_POLARITY KINTERRUPT_POLARITY
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS HighAddress
Definition: mmfuncs.h:226
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_opt_ PHYSICAL_ADDRESS _In_ MEMORY_CACHING_TYPE _In_ NODE_REQUIREMENT PreferredNode
Definition: mmfuncs.h:419
_In_ PEPROCESS _In_ KPROCESSOR_MODE AccessMode
Definition: mmfuncs.h:396
enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE
_In_opt_ PVOID _In_opt_ PUNICODE_STRING _In_ PSECURITY_DESCRIPTOR _In_ PACCESS_STATE _In_ BOOLEAN _In_ BOOLEAN _In_ KPROCESSOR_MODE _In_opt_ GUID * TransactionId
Definition: sefuncs.h:421