ReactOS 0.4.16-dev-1093-g93e9710
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)(
891 _In_ USHORT VendorID,
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)
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
2160
2161typedef struct _DEVICE_RELATIONS {
2163 PDEVICE_OBJECT Objects[1];
2165
2166typedef struct _DEVOBJ_EXTENSION {
2171
2177
2178#if defined(_MSC_EXTENSIONS) || defined(__GNUC__)
2179
2180#if defined(_MSC_VER)
2181#if _MSC_VER >= 1200
2182#pragma warning(push)
2183#endif
2184#pragma warning(disable:4200)
2185#endif /* _MSC_VER */
2186
2187typedef struct _SCATTER_GATHER_LIST {
2188 ULONG NumberOfElements;
2190 SCATTER_GATHER_ELEMENT Elements[1];
2192
2193#if defined(_MSC_VER)
2194#if _MSC_VER >= 1200
2195#pragma warning(pop)
2196#else
2197#pragma warning(default:4200)
2198#endif
2199#endif /* _MSC_VER */
2200
2201#else /* defined(_MSC_EXTENSIONS) || defined(__GNUC__) */
2202
2203struct _SCATTER_GATHER_LIST;
2204typedef struct _SCATTER_GATHER_LIST SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
2205
2206#endif /* defined(_MSC_EXTENSIONS) || defined(__GNUC__) */
2207
2208_Function_class_(DRIVER_ADD_DEVICE)
2212typedef NTSTATUS
2213(NTAPI DRIVER_ADD_DEVICE)(
2216typedef DRIVER_ADD_DEVICE *PDRIVER_ADD_DEVICE;
2217
2218typedef struct _DRIVER_EXTENSION {
2224
2225#define DRVO_UNLOAD_INVOKED 0x00000001
2226#define DRVO_LEGACY_DRIVER 0x00000002
2227#define DRVO_BUILTIN_DRIVER 0x00000004
2228
2229_Function_class_(DRIVER_INITIALIZE)
2231typedef NTSTATUS
2232(NTAPI DRIVER_INITIALIZE)(
2235typedef DRIVER_INITIALIZE *PDRIVER_INITIALIZE;
2236
2237_Function_class_(DRIVER_STARTIO)
2241typedef VOID
2242(NTAPI DRIVER_STARTIO)(
2244 _Inout_ struct _IRP *Irp);
2245typedef DRIVER_STARTIO *PDRIVER_STARTIO;
2246
2247_Function_class_(DRIVER_UNLOAD)
2250typedef VOID
2251(NTAPI DRIVER_UNLOAD)(
2253typedef DRIVER_UNLOAD *PDRIVER_UNLOAD;
2254
2258typedef NTSTATUS
2261 _Inout_ struct _IRP *Irp);
2264
2268typedef NTSTATUS
2269(NTAPI DRIVER_DISPATCH_PAGED)(
2271 _Inout_ struct _IRP *Irp);
2272typedef DRIVER_DISPATCH_PAGED *PDRIVER_DISPATCH_PAGED;
2273
2274typedef struct _DRIVER_OBJECT {
2291
2292typedef struct _DMA_ADAPTER {
2297
2298typedef enum
2299{
2305
2306typedef VOID
2308 PDMA_ADAPTER DmaAdapter);
2309
2310typedef PVOID
2312 _In_ PDMA_ADAPTER DmaAdapter,
2314 _Out_ PPHYSICAL_ADDRESS LogicalAddress,
2315 _In_ BOOLEAN CacheEnabled);
2316
2317typedef VOID
2319 _In_ PDMA_ADAPTER DmaAdapter,
2321 _In_ PHYSICAL_ADDRESS LogicalAddress,
2323 _In_ BOOLEAN CacheEnabled);
2324
2327 _In_ PDMA_ADAPTER DmaAdapter,
2332
2333typedef BOOLEAN
2335 _In_ PDMA_ADAPTER DmaAdapter,
2336 _In_ PMDL Mdl,
2338 _In_ PVOID CurrentVa,
2341
2342typedef VOID
2344 _In_ PDMA_ADAPTER DmaAdapter);
2345
2346typedef VOID
2348 _In_ PDMA_ADAPTER DmaAdapter,
2351
2354 _In_ PDMA_ADAPTER DmaAdapter,
2355 _In_ PMDL Mdl,
2357 _In_ PVOID CurrentVa,
2360
2361typedef ULONG
2363 _In_ PDMA_ADAPTER DmaAdapter);
2364
2365typedef ULONG
2367 _In_ PDMA_ADAPTER DmaAdapter);
2368
2369_Function_class_(DRIVER_LIST_CONTROL)
2371typedef VOID
2372(NTAPI DRIVER_LIST_CONTROL)(
2374 _In_ struct _IRP *Irp,
2375 _In_ struct _SCATTER_GATHER_LIST *ScatterGather,
2377typedef DRIVER_LIST_CONTROL *PDRIVER_LIST_CONTROL;
2378
2381 _In_ PDMA_ADAPTER DmaAdapter,
2383 _In_ PMDL Mdl,
2384 _In_ PVOID CurrentVa,
2389
2390typedef VOID
2392 _In_ PDMA_ADAPTER DmaAdapter,
2395
2398 _In_ PDMA_ADAPTER DmaAdapter,
2400 _In_ PVOID CurrentVa,
2402 _Out_ PULONG ScatterGatherListSize,
2403 _Out_ OPTIONAL PULONG pNumberOfMapRegisters);
2404
2407 _In_ PDMA_ADAPTER DmaAdapter,
2409 _In_ PMDL Mdl,
2410 _In_ PVOID CurrentVa,
2415 _In_ PVOID ScatterGatherBuffer,
2416 _In_ ULONG ScatterGatherLength);
2417
2420 _In_ PDMA_ADAPTER DmaAdapter,
2422 _In_ PMDL OriginalMdl,
2424
2427 _In_ PDMA_ADAPTER DmaAdapter,
2428 _Inout_ PDMA_ADAPTER_INFO AdapterInfo);
2429
2432 _In_ PDMA_ADAPTER DmaAdapter,
2433 _In_ PMDL Mdl,
2436 _In_ BOOLEAN WriteOnly,
2437 _Inout_ PDMA_TRANSFER_INFO TransferInfo);
2438
2441 _In_ PDMA_ADAPTER DmaAdapter,
2442 _Out_ PVOID DmaTransferContext);
2443
2444typedef PVOID
2446 _In_ PDMA_ADAPTER DmaAdapter,
2447 _In_opt_ PPHYSICAL_ADDRESS MaximumAddress,
2449 _Out_ PPHYSICAL_ADDRESS LogicalAddress,
2450 _In_ BOOLEAN CacheEnabled,
2451 _In_ NODE_REQUIREMENT PreferredNode);
2452
2455 _In_ PDMA_ADAPTER DmaAdapter,
2457 _In_ PVOID DmaTransferContext,
2461 _In_opt_ PVOID ExecutionContext,
2463
2466 _In_ PDMA_ADAPTER DmaAdapter,
2467 _In_ ULONG FunctionNumber,
2469
2470typedef BOOLEAN
2472 _In_ PDMA_ADAPTER DmaAdapter,
2474 _In_ PVOID DmaTransferContext);
2475
2476typedef
2477_Function_class_(DMA_COMPLETION_ROUTINE)
2480VOID
2481NTAPI
2482DMA_COMPLETION_ROUTINE(
2483 _In_ PDMA_ADAPTER DmaAdapter,
2487
2488typedef DMA_COMPLETION_ROUTINE *PDMA_COMPLETION_ROUTINE;
2489
2492 _In_ PDMA_ADAPTER DmaAdapter,
2493 _In_ PMDL Mdl,
2499 _Out_writes_bytes_opt_(ScatterGatherBufferLength) PSCATTER_GATHER_LIST ScatterGatherBuffer,
2500 _In_ ULONG ScatterGatherBufferLength,
2503
2506 _In_ PDMA_ADAPTER DmaAdapter,
2508 _In_ PVOID DmaTransferContext,
2509 _In_ PMDL Mdl,
2518 _Out_opt_ PSCATTER_GATHER_LIST *ScatterGatherList);
2519
2522 _In_ PDMA_ADAPTER DmaAdapter,
2524 _In_ PVOID DmaTransferContext,
2525 _In_ PMDL Mdl,
2532 _In_ PVOID ScatterGatherBuffer,
2533 _In_ ULONG ScatterGatherLength,
2536 _Out_opt_ PVOID ScatterGatherList);
2537
2540 _In_ PDMA_ADAPTER DmaAdapter,
2541 _In_ PMDL Mdl,
2546
2547typedef VOID
2549 _In_ PDMA_ADAPTER DmaAdapter,
2550 _In_ IO_ALLOCATION_ACTION AllocationAction);
2551
2554 _In_ PDMA_ADAPTER DmaAdapter,
2555 _In_ PVOID DmaTransferContext);
2556
2559 _In_ PDMA_ADAPTER DmaAdapter,
2560 _In_ HANDLE DomainHandle,
2561 _In_opt_ PPHYSICAL_ADDRESS MaximumAddress,
2565 _In_ NODE_REQUIREMENT PreferredNode,
2566 _Out_ PPHYSICAL_ADDRESS LogicalAddress,
2568
2571 _In_ PDMA_ADAPTER DmaAdapter,
2572 _In_ PMDL Mdl,
2573 _In_ BOOLEAN ReadOperation);
2574
2577 _In_ PDMA_ADAPTER DmaAdapter,
2578 _In_ HANDLE DomainHandle);
2579
2582 _In_ PDMA_ADAPTER DmaAdapter);
2583
2584typedef HANDLE
2586 _In_ PDMA_ADAPTER DmaAdapter);
2587
2588typedef PVOID
2590 _In_ PDMA_ADAPTER DmaAdapter,
2591 _In_opt_ PPHYSICAL_ADDRESS MinimumAddress,
2592 _In_opt_ PPHYSICAL_ADDRESS MaximumAddress,
2596 _In_ NODE_REQUIREMENT PreferredNode,
2597 _Out_ PPHYSICAL_ADDRESS LogicalAddress);
2598
2599typedef struct _DMA_COMMON_BUFFER_VECTOR DMA_COMMON_BUFFER_VECTOR, *PDMA_COMMON_BUFFER_VECTOR;
2600
2603 _In_ PDMA_ADAPTER DmaAdapter,
2604 _In_ PHYSICAL_ADDRESS LowAddress,
2607 _In_ ULONG IdealNode,
2609 _In_ ULONG NumberOfElements,
2610 _In_ ULONGLONG SizeOfElements,
2611 _Out_ PDMA_COMMON_BUFFER_VECTOR *VectorOut);
2612
2613typedef VOID
2615 _In_ PDMA_ADAPTER DmaAdapter,
2618 _Out_ PVOID *VirtualAddressOut,
2619 _Out_ PPHYSICAL_ADDRESS LogicalAddressOut);
2620
2621typedef VOID
2623 _In_ PDMA_ADAPTER DmaAdapter,
2625 _In_ ULONG Index);
2626
2627typedef VOID
2629 _In_ PDMA_ADAPTER DmaAdapter,
2631
2632typedef struct _DMA_OPERATIONS {
2673
2674typedef struct _IO_RESOURCE_DESCRIPTOR {
2675 UCHAR Option;
2676 UCHAR Type;
2677 UCHAR ShareDisposition;
2678 UCHAR Spare1;
2679 USHORT Flags;
2680 USHORT Spare2;
2681 union {
2682 struct {
2683 ULONG Length;
2685 PHYSICAL_ADDRESS MinimumAddress;
2686 PHYSICAL_ADDRESS MaximumAddress;
2688 struct {
2689 ULONG Length;
2691 PHYSICAL_ADDRESS MinimumAddress;
2692 PHYSICAL_ADDRESS MaximumAddress;
2694 struct {
2695 ULONG MinimumVector;
2696 ULONG MaximumVector;
2697#if defined(NT_PROCESSOR_GROUPS)
2698 IRQ_DEVICE_POLICY AffinityPolicy;
2699 USHORT Group;
2700#else
2701 IRQ_DEVICE_POLICY AffinityPolicy;
2702#endif
2703 IRQ_PRIORITY PriorityPolicy;
2704 KAFFINITY TargetedProcessors;
2706 struct {
2707 ULONG MinimumChannel;
2708 ULONG MaximumChannel;
2709 } Dma;
2710 struct {
2711 ULONG Length;
2713 PHYSICAL_ADDRESS MinimumAddress;
2714 PHYSICAL_ADDRESS MaximumAddress;
2715 } Generic;
2716 struct {
2717 ULONG Data[3];
2718 } DevicePrivate;
2719 struct {
2720 ULONG Length;
2721 ULONG MinBusNumber;
2722 ULONG MaxBusNumber;
2725 struct {
2729 } ConfigData;
2730 } u;
2732
2733typedef struct _IO_RESOURCE_LIST {
2739
2749
2750_Function_class_(DRIVER_CANCEL)
2751_Requires_lock_held_(_Global_cancel_spin_lock_)
2752_Releases_lock_(_Global_cancel_spin_lock_)
2755typedef VOID
2756(NTAPI DRIVER_CANCEL)(
2759typedef DRIVER_CANCEL *PDRIVER_CANCEL;
2760
2761typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _IRP {
2762 CSHORT Type;
2763 USHORT Size;
2764 struct _MDL *MdlAddress;
2765 ULONG Flags;
2766 union {
2767 struct _IRP *MasterIrp;
2768 volatile LONG IrpCount;
2769 PVOID SystemBuffer;
2770 } AssociatedIrp;
2771 LIST_ENTRY ThreadListEntry;
2773 KPROCESSOR_MODE RequestorMode;
2774 BOOLEAN PendingReturned;
2775 CHAR StackCount;
2776 CHAR CurrentLocation;
2778 KIRQL CancelIrql;
2779 CCHAR ApcEnvironment;
2780 UCHAR AllocationFlags;
2781 PIO_STATUS_BLOCK UserIosb;
2782 PKEVENT UserEvent;
2783 union {
2784 struct {
2785 _ANONYMOUS_UNION union {
2786 PIO_APC_ROUTINE UserApcRoutine;
2787 PVOID IssuingProcess;
2789 PVOID UserApcContext;
2790 } AsynchronousParameters;
2792 } Overlay;
2794 PVOID UserBuffer;
2795 union {
2796 struct {
2797 _ANONYMOUS_UNION union {
2799 _ANONYMOUS_STRUCT struct {
2804 PCHAR AuxiliaryBuffer;
2805 _ANONYMOUS_STRUCT struct {
2806 LIST_ENTRY ListEntry;
2807 _ANONYMOUS_UNION union {
2808 struct _IO_STACK_LOCATION *CurrentStackLocation;
2809 ULONG PacketType;
2812 struct _FILE_OBJECT *OriginalFileObject;
2813 } Overlay;
2814 KAPC Apc;
2815 PVOID CompletionKey;
2816 } Tail;
2818
2826
2827_Function_class_(IO_COMPLETION_ROUTINE)
2830typedef NTSTATUS
2831(NTAPI IO_COMPLETION_ROUTINE)(
2833 _In_ struct _IRP *Irp,
2834 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context);
2835typedef IO_COMPLETION_ROUTINE *PIO_COMPLETION_ROUTINE;
2836
2837_Function_class_(IO_DPC_ROUTINE)
2841typedef VOID
2842(NTAPI IO_DPC_ROUTINE)(
2847typedef IO_DPC_ROUTINE *PIO_DPC_ROUTINE;
2848
2852
2855 VOID);
2856
2857_Function_class_(IO_TIMER_ROUTINE)
2859typedef VOID
2860(NTAPI IO_TIMER_ROUTINE)(
2863typedef IO_TIMER_ROUTINE *PIO_TIMER_ROUTINE;
2864
2871
2872struct _IO_CSQ;
2873
2874typedef struct _IO_CSQ_IRP_CONTEXT {
2875 ULONG Type;
2876 struct _IRP *Irp;
2877 struct _IO_CSQ *Csq;
2879
2880typedef VOID
2881(NTAPI IO_CSQ_INSERT_IRP)(
2882 _In_ struct _IO_CSQ *Csq,
2884typedef IO_CSQ_INSERT_IRP *PIO_CSQ_INSERT_IRP;
2885
2886typedef NTSTATUS
2887(NTAPI IO_CSQ_INSERT_IRP_EX)(
2888 _In_ struct _IO_CSQ *Csq,
2889 _In_ PIRP Irp,
2891typedef IO_CSQ_INSERT_IRP_EX *PIO_CSQ_INSERT_IRP_EX;
2892
2893typedef VOID
2894(NTAPI IO_CSQ_REMOVE_IRP)(
2895 _In_ struct _IO_CSQ *Csq,
2896 _In_ PIRP Irp);
2897typedef IO_CSQ_REMOVE_IRP *PIO_CSQ_REMOVE_IRP;
2898
2899typedef PIRP
2900(NTAPI IO_CSQ_PEEK_NEXT_IRP)(
2901 _In_ struct _IO_CSQ *Csq,
2902 _In_ PIRP Irp,
2904typedef IO_CSQ_PEEK_NEXT_IRP *PIO_CSQ_PEEK_NEXT_IRP;
2905
2906typedef VOID
2907(NTAPI IO_CSQ_ACQUIRE_LOCK)(
2908 _In_ struct _IO_CSQ *Csq,
2910typedef IO_CSQ_ACQUIRE_LOCK *PIO_CSQ_ACQUIRE_LOCK;
2911
2912typedef VOID
2913(NTAPI IO_CSQ_RELEASE_LOCK)(
2914 _In_ struct _IO_CSQ *Csq,
2915 _In_ KIRQL Irql);
2916typedef IO_CSQ_RELEASE_LOCK *PIO_CSQ_RELEASE_LOCK;
2917
2918typedef VOID
2919(NTAPI IO_CSQ_COMPLETE_CANCELED_IRP)(
2920 _In_ struct _IO_CSQ *Csq,
2921 _In_ PIRP Irp);
2922typedef IO_CSQ_COMPLETE_CANCELED_IRP *PIO_CSQ_COMPLETE_CANCELED_IRP;
2923
2924typedef struct _IO_CSQ {
2925 ULONG Type;
2932 PVOID ReservePointer;
2934
2943
2944typedef enum _DEVICE_TEXT_TYPE {
2948
2949typedef BOOLEAN
2951 PVOID,
2952 PVOID);
2953
2956typedef NTSTATUS
2957(NTAPI *PGPE_CONNECT_VECTOR)(
2964 PVOID);
2965
2968typedef NTSTATUS
2969(NTAPI *PGPE_DISCONNECT_VECTOR)(
2970 PVOID);
2971
2974typedef NTSTATUS
2975(NTAPI *PGPE_ENABLE_EVENT)(
2977 PVOID);
2978
2981typedef NTSTATUS
2982(NTAPI *PGPE_DISABLE_EVENT)(
2984 PVOID);
2985
2988typedef NTSTATUS
2989(NTAPI *PGPE_CLEAR_STATUS)(
2991 PVOID);
2992
2993typedef VOID
2995 PVOID,
2996 ULONG);
2997
3000typedef NTSTATUS
3001(NTAPI *PREGISTER_FOR_DEVICE_NOTIFICATIONS)(
3004 PVOID);
3005
3007typedef VOID
3008(NTAPI *PUNREGISTER_FOR_DEVICE_NOTIFICATIONS)(
3011
3018 PGPE_CONNECT_VECTOR GpeConnectVector;
3019 PGPE_DISCONNECT_VECTOR GpeDisconnectVector;
3020 PGPE_ENABLE_EVENT GpeEnableEvent;
3021 PGPE_DISABLE_EVENT GpeDisableEvent;
3022 PGPE_CLEAR_STATUS GpeClearStatus;
3023 PREGISTER_FOR_DEVICE_NOTIFICATIONS RegisterForDeviceNotifications;
3024 PUNREGISTER_FOR_DEVICE_NOTIFICATIONS UnregisterForDeviceNotifications;
3026
3027typedef BOOLEAN
3031
3034typedef NTSTATUS
3035(NTAPI *PGPE_CONNECT_VECTOR2)(
3036 PVOID Context,
3043
3046typedef NTSTATUS
3047(NTAPI *PGPE_DISCONNECT_VECTOR2)(
3048 PVOID Context,
3050
3053typedef NTSTATUS
3054(NTAPI *PGPE_ENABLE_EVENT2)(
3055 PVOID Context,
3057
3060typedef NTSTATUS
3061(NTAPI *PGPE_DISABLE_EVENT2)(
3062 PVOID Context,
3064
3067typedef NTSTATUS
3068(NTAPI *PGPE_CLEAR_STATUS2)(
3069 PVOID Context,
3071
3073typedef VOID
3074(NTAPI *PDEVICE_NOTIFY_CALLBACK2)(
3077
3080typedef NTSTATUS
3081(NTAPI *PREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
3082 PVOID Context,
3083 PDEVICE_NOTIFY_CALLBACK2 NotificationHandler,
3085
3087typedef VOID
3088(NTAPI *PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
3089 PVOID Context);
3090
3097 PGPE_CONNECT_VECTOR2 GpeConnectVector;
3098 PGPE_DISCONNECT_VECTOR2 GpeDisconnectVector;
3099 PGPE_ENABLE_EVENT2 GpeEnableEvent;
3100 PGPE_DISABLE_EVENT2 GpeDisableEvent;
3101 PGPE_CLEAR_STATUS2 GpeClearStatus;
3102 PREGISTER_FOR_DEVICE_NOTIFICATIONS2 RegisterForDeviceNotifications;
3103 PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2 UnregisterForDeviceNotifications;
3105
3106#if !defined(_AMD64_) && !defined(_ARM_)
3107#include <pshpack4.h>
3108#endif
3109
3110typedef struct _IO_STACK_LOCATION {
3115 union {
3116 struct {
3123 struct {
3125 ULONG Options;
3130 struct {
3131 PIO_SECURITY_CONTEXT SecurityContext;
3132 ULONG Options;
3137 struct {
3142 struct {
3143 ULONG Length;
3147 struct {
3148 ULONG Length;
3152 } QueryDirectory;
3153 struct {
3154 ULONG Length;
3156 } NotifyDirectory;
3157 struct {
3158 ULONG Length;
3161 } NotifyDirectoryEx;
3162 struct {
3163 ULONG Length;
3165 } QueryFile;
3166 struct {
3167 ULONG Length;
3170 _ANONYMOUS_UNION union {
3171 _ANONYMOUS_STRUCT struct {
3178 } SetFile;
3179 struct {
3180 ULONG Length;
3184 } QueryEa;
3185 struct {
3186 ULONG Length;
3187 } SetEa;
3188 struct {
3189 ULONG Length;
3191 } QueryVolume;
3192 struct {
3193 ULONG Length;
3195 } SetVolume;
3196 struct {
3201 } FileSystemControl;
3202 struct {
3206 } LockControl;
3207 struct {
3211 PVOID Type3InputBuffer;
3213 struct {
3216 } QuerySecurity;
3217 struct {
3220 } SetSecurity;
3221 struct {
3225 struct {
3226 PVPB Vpb;
3228 } VerifyVolume;
3229 struct {
3231 } Scsi;
3232 struct {
3233 ULONG Length;
3237 } QueryQuota;
3238 struct {
3239 ULONG Length;
3240 } SetQuota;
3241 struct {
3243 } QueryDeviceRelations;
3244 struct {
3251 struct {
3254 struct {
3256 } FilterResourceRequirements;
3257 struct {
3262 } ReadWriteConfig;
3263 struct {
3265 } SetLock;
3266 struct {
3268 } QueryId;
3269 struct {
3272 } QueryDeviceText;
3273 struct {
3277 } UsageNotification;
3278 struct {
3280 } WaitWake;
3281 struct {
3283 } PowerSequence;
3284 struct {
3285 union {
3287#if (NTDDI_VERSION >= NTDDI_VISTA)
3289#endif // (NTDDI_VERSION >= NTDDI_VISTA)
3290 };
3294 } Power;
3295 struct {
3299 struct {
3303 PVOID Buffer;
3304 } WMI;
3305 struct {
3310 } Others;
3317
3318#if !defined(_AMD64_) && !defined(_ARM_)
3319#include "poppack.h"
3320#endif
3321
3322
3323/* IO_STACK_LOCATION.Control */
3324
3325#define SL_PENDING_RETURNED 0x01
3326#define SL_ERROR_RETURNED 0x02
3327#define SL_INVOKE_ON_CANCEL 0x20
3328#define SL_INVOKE_ON_SUCCESS 0x40
3329#define SL_INVOKE_ON_ERROR 0x80
3330
3333#define METHOD_BUFFERED 0
3334#define METHOD_IN_DIRECT 1
3335#define METHOD_OUT_DIRECT 2
3336#define METHOD_NEITHER 3
3337
3338#define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT
3339#define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT
3340
3342$if (_WDMDDK_)
3343#define FILE_SUPERSEDED 0x00000000
3344#define FILE_OPENED 0x00000001
3345#define FILE_CREATED 0x00000002
3346#define FILE_OVERWRITTEN 0x00000003
3347#define FILE_EXISTS 0x00000004
3348#define FILE_DOES_NOT_EXIST 0x00000005
3349
3350#define FILE_USE_FILE_POINTER_POSITION 0xfffffffe
3351#define FILE_WRITE_TO_END_OF_FILE 0xffffffff
3352
3353/* also in winnt.h */
3354#define FILE_LIST_DIRECTORY 0x00000001
3355#define FILE_READ_DATA 0x00000001
3356#define FILE_ADD_FILE 0x00000002
3357#define FILE_WRITE_DATA 0x00000002
3358#define FILE_ADD_SUBDIRECTORY 0x00000004
3359#define FILE_APPEND_DATA 0x00000004
3360#define FILE_CREATE_PIPE_INSTANCE 0x00000004
3361#define FILE_READ_EA 0x00000008
3362#define FILE_WRITE_EA 0x00000010
3363#define FILE_EXECUTE 0x00000020
3364#define FILE_TRAVERSE 0x00000020
3365#define FILE_DELETE_CHILD 0x00000040
3366#define FILE_READ_ATTRIBUTES 0x00000080
3367#define FILE_WRITE_ATTRIBUTES 0x00000100
3368
3369#define FILE_SHARE_READ 0x00000001
3370#define FILE_SHARE_WRITE 0x00000002
3371#define FILE_SHARE_DELETE 0x00000004
3372#define FILE_SHARE_VALID_FLAGS 0x00000007
3373
3374#define FILE_ATTRIBUTE_READONLY 0x00000001
3375#define FILE_ATTRIBUTE_HIDDEN 0x00000002
3376#define FILE_ATTRIBUTE_SYSTEM 0x00000004
3377#define FILE_ATTRIBUTE_DIRECTORY 0x00000010
3378#define FILE_ATTRIBUTE_ARCHIVE 0x00000020
3379#define FILE_ATTRIBUTE_DEVICE 0x00000040
3380#define FILE_ATTRIBUTE_NORMAL 0x00000080
3381#define FILE_ATTRIBUTE_TEMPORARY 0x00000100
3382#define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
3383#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
3384#define FILE_ATTRIBUTE_COMPRESSED 0x00000800
3385#define FILE_ATTRIBUTE_OFFLINE 0x00001000
3386#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
3387#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000
3388#define FILE_ATTRIBUTE_INTEGRITY_STREAM 0x00008000
3389#define FILE_ATTRIBUTE_VIRTUAL 0x00010000
3390
3391#define FILE_ATTRIBUTE_VALID_FLAGS 0x00007fb7
3392#define FILE_ATTRIBUTE_VALID_SET_FLAGS 0x000031a7
3393
3394#define FILE_VALID_OPTION_FLAGS 0x00ffffff
3395#define FILE_VALID_PIPE_OPTION_FLAGS 0x00000032
3396#define FILE_VALID_MAILSLOT_OPTION_FLAGS 0x00000032
3397#define FILE_VALID_SET_FLAGS 0x00000036
3398
3399#define FILE_SUPERSEDE 0x00000000
3400#define FILE_OPEN 0x00000001
3401#define FILE_CREATE 0x00000002
3402#define FILE_OPEN_IF 0x00000003
3403#define FILE_OVERWRITE 0x00000004
3404#define FILE_OVERWRITE_IF 0x00000005
3405#define FILE_MAXIMUM_DISPOSITION 0x00000005
3406
3407#define FILE_DIRECTORY_FILE 0x00000001
3408#define FILE_WRITE_THROUGH 0x00000002
3409#define FILE_SEQUENTIAL_ONLY 0x00000004
3410#define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008
3411#define FILE_SYNCHRONOUS_IO_ALERT 0x00000010
3412#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
3413#define FILE_NON_DIRECTORY_FILE 0x00000040
3414#define FILE_CREATE_TREE_CONNECTION 0x00000080
3415#define FILE_COMPLETE_IF_OPLOCKED 0x00000100
3416#define FILE_NO_EA_KNOWLEDGE 0x00000200
3417#define FILE_OPEN_REMOTE_INSTANCE 0x00000400
3418#define FILE_RANDOM_ACCESS 0x00000800
3419#define FILE_DELETE_ON_CLOSE 0x00001000
3420#define FILE_OPEN_BY_FILE_ID 0x00002000
3421#define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000
3422#define FILE_NO_COMPRESSION 0x00008000
3423#if (NTDDI_VERSION >= NTDDI_WIN7)
3424#define FILE_OPEN_REQUIRING_OPLOCK 0x00010000
3425#define FILE_DISALLOW_EXCLUSIVE 0x00020000
3426#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
3427#define FILE_RESERVE_OPFILTER 0x00100000
3428#define FILE_OPEN_REPARSE_POINT 0x00200000
3429#define FILE_OPEN_NO_RECALL 0x00400000
3430#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000
3431
3434#define FILE_ANY_ACCESS 0x00000000
3435#define FILE_SPECIAL_ACCESS FILE_ANY_ACCESS
3436#define FILE_READ_ACCESS 0x00000001
3437#define FILE_WRITE_ACCESS 0x00000002
3438
3440$if (_WDMDDK_)
3441#define FILE_ALL_ACCESS \
3442 (STANDARD_RIGHTS_REQUIRED | \
3443 SYNCHRONIZE | \
3444 0x1FF)
3445
3446#define FILE_GENERIC_EXECUTE \
3447 (STANDARD_RIGHTS_EXECUTE | \
3448 FILE_READ_ATTRIBUTES | \
3449 FILE_EXECUTE | \
3450 SYNCHRONIZE)
3451
3452#define FILE_GENERIC_READ \
3453 (STANDARD_RIGHTS_READ | \
3454 FILE_READ_DATA | \
3455 FILE_READ_ATTRIBUTES | \
3456 FILE_READ_EA | \
3457 SYNCHRONIZE)
3458
3459#define FILE_GENERIC_WRITE \
3460 (STANDARD_RIGHTS_WRITE | \
3461 FILE_WRITE_DATA | \
3462 FILE_WRITE_ATTRIBUTES | \
3463 FILE_WRITE_EA | \
3464 FILE_APPEND_DATA | \
3465 SYNCHRONIZE)
3466
3467/* end winnt.h */
3468
3469#define WMIREG_ACTION_REGISTER 1
3470#define WMIREG_ACTION_DEREGISTER 2
3471#define WMIREG_ACTION_REREGISTER 3
3472#define WMIREG_ACTION_UPDATE_GUIDS 4
3473#define WMIREG_ACTION_BLOCK_IRPS 5
3474
3475#define WMIREGISTER 0
3476#define WMIUPDATE 1
3477
3480typedef VOID
3481(NTAPI FWMI_NOTIFICATION_CALLBACK)(
3482 PVOID Wnode,
3483 PVOID Context);
3484typedef FWMI_NOTIFICATION_CALLBACK *WMI_NOTIFICATION_CALLBACK;
3485
3486#ifndef _PCI_X_
3487#define _PCI_X_
3488
3489typedef struct _PCI_SLOT_NUMBER {
3490 union {
3491 struct {
3497 } u;
3499
3500#define PCI_TYPE0_ADDRESSES 6
3501#define PCI_TYPE1_ADDRESSES 2
3502#define PCI_TYPE2_ADDRESSES 5
3503
3504/* While MS WDK uses inheritance in C++, we cannot do this with gcc, as
3505 inheritance, even from a struct renders the type non-POD. So we use
3506 this hack */
3507#define PCI_COMMON_HEADER_LAYOUT \
3508 USHORT VendorID; \
3509 USHORT DeviceID; \
3510 USHORT Command; \
3511 USHORT Status; \
3512 UCHAR RevisionID; \
3513 UCHAR ProgIf; \
3514 UCHAR SubClass; \
3515 UCHAR BaseClass; \
3516 UCHAR CacheLineSize; \
3517 UCHAR LatencyTimer; \
3518 UCHAR HeaderType; \
3519 UCHAR BIST; \
3520 union { \
3521 struct _PCI_HEADER_TYPE_0 { \
3522 ULONG BaseAddresses[PCI_TYPE0_ADDRESSES]; \
3523 ULONG CIS; \
3524 USHORT SubVendorID; \
3525 USHORT SubSystemID; \
3526 ULONG ROMBaseAddress; \
3527 UCHAR CapabilitiesPtr; \
3528 UCHAR Reserved1[3]; \
3529 ULONG Reserved2; \
3530 UCHAR InterruptLine; \
3531 UCHAR InterruptPin; \
3532 UCHAR MinimumGrant; \
3533 UCHAR MaximumLatency; \
3534 } type0; \
3535 struct _PCI_HEADER_TYPE_1 { \
3536 ULONG BaseAddresses[PCI_TYPE1_ADDRESSES]; \
3537 UCHAR PrimaryBus; \
3538 UCHAR SecondaryBus; \
3539 UCHAR SubordinateBus; \
3540 UCHAR SecondaryLatency; \
3541 UCHAR IOBase; \
3542 UCHAR IOLimit; \
3543 USHORT SecondaryStatus; \
3544 USHORT MemoryBase; \
3545 USHORT MemoryLimit; \
3546 USHORT PrefetchBase; \
3547 USHORT PrefetchLimit; \
3548 ULONG PrefetchBaseUpper32; \
3549 ULONG PrefetchLimitUpper32; \
3550 USHORT IOBaseUpper16; \
3551 USHORT IOLimitUpper16; \
3552 UCHAR CapabilitiesPtr; \
3553 UCHAR Reserved1[3]; \
3554 ULONG ROMBaseAddress; \
3555 UCHAR InterruptLine; \
3556 UCHAR InterruptPin; \
3557 USHORT BridgeControl; \
3558 } type1; \
3559 struct _PCI_HEADER_TYPE_2 { \
3560 ULONG SocketRegistersBaseAddress; \
3561 UCHAR CapabilitiesPtr; \
3562 UCHAR Reserved; \
3563 USHORT SecondaryStatus; \
3564 UCHAR PrimaryBus; \
3565 UCHAR SecondaryBus; \
3566 UCHAR SubordinateBus; \
3567 UCHAR SecondaryLatency; \
3568 struct { \
3569 ULONG Base; \
3570 ULONG Limit; \
3571 } Range[PCI_TYPE2_ADDRESSES-1]; \
3572 UCHAR InterruptLine; \
3573 UCHAR InterruptPin; \
3574 USHORT BridgeControl; \
3575 } type2; \
3576 } u;
3577
3578typedef struct _PCI_COMMON_HEADER {
3581
3582#ifdef __cplusplus
3583typedef struct _PCI_COMMON_CONFIG {
3585 UCHAR DeviceSpecific[192];
3587#else
3588typedef struct _PCI_COMMON_CONFIG {
3590 UCHAR DeviceSpecific[192];
3592#endif
3593
3594#define PCI_COMMON_HDR_LENGTH (FIELD_OFFSET(PCI_COMMON_CONFIG, DeviceSpecific))
3595
3596#define PCI_EXTENDED_CONFIG_LENGTH 0x1000
3597
3598#define PCI_MAX_DEVICES 32
3599#define PCI_MAX_FUNCTION 8
3600#define PCI_MAX_BRIDGE_NUMBER 0xFF
3601#define PCI_INVALID_VENDORID 0xFFFF
3602
3603/* PCI_COMMON_CONFIG.HeaderType */
3604#define PCI_MULTIFUNCTION 0x80
3605#define PCI_DEVICE_TYPE 0x00
3606#define PCI_BRIDGE_TYPE 0x01
3607#define PCI_CARDBUS_BRIDGE_TYPE 0x02
3608
3609#define PCI_CONFIGURATION_TYPE(PciData) \
3610 (((PPCI_COMMON_CONFIG) (PciData))->HeaderType & ~PCI_MULTIFUNCTION)
3611
3612#define PCI_MULTIFUNCTION_DEVICE(PciData) \
3613 ((((PPCI_COMMON_CONFIG) (PciData))->HeaderType & PCI_MULTIFUNCTION) != 0)
3614
3615/* PCI_COMMON_CONFIG.Command */
3616#define PCI_ENABLE_IO_SPACE 0x0001
3617#define PCI_ENABLE_MEMORY_SPACE 0x0002
3618#define PCI_ENABLE_BUS_MASTER 0x0004
3619#define PCI_ENABLE_SPECIAL_CYCLES 0x0008
3620#define PCI_ENABLE_WRITE_AND_INVALIDATE 0x0010
3621#define PCI_ENABLE_VGA_COMPATIBLE_PALETTE 0x0020
3622#define PCI_ENABLE_PARITY 0x0040
3623#define PCI_ENABLE_WAIT_CYCLE 0x0080
3624#define PCI_ENABLE_SERR 0x0100
3625#define PCI_ENABLE_FAST_BACK_TO_BACK 0x0200
3626#define PCI_DISABLE_LEVEL_INTERRUPT 0x0400
3627
3628/* PCI_COMMON_CONFIG.Status */
3629#define PCI_STATUS_INTERRUPT_PENDING 0x0008
3630#define PCI_STATUS_CAPABILITIES_LIST 0x0010
3631#define PCI_STATUS_66MHZ_CAPABLE 0x0020
3632#define PCI_STATUS_UDF_SUPPORTED 0x0040
3633#define PCI_STATUS_FAST_BACK_TO_BACK 0x0080
3634#define PCI_STATUS_DATA_PARITY_DETECTED 0x0100
3635#define PCI_STATUS_DEVSEL 0x0600
3636#define PCI_STATUS_SIGNALED_TARGET_ABORT 0x0800
3637#define PCI_STATUS_RECEIVED_TARGET_ABORT 0x1000
3638#define PCI_STATUS_RECEIVED_MASTER_ABORT 0x2000
3639#define PCI_STATUS_SIGNALED_SYSTEM_ERROR 0x4000
3640#define PCI_STATUS_DETECTED_PARITY_ERROR 0x8000
3641
3642/* IO_STACK_LOCATION.Parameters.ReadWriteControl.WhichSpace */
3643
3644#define PCI_WHICHSPACE_CONFIG 0x0
3645#define PCI_WHICHSPACE_ROM 0x52696350 /* 'PciR' */
3646
3647#define PCI_CAPABILITY_ID_POWER_MANAGEMENT 0x01
3648#define PCI_CAPABILITY_ID_AGP 0x02
3649#define PCI_CAPABILITY_ID_VPD 0x03
3650#define PCI_CAPABILITY_ID_SLOT_ID 0x04
3651#define PCI_CAPABILITY_ID_MSI 0x05
3652#define PCI_CAPABILITY_ID_CPCI_HOTSWAP 0x06
3653#define PCI_CAPABILITY_ID_PCIX 0x07
3654#define PCI_CAPABILITY_ID_HYPERTRANSPORT 0x08
3655#define PCI_CAPABILITY_ID_VENDOR_SPECIFIC 0x09
3656#define PCI_CAPABILITY_ID_DEBUG_PORT 0x0A
3657#define PCI_CAPABILITY_ID_CPCI_RES_CTRL 0x0B
3658#define PCI_CAPABILITY_ID_SHPC 0x0C
3659#define PCI_CAPABILITY_ID_P2P_SSID 0x0D
3660#define PCI_CAPABILITY_ID_AGP_TARGET 0x0E
3661#define PCI_CAPABILITY_ID_SECURE 0x0F
3662#define PCI_CAPABILITY_ID_PCI_EXPRESS 0x10
3663#define PCI_CAPABILITY_ID_MSIX 0x11
3664
3669
3670typedef struct _PCI_PMC {
3685 } Support;
3687
3688typedef struct _PCI_PMCSR {
3696
3697typedef struct _PCI_PMCSR_BSE {
3702
3703typedef struct _PCI_PM_CAPABILITY {
3705 union {
3708 } PMC;
3709 union {
3711 USHORT AsUSHORT;
3712 } PMCSR;
3713 union {
3716 } PMCSR_BSE;
3719
3720typedef struct {
3722 union {
3723 struct {
3732 union {
3733 struct {
3752
3753#define PCI_EXPRESS_ADVANCED_ERROR_REPORTING_CAP_ID 0x0001
3754#define PCI_EXPRESS_VIRTUAL_CHANNEL_CAP_ID 0x0002
3755#define PCI_EXPRESS_DEVICE_SERIAL_NUMBER_CAP_ID 0x0003
3756#define PCI_EXPRESS_POWER_BUDGETING_CAP_ID 0x0004
3757#define PCI_EXPRESS_RC_LINK_DECLARATION_CAP_ID 0x0005
3758#define PCI_EXPRESS_RC_INTERNAL_LINK_CONTROL_CAP_ID 0x0006
3759#define PCI_EXPRESS_RC_EVENT_COLLECTOR_ENDPOINT_ASSOCIATION_CAP_ID 0x0007
3760#define PCI_EXPRESS_MFVC_CAP_ID 0x0008
3761#define PCI_EXPRESS_VC_AND_MFVC_CAP_ID 0x0009
3762#define PCI_EXPRESS_RCRB_HEADER_CAP_ID 0x000A
3763#define PCI_EXPRESS_SINGLE_ROOT_IO_VIRTUALIZATION_CAP_ID 0x0010
3764
3770
3776
3778 _ANONYMOUS_STRUCT struct {
3797
3799 _ANONYMOUS_STRUCT struct {
3818
3820 _ANONYMOUS_STRUCT struct {
3839
3841 _ANONYMOUS_STRUCT struct {
3854
3856 _ANONYMOUS_STRUCT struct {
3869
3871 _ANONYMOUS_STRUCT struct {
3881
3883 _ANONYMOUS_STRUCT struct {
3891
3893 _ANONYMOUS_STRUCT struct {
3906
3908 _ANONYMOUS_STRUCT struct {
3918
3920 _ANONYMOUS_STRUCT struct {
3939
3941 _ANONYMOUS_STRUCT struct {
3960
3962 _ANONYMOUS_STRUCT struct {
3981
3983 _ANONYMOUS_STRUCT struct {
3989
3990#define ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING 0x00000001
3991#define ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING 0x00000002
3992#define ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING 0x00000004
3993
3994#define ROOT_CMD_ERROR_REPORTING_ENABLE_MASK \
3995 (ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING | \
3996 ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING | \
3997 ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING)
3998
4007 ULONG HeaderLog[4];
4012 ULONG SecHeaderLog[4];
4014
4023 ULONG HeaderLog[4];
4028
4037 ULONG HeaderLog[4];
4042 ULONG SecHeaderLog[4];
4044
4046 _ANONYMOUS_STRUCT struct {
4053
4055 _ANONYMOUS_STRUCT struct {
4065
4067 _ANONYMOUS_STRUCT struct {
4073
4075 _ANONYMOUS_STRUCT struct {
4081
4101
4102/* PCI device classes */
4103#define PCI_CLASS_PRE_20 0x00
4104#define PCI_CLASS_MASS_STORAGE_CTLR 0x01
4105#define PCI_CLASS_NETWORK_CTLR 0x02
4106#define PCI_CLASS_DISPLAY_CTLR 0x03
4107#define PCI_CLASS_MULTIMEDIA_DEV 0x04
4108#define PCI_CLASS_MEMORY_CTLR 0x05
4109#define PCI_CLASS_BRIDGE_DEV 0x06
4110#define PCI_CLASS_SIMPLE_COMMS_CTLR 0x07
4111#define PCI_CLASS_BASE_SYSTEM_DEV 0x08
4112#define PCI_CLASS_INPUT_DEV 0x09
4113#define PCI_CLASS_DOCKING_STATION 0x0a
4114#define PCI_CLASS_PROCESSOR 0x0b
4115#define PCI_CLASS_SERIAL_BUS_CTLR 0x0c
4116#define PCI_CLASS_WIRELESS_CTLR 0x0d
4117#define PCI_CLASS_INTELLIGENT_IO_CTLR 0x0e
4118#define PCI_CLASS_SATELLITE_COMMS_CTLR 0x0f
4119#define PCI_CLASS_ENCRYPTION_DECRYPTION 0x10
4120#define PCI_CLASS_DATA_ACQ_SIGNAL_PROC 0x11
4121#define PCI_CLASS_NOT_DEFINED 0xff
4122
4123/* PCI device subclasses for class 0 */
4124#define PCI_SUBCLASS_PRE_20_NON_VGA 0x00
4125#define PCI_SUBCLASS_PRE_20_VGA 0x01
4126
4127/* PCI device subclasses for class 1 (mass storage controllers)*/
4128#define PCI_SUBCLASS_MSC_SCSI_BUS_CTLR 0x00
4129#define PCI_SUBCLASS_MSC_IDE_CTLR 0x01
4130#define PCI_SUBCLASS_MSC_FLOPPY_CTLR 0x02
4131#define PCI_SUBCLASS_MSC_IPI_CTLR 0x03
4132#define PCI_SUBCLASS_MSC_RAID_CTLR 0x04
4133#define PCI_SUBCLASS_MSC_AHCI_CTLR 0x06
4134#define PCI_SUBCLASS_MSC_OTHER 0x80
4135
4136/* PCI device subclasses for class 2 (network controllers)*/
4137#define PCI_SUBCLASS_NET_ETHERNET_CTLR 0x00
4138#define PCI_SUBCLASS_NET_TOKEN_RING_CTLR 0x01
4139#define PCI_SUBCLASS_NET_FDDI_CTLR 0x02
4140#define PCI_SUBCLASS_NET_ATM_CTLR 0x03
4141#define PCI_SUBCLASS_NET_ISDN_CTLR 0x04
4142#define PCI_SUBCLASS_NET_OTHER 0x80
4143
4144/* PCI device subclasses for class 3 (display controllers)*/
4145#define PCI_SUBCLASS_VID_VGA_CTLR 0x00
4146#define PCI_SUBCLASS_VID_XGA_CTLR 0x01
4147#define PCI_SUBCLASS_VID_3D_CTLR 0x02
4148#define PCI_SUBCLASS_VID_OTHER 0x80
4149
4150/* PCI device subclasses for class 4 (multimedia device)*/
4151#define PCI_SUBCLASS_MM_VIDEO_DEV 0x00
4152#define PCI_SUBCLASS_MM_AUDIO_DEV 0x01
4153#define PCI_SUBCLASS_MM_TELEPHONY_DEV 0x02
4154#define PCI_SUBCLASS_MM_OTHER 0x80
4155
4156/* PCI device subclasses for class 5 (memory controller)*/
4157#define PCI_SUBCLASS_MEM_RAM 0x00
4158#define PCI_SUBCLASS_MEM_FLASH 0x01
4159#define PCI_SUBCLASS_MEM_OTHER 0x80
4160
4161/* PCI device subclasses for class 6 (bridge device)*/
4162#define PCI_SUBCLASS_BR_HOST 0x00
4163#define PCI_SUBCLASS_BR_ISA 0x01
4164#define PCI_SUBCLASS_BR_EISA 0x02
4165#define PCI_SUBCLASS_BR_MCA 0x03
4166#define PCI_SUBCLASS_BR_PCI_TO_PCI 0x04
4167#define PCI_SUBCLASS_BR_PCMCIA 0x05
4168#define PCI_SUBCLASS_BR_NUBUS 0x06
4169#define PCI_SUBCLASS_BR_CARDBUS 0x07
4170#define PCI_SUBCLASS_BR_RACEWAY 0x08
4171#define PCI_SUBCLASS_BR_OTHER 0x80
4172
4173#define PCI_SUBCLASS_COM_SERIAL 0x00
4174#define PCI_SUBCLASS_COM_PARALLEL 0x01
4175#define PCI_SUBCLASS_COM_MULTIPORT 0x02
4176#define PCI_SUBCLASS_COM_MODEM 0x03
4177#define PCI_SUBCLASS_COM_OTHER 0x80
4178
4179#define PCI_SUBCLASS_SYS_INTERRUPT_CTLR 0x00
4180#define PCI_SUBCLASS_SYS_DMA_CTLR 0x01
4181#define PCI_SUBCLASS_SYS_SYSTEM_TIMER 0x02
4182#define PCI_SUBCLASS_SYS_REAL_TIME_CLOCK 0x03
4183#define PCI_SUBCLASS_SYS_GEN_HOTPLUG_CTLR 0x04
4184#define PCI_SUBCLASS_SYS_SDIO_CTRL 0x05
4185#define PCI_SUBCLASS_SYS_OTHER 0x80
4186
4187#define PCI_SUBCLASS_INP_KEYBOARD 0x00
4188#define PCI_SUBCLASS_INP_DIGITIZER 0x01
4189#define PCI_SUBCLASS_INP_MOUSE 0x02
4190#define PCI_SUBCLASS_INP_SCANNER 0x03
4191#define PCI_SUBCLASS_INP_GAMEPORT 0x04
4192#define PCI_SUBCLASS_INP_OTHER 0x80
4193
4194#define PCI_SUBCLASS_DOC_GENERIC 0x00
4195#define PCI_SUBCLASS_DOC_OTHER 0x80
4196
4197#define PCI_SUBCLASS_PROC_386 0x00
4198#define PCI_SUBCLASS_PROC_486 0x01
4199#define PCI_SUBCLASS_PROC_PENTIUM 0x02
4200#define PCI_SUBCLASS_PROC_ALPHA 0x10
4201#define PCI_SUBCLASS_PROC_POWERPC 0x20
4202#define PCI_SUBCLASS_PROC_COPROCESSOR 0x40
4203
4204/* PCI device subclasses for class C (serial bus controller)*/
4205#define PCI_SUBCLASS_SB_IEEE1394 0x00
4206#define PCI_SUBCLASS_SB_ACCESS 0x01
4207#define PCI_SUBCLASS_SB_SSA 0x02
4208#define PCI_SUBCLASS_SB_USB 0x03
4209#define PCI_SUBCLASS_SB_FIBRE_CHANNEL 0x04
4210#define PCI_SUBCLASS_SB_SMBUS 0x05
4211
4212#define PCI_SUBCLASS_WIRELESS_IRDA 0x00
4213#define PCI_SUBCLASS_WIRELESS_CON_IR 0x01
4214#define PCI_SUBCLASS_WIRELESS_RF 0x10
4215#define PCI_SUBCLASS_WIRELESS_OTHER 0x80
4216
4217#define PCI_SUBCLASS_INTIO_I2O 0x00
4218
4219#define PCI_SUBCLASS_SAT_TV 0x01
4220#define PCI_SUBCLASS_SAT_AUDIO 0x02
4221#define PCI_SUBCLASS_SAT_VOICE 0x03
4222#define PCI_SUBCLASS_SAT_DATA 0x04
4223
4224#define PCI_SUBCLASS_CRYPTO_NET_COMP 0x00
4225#define PCI_SUBCLASS_CRYPTO_ENTERTAINMENT 0x10
4226#define PCI_SUBCLASS_CRYPTO_OTHER 0x80
4227
4228#define PCI_SUBCLASS_DASP_DPIO 0x00
4229#define PCI_SUBCLASS_DASP_OTHER 0x80
4230
4231#define PCI_ADDRESS_IO_SPACE 0x00000001
4232#define PCI_ADDRESS_MEMORY_TYPE_MASK 0x00000006
4233#define PCI_ADDRESS_MEMORY_PREFETCHABLE 0x00000008
4234#define PCI_ADDRESS_IO_ADDRESS_MASK 0xfffffffc
4235#define PCI_ADDRESS_MEMORY_ADDRESS_MASK 0xfffffff0
4236#define PCI_ADDRESS_ROM_ADDRESS_MASK 0xfffff800
4237
4238#define PCI_TYPE_32BIT 0
4239#define PCI_TYPE_20BIT 2
4240#define PCI_TYPE_64BIT 4
4241
4242#define PCI_ROMADDRESS_ENABLED 0x00000001
4243
4244#endif /* _PCI_X_ */
4245
4246#define PCI_EXPRESS_LINK_QUIESCENT_INTERFACE_VERSION 1
4247
4250typedef NTSTATUS
4251(NTAPI PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE)(
4253typedef PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE *PPCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE;
4254
4257typedef NTSTATUS
4258(NTAPI PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE)(
4260typedef PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE *PPCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE;
4261
4271
4272#define PCI_EXPRESS_ROOT_PORT_INTERFACE_VERSION 1
4273
4274typedef ULONG
4279 _In_ ULONG Length);
4280
4281typedef ULONG
4286 _In_ ULONG Length);
4287
4297
4298#define PCI_MSIX_TABLE_CONFIG_INTERFACE_VERSION 1
4299
4301typedef NTSTATUS
4302(NTAPI PCI_MSIX_SET_ENTRY)(
4306typedef PCI_MSIX_SET_ENTRY *PPCI_MSIX_SET_ENTRY;
4307
4309typedef NTSTATUS
4310(NTAPI PCI_MSIX_MASKUNMASK_ENTRY)(
4313typedef PCI_MSIX_MASKUNMASK_ENTRY *PPCI_MSIX_MASKUNMASK_ENTRY;
4314
4316typedef NTSTATUS
4317(NTAPI PCI_MSIX_GET_ENTRY)(
4322typedef PCI_MSIX_GET_ENTRY *PPCI_MSIX_GET_ENTRY;
4323
4325typedef NTSTATUS
4326(NTAPI PCI_MSIX_GET_TABLE_SIZE)(
4329typedef PCI_MSIX_GET_TABLE_SIZE *PPCI_MSIX_GET_TABLE_SIZE;
4330
4343
4344#define PCI_MSIX_TABLE_CONFIG_MINIMUM_SIZE \
4345 RTL_SIZEOF_THROUGH_FIELD(PCI_MSIX_TABLE_CONFIG_INTERFACE, UnmaskTableEntry)
4346
4348$if (_NTDDK_)
4349#ifndef _ARC_DDK_
4350#define _ARC_DDK_
4351typedef enum _CONFIGURATION_TYPE {
4352 ArcSystem,
4361 TcAdapter,
4363 DtiAdapter,
4395#endif /* !_ARC_DDK_ */
4396
4397/*
4398** IRP function codes
4399*/
4400
4401#define IRP_MN_QUERY_DIRECTORY 0x01
4402#define IRP_MN_NOTIFY_CHANGE_DIRECTORY 0x02
4403
4404#define IRP_MN_USER_FS_REQUEST 0x00
4405#define IRP_MN_MOUNT_VOLUME 0x01
4406#define IRP_MN_VERIFY_VOLUME 0x02
4407#define IRP_MN_LOAD_FILE_SYSTEM 0x03
4408#define IRP_MN_TRACK_LINK 0x04
4409#define IRP_MN_KERNEL_CALL 0x04
4410
4411#define IRP_MN_LOCK 0x01
4412#define IRP_MN_UNLOCK_SINGLE 0x02
4413#define IRP_MN_UNLOCK_ALL 0x03
4414#define IRP_MN_UNLOCK_ALL_BY_KEY 0x04
4415
4416#define IRP_MN_FLUSH_AND_PURGE 0x01
4417
4418#define IRP_MN_NORMAL 0x00
4419#define IRP_MN_DPC 0x01
4420#define IRP_MN_MDL 0x02
4421#define IRP_MN_COMPLETE 0x04
4422#define IRP_MN_COMPRESSED 0x08
4423
4424#define IRP_MN_MDL_DPC (IRP_MN_MDL | IRP_MN_DPC)
4425#define IRP_MN_COMPLETE_MDL (IRP_MN_COMPLETE | IRP_MN_MDL)
4426#define IRP_MN_COMPLETE_MDL_DPC (IRP_MN_COMPLETE_MDL | IRP_MN_DPC)
4427
4428#define IRP_MN_QUERY_LEGACY_BUS_INFORMATION 0x18
4429
4430#define IO_CHECK_CREATE_PARAMETERS 0x0200
4431#define IO_ATTACH_DEVICE 0x0400
4432#define IO_IGNORE_SHARE_ACCESS_CHECK 0x0800
4433
4437 _In_ PUNICODE_STRING PathName,
4441 _In_ CONFIGURATION_TYPE ControllerType,
4442 _In_ ULONG ControllerNumber,
4443 _In_ PKEY_VALUE_FULL_INFORMATION *ControllerInformation,
4444 _In_ CONFIGURATION_TYPE PeripheralType,
4445 _In_ ULONG PeripheralNumber,
4446 _In_ PKEY_VALUE_FULL_INFORMATION *PeripheralInformation);
4447
4454
4455typedef VOID
4459 _In_ ULONG Count);
4460
4461typedef struct _CONTROLLER_OBJECT {
4469
4470#define DRVO_REINIT_REGISTERED 0x00000008
4471#define DRVO_INITIALIZED 0x00000010
4472#define DRVO_BOOTREINIT_REGISTERED 0x00000020
4473#define DRVO_LEGACY_RESOURCES 0x00000040
4474
4488
4489typedef struct _DISK_SIGNATURE {
4491 _ANONYMOUS_UNION union {
4492 struct {
4495 } Mbr;
4496 struct {
4498 } Gpt;
4501
4502typedef struct _TXN_PARAMETER_BLOCK {
4507
4508#define TXF_MINIVERSION_DEFAULT_VIEW (0xFFFE)
4509
4516
4527
4530typedef NTSTATUS
4531(NTAPI *PGET_LOCATION_STRING)(
4533 _Outptr_
4535 _When_(return == 0, __drv_allocatesMem(Mem)))
4537
4544 PGET_LOCATION_STRING GetLocationString;
4546
4547typedef enum _ARBITER_ACTION {
4559
4565
4571
4577
4581
4585
4592
4596
4600
4601typedef struct _ARBITER_PARAMETERS {
4602 union {
4612
4621
4622typedef enum _ARBITER_RESULT {
4628
4629#define ARBITER_FLAG_BOOT_CONFIG 0x00000001
4630
4631typedef struct _ARBITER_LIST_ENTRY {
4646
4652
4653#define ARBITER_PARTIAL 0x00000001
4654
4655typedef struct _ARBITER_INTERFACE {
4664
4669
4675 _In_opt_ ULONG AlternativesCount,
4676 _In_reads_opt_(AlternativesCount) IO_RESOURCE_DESCRIPTOR Alternatives[],
4679
4685 _Out_ PULONG TargetCount,
4687
4697
4698typedef struct _PCI_AGP_CAPABILITY {
4718 } AGPStatus;
4732 } AGPCommand;
4734
4744
4753
4754typedef struct _PCI_AGP_CONTROL {
4761
4767
4773
4783
4784#define PCI_AGP_RATE_1X 0x1
4785#define PCI_AGP_RATE_2X 0x2
4786#define PCI_AGP_RATE_4X 0x4
4787
4788#define PCIX_MODE_CONVENTIONAL_PCI 0x0
4789#define PCIX_MODE1_66MHZ 0x1
4790#define PCIX_MODE1_100MHZ 0x2
4791#define PCIX_MODE1_133MHZ 0x3
4792#define PCIX_MODE2_266_66MHZ 0x9
4793#define PCIX_MODE2_266_100MHZ 0xA
4794#define PCIX_MODE2_266_133MHZ 0xB
4795#define PCIX_MODE2_533_66MHZ 0xD
4796#define PCIX_MODE2_533_100MHZ 0xE
4797#define PCIX_MODE2_533_133MHZ 0xF
4798
4799#define PCIX_VERSION_MODE1_ONLY 0x0
4800#define PCIX_VERSION_MODE2_ECC 0x1
4801#define PCIX_VERSION_DUAL_MODE_ECC 0x2
4802
4805 union {
4806 _ANONYMOUS_STRUCT struct {
4820 } SecondaryStatus;
4821 union {
4822 _ANONYMOUS_STRUCT struct {
4838 } BridgeStatus;
4843 union {
4844 _ANONYMOUS_STRUCT struct {
4856 ULONG Rsvd:1;
4860 ULONG AsULONG;
4861 } EccControlStatus;
4866
4873
4874#define OSC_FIRMWARE_FAILURE 0x02
4875#define OSC_UNRECOGNIZED_UUID 0x04
4876#define OSC_UNRECOGNIZED_REVISION 0x08
4877#define OSC_CAPABILITIES_MASKED 0x10
4878
4879#define PCI_ROOT_BUS_OSC_METHOD_CAPABILITY_REVISION 0x01
4880
4882 union {
4883 _ANONYMOUS_STRUCT struct {
4893 } u;
4895
4897 union {
4898 _ANONYMOUS_STRUCT struct {
4907 } u;
4909
4916
4917typedef enum {
4921
4924 _ANONYMOUS_STRUCT struct {
4935
4937 _ANONYMOUS_STRUCT struct {
4946
4948 _ANONYMOUS_STRUCT struct {
4963
4964#define PCI_EXPRESS_AER_DEVICE_CONTROL_MASK 0x07;
4965
4967 _ANONYMOUS_STRUCT struct {
4983
4984#define PCI_EXPRESS_AER_DEVICE_STATUS_MASK 0x0F;
4985
4987 _ANONYMOUS_STRUCT struct {
4998
5000 _ANONYMOUS_STRUCT struct {
5014
5016 _ANONYMOUS_STRUCT struct {
5029
5031 _ANONYMOUS_STRUCT struct {
5042
5044 _ANONYMOUS_STRUCT struct {
5060
5062 _ANONYMOUS_STRUCT struct {
5078
5080 _ANONYMOUS_STRUCT struct {
5094
5096 _ANONYMOUS_STRUCT struct {
5106
5108 _ANONYMOUS_STRUCT struct {
5114
5116 _ANONYMOUS_STRUCT struct {
5124
5141
5142typedef enum {
5144 MRLOpen
5146
5147typedef enum {
5151
5152typedef enum {
5157
5158typedef enum {
5160 PowerOff
5162
5163typedef enum {
5167
5168typedef enum {
5174
5175typedef enum {
5185
5186typedef enum {
5196
5197typedef enum {
5208
5209typedef enum {
5217
5219 _ANONYMOUS_STRUCT struct {
5226
5234
5238 union {
5241 struct {
5245 } u;
5247
5252
5253typedef VOID
5255 _In_ struct _BUS_HANDLER *BusHandler,
5256 _In_ struct _BUS_HANDLER *RootHandler,
5258 _In_ PPCI_COMMON_CONFIG PciData);
5259
5260typedef VOID
5262 _In_ struct _BUS_HANDLER *BusHandler,
5263 _In_ struct _BUS_HANDLER *RootHandler,
5265 _In_ PPCI_COMMON_CONFIG PciNewData,
5266 _In_ PPCI_COMMON_CONFIG PciOldData);
5267
5268typedef VOID
5270 _In_ struct _BUS_HANDLER *BusHandler,
5271 _In_ PCI_SLOT_NUMBER Slot,
5274 _In_ ULONG Length);
5275
5276#define PCI_DATA_TAG ' ICP'
5277#define PCI_DATA_VERSION 1
5278
5279typedef struct _PCIBUSDATA {
5289
5290#ifndef _PCIINTRF_X_
5291#define _PCIINTRF_X_
5292
5293typedef ULONG
5296 _In_ ULONG BusOffset,
5297 _In_ ULONG Slot,
5300 _In_ ULONG Length);
5301
5302typedef VOID
5305 _In_ PPCI_COMMON_CONFIG PciData);
5306
5307typedef VOID
5310 _In_ PPCI_COMMON_CONFIG PciNewData,
5311 _In_ PPCI_COMMON_CONFIG PciOldData);
5312
5313typedef VOID
5316 _Out_ PPCI_ROOT_BUS_HARDWARE_CAPABILITY HardwareCapability);
5317
5318typedef VOID
5321 _In_ BOOLEAN EnableWake);
5322
5336
5337#define PCI_BUS_INTERFACE_STANDARD_VERSION 1
5338
5339#endif /* _PCIINTRF_X_ */
5340
5341#if (NTDDI_VERSION >= NTDDI_WIN7)
5342
5343#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX 0x00004000
5344#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX 0x00008000
5345#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX \
5346 (FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX | \
5347 FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX)
5348
5349#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_DEPRECATED 0x00000200
5350#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_DEPRECATED 0x00000300
5351#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_DEPRECATED 0x00000300
5352
5353#else
5354
5355#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL 0x00000200
5356#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL 0x00000300
5357#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK 0x00000300
5358
5359#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL
5360#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL
5361#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK
5362
5363#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
5364
5365#define FILE_CHARACTERISTICS_PROPAGATED (FILE_REMOVABLE_MEDIA | \
5366 FILE_READ_ONLY_DEVICE | \
5367 FILE_FLOPPY_DISKETTE | \
5368 FILE_WRITE_ONCE_MEDIA | \
5369 FILE_DEVICE_SECURE_OPEN)
5370
5371typedef struct _FILE_ALIGNMENT_INFORMATION {
5374
5375typedef struct _FILE_NAME_INFORMATION {
5377 WCHAR FileName[1];
5379
5380
5381typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION {
5383 ULONG ReparseTag;
5385
5386typedef struct _FILE_DISPOSITION_INFORMATION {
5389
5390typedef struct _FILE_END_OF_FILE_INFORMATION {
5391 LARGE_INTEGER EndOfFile;
5393
5397
5400 WCHAR VolumeLabel[1];
5402
5403typedef struct _FILE_FS_VOLUME_INFORMATION {
5404 LARGE_INTEGER VolumeCreationTime;
5405 ULONG VolumeSerialNumber;
5406 ULONG VolumeLabelLength;
5407 BOOLEAN SupportsObjects;
5408 WCHAR VolumeLabel[1];
5410
5411typedef struct _FILE_FS_SIZE_INFORMATION {
5412 LARGE_INTEGER TotalAllocationUnits;
5413 LARGE_INTEGER AvailableAllocationUnits;
5414 ULONG SectorsPerAllocationUnit;
5415 ULONG BytesPerSector;
5417
5418typedef struct _FILE_FS_FULL_SIZE_INFORMATION {
5419 LARGE_INTEGER TotalAllocationUnits;
5420 LARGE_INTEGER CallerAvailableAllocationUnits;
5421 LARGE_INTEGER ActualAvailableAllocationUnits;
5422 ULONG SectorsPerAllocationUnit;
5423 ULONG BytesPerSector;
5425
5427 UCHAR ObjectId[16];
5428 UCHAR ExtendedInfo[48];
5430
5435
5436#define IOCTL_AVIO_ALLOCATE_STREAM CTL_CODE(FILE_DEVICE_AVIO, 1, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
5437#define IOCTL_AVIO_FREE_STREAM CTL_CODE(FILE_DEVICE_AVIO, 2, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
5438#define IOCTL_AVIO_MODIFY_STREAM CTL_CODE(FILE_DEVICE_AVIO, 3, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
5439
5440typedef enum _BUS_DATA_TYPE {
5456
5457/* Some Server 2003 DDK definitions */
5458#define PCI_INT_ROUTE_INTRF_STANDARD_VER 1
5459
5467
5468typedef struct _ROUTING_TOKEN {
5473
5477 OUT ULONG *Bus,
5478 OUT ULONG *PciSlot,
5479 OUT UCHAR *InterruptLine,
5480 OUT UCHAR *InterruptPin,
5481 OUT UCHAR *ClassCode,
5482 OUT UCHAR *SubClassCode,
5483 OUT PDEVICE_OBJECT *ParentPdo,
5484 OUT ROUTING_TOKEN *RoutingToken,
5485 OUT UCHAR *Flags);
5486
5490 IN PROUTING_TOKEN RoutingToken);
5491
5492typedef VOID
5495 IN UCHAR LineRegister);
5496
5507
5516
5517/* FIXME : These definitions don't exist in public headers */
5518
5519#define PCI_CB_INTRF_VERSION 1
5520#define PCI_PME_INTRF_STANDARD_VER 1
5521#define PNP_LOCATION_INTERFACE_VERSION 1
5522
5523DEFINE_GUID(GUID_PCI_CARDBUS_INTERFACE_PRIVATE, 0xcca82f31, 0x54d6, 0x11d1, 0x82, 0x24, 0x00, 0xa0, 0xc9, 0x32, 0x43, 0x85);
5524DEFINE_GUID(GUID_PCI_PME_INTERFACE, 0xaac7e6ac, 0xbb0b, 0x11d2, 0xb4, 0x84, 0x00, 0xc0, 0x4f, 0x72, 0xde, 0x8b);
5525
5530
5534
5538 IN PIRP Irp);
5539
5540typedef VOID
5543 IN BOOLEAN PmeEnable);
5544
5545typedef VOID
5548
5549typedef VOID
5552 OUT PBOOLEAN PmeCapable,
5553 OUT PBOOLEAN PmeStatus,
5554 OUT PBOOLEAN PmeEnable);
5555
5567
5568typedef struct _PCI_PME_INTERFACE {
5578
5580$if (_NTIFS_)
5581
5582#define FILE_OPLOCK_BROKEN_TO_LEVEL_2 0x00000007
5583#define FILE_OPLOCK_BROKEN_TO_NONE 0x00000008
5584#define FILE_OPBATCH_BREAK_UNDERWAY 0x00000009
5585
5586/* also in winnt.h */
5587#define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001
5588#define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002
5589#define FILE_NOTIFY_CHANGE_NAME 0x00000003
5590#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004
5591#define FILE_NOTIFY_CHANGE_SIZE 0x00000008
5592#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010
5593#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020
5594#define FILE_NOTIFY_CHANGE_CREATION 0x00000040
5595#define FILE_NOTIFY_CHANGE_EA 0x00000080
5596#define FILE_NOTIFY_CHANGE_SECURITY 0x00000100
5597#define FILE_NOTIFY_CHANGE_STREAM_NAME 0x00000200
5598#define FILE_NOTIFY_CHANGE_STREAM_SIZE 0x00000400
5599#define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800
5600#define FILE_NOTIFY_VALID_MASK 0x00000fff
5601
5602#define FILE_ACTION_ADDED 0x00000001
5603#define FILE_ACTION_REMOVED 0x00000002
5604#define FILE_ACTION_MODIFIED 0x00000003
5605#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004
5606#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005
5607#define FILE_ACTION_ADDED_STREAM 0x00000006
5608#define FILE_ACTION_REMOVED_STREAM 0x00000007
5609#define FILE_ACTION_MODIFIED_STREAM 0x00000008
5610#define FILE_ACTION_REMOVED_BY_DELETE 0x00000009
5611#define FILE_ACTION_ID_NOT_TUNNELLED 0x0000000A
5612#define FILE_ACTION_TUNNELLED_ID_COLLISION 0x0000000B
5613/* end winnt.h */
5614
5615#define FILE_PIPE_BYTE_STREAM_TYPE 0x00000000
5616#define FILE_PIPE_MESSAGE_TYPE 0x00000001
5617
5618#define FILE_PIPE_ACCEPT_REMOTE_CLIENTS 0x00000000
5619#define FILE_PIPE_REJECT_REMOTE_CLIENTS 0x00000002
5620
5621#define FILE_PIPE_ACCEPT_REMOTE_CLIENTS 0x00000000
5622#define FILE_PIPE_REJECT_REMOTE_CLIENTS 0x00000002
5623#define FILE_PIPE_TYPE_VALID_MASK 0x00000003
5624
5625#define FILE_PIPE_BYTE_STREAM_MODE 0x00000000
5626#define FILE_PIPE_MESSAGE_MODE 0x00000001
5627
5628#define FILE_PIPE_QUEUE_OPERATION 0x00000000
5629#define FILE_PIPE_COMPLETE_OPERATION 0x00000001
5630
5631#define FILE_PIPE_INBOUND 0x00000000
5632#define FILE_PIPE_OUTBOUND 0x00000001
5633#define FILE_PIPE_FULL_DUPLEX 0x00000002
5634
5635#define FILE_PIPE_DISCONNECTED_STATE 0x00000001
5636#define FILE_PIPE_LISTENING_STATE 0x00000002
5637#define FILE_PIPE_CONNECTED_STATE 0x00000003
5638#define FILE_PIPE_CLOSING_STATE 0x00000004
5639
5640#define FILE_PIPE_CLIENT_END 0x00000000
5641#define FILE_PIPE_SERVER_END 0x00000001
5642
5643#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
5644#define FILE_CASE_PRESERVED_NAMES 0x00000002
5645#define FILE_UNICODE_ON_DISK 0x00000004
5646#define FILE_PERSISTENT_ACLS 0x00000008
5647#define FILE_FILE_COMPRESSION 0x00000010
5648#define FILE_VOLUME_QUOTAS 0x00000020
5649#define FILE_SUPPORTS_SPARSE_FILES 0x00000040
5650#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
5651#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
5652#define FILE_VOLUME_IS_COMPRESSED 0x00008000
5653#define FILE_SUPPORTS_OBJECT_IDS 0x00010000
5654#define FILE_SUPPORTS_ENCRYPTION 0x00020000
5655#define FILE_NAMED_STREAMS 0x00040000
5656#define FILE_READ_ONLY_VOLUME 0x00080000
5657#define FILE_SEQUENTIAL_WRITE_ONCE 0x00100000
5658#define FILE_SUPPORTS_TRANSACTIONS 0x00200000
5659#define FILE_SUPPORTS_HARD_LINKS 0x00400000
5660#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000
5661#define FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000
5662#define FILE_SUPPORTS_USN_JOURNAL 0x02000000
5663#define FILE_SUPPORTS_INTEGRITY_STREAMS 0x04000000
5664#define FILE_SUPPORTS_BLOCK_REFCOUNTING 0x08000000
5665#define FILE_SUPPORTS_SPARSE_VDL 0x10000000
5666#define FILE_DAX_VOLUME 0x20000000
5667
5668#define FILE_NEED_EA 0x00000080
5669
5670#define FILE_EA_TYPE_BINARY 0xfffe
5671#define FILE_EA_TYPE_ASCII 0xfffd
5672#define FILE_EA_TYPE_BITMAP 0xfffb
5673#define FILE_EA_TYPE_METAFILE 0xfffa
5674#define FILE_EA_TYPE_ICON 0xfff9
5675#define FILE_EA_TYPE_EA 0xffee
5676#define FILE_EA_TYPE_MVMT 0xffdf
5677#define FILE_EA_TYPE_MVST 0xffde
5678#define FILE_EA_TYPE_ASN1 0xffdd
5679#define FILE_EA_TYPE_FAMILY_IDS 0xff01
5680
5681typedef struct _FILE_NOTIFY_INFORMATION {
5682 ULONG NextEntryOffset;
5683 ULONG Action;
5685 WCHAR FileName[1];
5687
5688typedef struct _FILE_DIRECTORY_INFORMATION {
5689 ULONG NextEntryOffset;
5690 ULONG FileIndex;
5691 LARGE_INTEGER CreationTime;
5692 LARGE_INTEGER LastAccessTime;
5693 LARGE_INTEGER LastWriteTime;
5694 LARGE_INTEGER ChangeTime;
5695 LARGE_INTEGER EndOfFile;
5699 WCHAR FileName[1];
5701
5716
5732
5733typedef struct _FILE_BOTH_DIR_INFORMATION {
5734 ULONG NextEntryOffset;
5735 ULONG FileIndex;
5736 LARGE_INTEGER CreationTime;
5737 LARGE_INTEGER LastAccessTime;
5738 LARGE_INTEGER LastWriteTime;
5739 LARGE_INTEGER ChangeTime;
5740 LARGE_INTEGER EndOfFile;
5744 ULONG EaSize;
5745 CCHAR ShortNameLength;
5746 WCHAR ShortName[12];
5747 WCHAR FileName[1];
5749
5767
5768typedef struct _FILE_NAMES_INFORMATION {
5769 ULONG NextEntryOffset;
5770 ULONG FileIndex;
5772 WCHAR FileName[1];
5774
5776 ULONG NextEntryOffset;
5777 ULONG FileIndex;
5778 LARGE_INTEGER CreationTime;
5779 LARGE_INTEGER LastAccessTime;
5780 LARGE_INTEGER LastWriteTime;
5781 LARGE_INTEGER ChangeTime;
5782 LARGE_INTEGER EndOfFile;
5786 LARGE_INTEGER FileId;
5787 GUID LockingTransactionId;
5788 ULONG TxInfoFlags;
5789 WCHAR FileName[1];
5791
5792#define FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_WRITELOCKED 0x00000001
5793#define FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_VISIBLE_TO_TX 0x00000002
5794#define FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_VISIBLE_OUTSIDE_TX 0x00000004
5795
5796typedef struct _FILE_OBJECTID_INFORMATION {
5797 LONGLONG FileReference;
5798 UCHAR ObjectId[16];
5799 _ANONYMOUS_UNION union {
5800 _ANONYMOUS_STRUCT struct {
5801 UCHAR BirthVolumeId[16];
5802 UCHAR BirthObjectId[16];
5803 UCHAR DomainId[16];
5805 UCHAR ExtendedInfo[48];
5808
5809#define ANSI_DOS_STAR ('<')
5810#define ANSI_DOS_QM ('>')
5811#define ANSI_DOS_DOT ('"')
5812
5813#define DOS_STAR (L'<')
5814#define DOS_QM (L'>')
5815#define DOS_DOT (L'"')
5816
5817typedef struct _FILE_INTERNAL_INFORMATION {
5818 LARGE_INTEGER IndexNumber;
5820
5821typedef struct _FILE_EA_INFORMATION {
5822 ULONG EaSize;
5824
5825typedef struct _FILE_ACCESS_INFORMATION {
5826 ACCESS_MASK AccessFlags;
5828
5829typedef struct _FILE_MODE_INFORMATION {
5830 ULONG Mode;
5832
5833typedef struct _FILE_ALL_INFORMATION {
5834 FILE_BASIC_INFORMATION BasicInformation;
5835 FILE_STANDARD_INFORMATION StandardInformation;
5836 FILE_INTERNAL_INFORMATION InternalInformation;
5837 FILE_EA_INFORMATION EaInformation;
5838 FILE_ACCESS_INFORMATION AccessInformation;
5839 FILE_POSITION_INFORMATION PositionInformation;
5840 FILE_MODE_INFORMATION ModeInformation;
5841 FILE_ALIGNMENT_INFORMATION AlignmentInformation;
5842 FILE_NAME_INFORMATION NameInformation;
5844
5845typedef struct _FILE_ALLOCATION_INFORMATION {
5848
5857
5858typedef struct _FILE_LINK_INFORMATION {
5859 BOOLEAN ReplaceIfExists;
5862 WCHAR FileName[1];
5864
5871
5872typedef struct _FILE_RENAME_INFORMATION {
5876 WCHAR FileName[1];
5878
5879typedef struct _FILE_STREAM_INFORMATION {
5880 ULONG NextEntryOffset;
5881 ULONG StreamNameLength;
5882 LARGE_INTEGER StreamSize;
5883 LARGE_INTEGER StreamAllocationSize;
5884 WCHAR StreamName[1];
5886
5892
5893typedef struct _FILE_COMPLETION_INFORMATION {
5897
5898typedef struct _FILE_PIPE_INFORMATION {
5899 ULONG ReadMode;
5900 ULONG CompletionMode;
5902
5903typedef struct _FILE_PIPE_LOCAL_INFORMATION {
5904 ULONG NamedPipeType;
5905 ULONG NamedPipeConfiguration;
5906 ULONG MaximumInstances;
5907 ULONG CurrentInstances;
5908 ULONG InboundQuota;
5909 ULONG ReadDataAvailable;
5910 ULONG OutboundQuota;
5911 ULONG WriteQuotaAvailable;
5912 ULONG NamedPipeState;
5913 ULONG NamedPipeEnd;
5915
5920
5921typedef struct _FILE_MAILSLOT_QUERY_INFORMATION {
5922 ULONG MaximumMessageSize;
5923 ULONG MailslotQuota;
5924 ULONG NextMessageSize;
5925 ULONG MessagesAvailable;
5926 LARGE_INTEGER ReadTimeout;
5928
5929typedef struct _FILE_MAILSLOT_SET_INFORMATION {
5932
5933typedef struct _FILE_REPARSE_POINT_INFORMATION {
5934 LONGLONG FileReference;
5935 ULONG Tag;
5937
5944
5950
5955
5962
5963typedef struct _FILE_GET_EA_INFORMATION {
5964 ULONG NextEntryOffset;
5965 UCHAR EaNameLength;
5966 CHAR EaName[1];
5968
5969#define REMOTE_PROTOCOL_FLAG_LOOPBACK 0x00000001
5970#define REMOTE_PROTOCOL_FLAG_OFFLINE 0x00000002
5971
5981 struct {
5983 } GenericReserved;
5984 struct {
5985 ULONG Reserved[16];
5986 } ProtocolSpecificReserved;
5988
5994
5995typedef struct _FILE_QUOTA_INFORMATION {
5996 ULONG NextEntryOffset;
5997 ULONG SidLength;
5998 LARGE_INTEGER ChangeTime;
5999 LARGE_INTEGER QuotaUsed;
6000 LARGE_INTEGER QuotaThreshold;
6001 LARGE_INTEGER QuotaLimit;
6002 SID Sid;
6004
6005typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
6006 ULONG FileSystemAttributes;
6008 ULONG FileSystemNameLength;
6009 WCHAR FileSystemName[1];
6011
6015 WCHAR DriverName[1];
6017
6021
6022#define FILE_VC_QUOTA_NONE 0x00000000
6023#define FILE_VC_QUOTA_TRACK 0x00000001
6024#define FILE_VC_QUOTA_ENFORCE 0x00000002
6025#define FILE_VC_QUOTA_MASK 0x00000003
6026#define FILE_VC_CONTENT_INDEX_DISABLED 0x00000008
6027#define FILE_VC_LOG_QUOTA_THRESHOLD 0x00000010
6028#define FILE_VC_LOG_QUOTA_LIMIT 0x00000020
6029#define FILE_VC_LOG_VOLUME_THRESHOLD 0x00000040
6030#define FILE_VC_LOG_VOLUME_LIMIT 0x00000080
6031#define FILE_VC_QUOTAS_INCOMPLETE 0x00000100
6032#define FILE_VC_QUOTAS_REBUILDING 0x00000200
6033#define FILE_VC_VALID_MASK 0x000003ff
6034
6043
6044#ifndef _FILESYSTEMFSCTL_
6045#define _FILESYSTEMFSCTL_
6046
6047#define FSCTL_REQUEST_OPLOCK_LEVEL_1 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
6048#define FSCTL_REQUEST_OPLOCK_LEVEL_2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
6049#define FSCTL_REQUEST_BATCH_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
6050#define FSCTL_OPLOCK_BREAK_ACKNOWLEDGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
6051#define FSCTL_OPBATCH_ACK_CLOSE_PENDING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
6052#define FSCTL_OPLOCK_BREAK_NOTIFY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
6053#define FSCTL_LOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
6054#define FSCTL_UNLOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
6055#define FSCTL_DISMOUNT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
6056#define FSCTL_IS_VOLUME_MOUNTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
6057#define FSCTL_IS_PATHNAME_VALID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
6058#define FSCTL_MARK_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
6059#define FSCTL_QUERY_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 14, METHOD_NEITHER, FILE_ANY_ACCESS)
6060#define FSCTL_GET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
6061#define FSCTL_SET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6062#define FSCTL_SET_BOOTLOADER_ACCESSED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 19, METHOD_NEITHER, FILE_ANY_ACCESS)
6063
6064#define FSCTL_OPLOCK_BREAK_ACK_NO_2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
6065#define FSCTL_INVALIDATE_VOLUMES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
6066#define FSCTL_QUERY_FAT_BPB CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
6067#define FSCTL_REQUEST_FILTER_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
6068#define FSCTL_FILESYSTEM_GET_STATISTICS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
6069
6070#if (_WIN32_WINNT >= 0x0400)
6071
6072#define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)
6073#define FSCTL_GET_NTFS_FILE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS)
6074#define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 27, METHOD_NEITHER, FILE_ANY_ACCESS)
6075#define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 28, METHOD_NEITHER, FILE_ANY_ACCESS)
6076#define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6077#define FSCTL_IS_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
6078#define FSCTL_ALLOW_EXTENDED_DASD_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 32, METHOD_NEITHER, FILE_ANY_ACCESS)
6079
6080#endif
6081
6082#if (_WIN32_WINNT >= 0x0500)
6083
6084#define FSCTL_FIND_FILES_BY_SID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS)
6085#define FSCTL_SET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6086#define FSCTL_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS)
6087#define FSCTL_DELETE_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6088#define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6089#define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
6090#define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6091#define FSCTL_ENUM_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44, METHOD_NEITHER, FILE_ANY_ACCESS)
6092#define FSCTL_SECURITY_ID_CHECK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45, METHOD_NEITHER, FILE_READ_DATA)
6093#define FSCTL_READ_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46, METHOD_NEITHER, FILE_ANY_ACCESS)
6094#define FSCTL_SET_OBJECT_ID_EXTENDED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6095#define FSCTL_CREATE_OR_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS)
6096#define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6097#define FSCTL_SET_ZERO_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_DATA)
6098#define FSCTL_QUERY_ALLOCATED_RANGES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51, METHOD_NEITHER, FILE_READ_DATA)
6099#define FSCTL_ENABLE_UPGRADE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 52, METHOD_BUFFERED, FILE_WRITE_DATA)
6100#define FSCTL_SET_ENCRYPTION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_NEITHER, FILE_ANY_ACCESS)
6101#define FSCTL_ENCRYPTION_FSCTL_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54, METHOD_NEITHER, FILE_ANY_ACCESS)
6102#define FSCTL_WRITE_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55, METHOD_NEITHER, FILE_SPECIAL_ACCESS)
6103#define FSCTL_READ_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56, METHOD_NEITHER, FILE_SPECIAL_ACCESS)
6104#define FSCTL_CREATE_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57, METHOD_NEITHER, FILE_ANY_ACCESS)
6105#define FSCTL_READ_FILE_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58, METHOD_NEITHER, FILE_ANY_ACCESS)
6106#define FSCTL_WRITE_USN_CLOSE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59, METHOD_NEITHER, FILE_ANY_ACCESS)
6107#define FSCTL_EXTEND_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS)
6108#define FSCTL_QUERY_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 61, METHOD_BUFFERED, FILE_ANY_ACCESS)
6109#define FSCTL_DELETE_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 62, METHOD_BUFFERED, FILE_ANY_ACCESS)
6110#define FSCTL_MARK_HANDLE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 63, METHOD_BUFFERED, FILE_ANY_ACCESS)
6111#define FSCTL_SIS_COPYFILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 64, METHOD_BUFFERED, FILE_ANY_ACCESS)
6112#define FSCTL_SIS_LINK_FILES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 65, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6113#define FSCTL_RECALL_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 69, METHOD_NEITHER, FILE_ANY_ACCESS)
6114#define FSCTL_READ_FROM_PLEX CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 71, METHOD_OUT_DIRECT, FILE_READ_DATA)
6115#define FSCTL_FILE_PREFETCH CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 72, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6116
6117#endif
6118
6119#if (_WIN32_WINNT >= 0x0600)
6120
6121#define FSCTL_MAKE_MEDIA_COMPATIBLE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 76, METHOD_BUFFERED, FILE_WRITE_DATA)
6122#define FSCTL_SET_DEFECT_MANAGEMENT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 77, METHOD_BUFFERED, FILE_WRITE_DATA)
6123#define FSCTL_QUERY_SPARING_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 78, METHOD_BUFFERED, FILE_ANY_ACCESS)
6124#define FSCTL_QUERY_ON_DISK_VOLUME_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 79, METHOD_BUFFERED, FILE_ANY_ACCESS)
6125#define FSCTL_SET_VOLUME_COMPRESSION_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 80, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6126#define FSCTL_TXFS_MODIFY_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 81, METHOD_BUFFERED, FILE_WRITE_DATA)
6127#define FSCTL_TXFS_QUERY_RM_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 82, METHOD_BUFFERED, FILE_READ_DATA)
6128#define FSCTL_TXFS_ROLLFORWARD_REDO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 84, METHOD_BUFFERED, FILE_WRITE_DATA)
6129#define FSCTL_TXFS_ROLLFORWARD_UNDO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 85, METHOD_BUFFERED, FILE_WRITE_DATA)
6130#define FSCTL_TXFS_START_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 86, METHOD_BUFFERED, FILE_WRITE_DATA)
6131#define FSCTL_TXFS_SHUTDOWN_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 87, METHOD_BUFFERED, FILE_WRITE_DATA)
6132#define FSCTL_TXFS_READ_BACKUP_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 88, METHOD_BUFFERED, FILE_READ_DATA)
6133#define FSCTL_TXFS_WRITE_BACKUP_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 89, METHOD_BUFFERED, FILE_WRITE_DATA)
6134#define FSCTL_TXFS_CREATE_SECONDARY_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 90, METHOD_BUFFERED, FILE_WRITE_DATA)
6135#define FSCTL_TXFS_GET_METADATA_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 91, METHOD_BUFFERED, FILE_READ_DATA)
6136#define FSCTL_TXFS_GET_TRANSACTED_VERSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 92, METHOD_BUFFERED, FILE_READ_DATA)
6137#define FSCTL_TXFS_SAVEPOINT_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 94, METHOD_BUFFERED, FILE_WRITE_DATA)
6138#define FSCTL_TXFS_CREATE_MINIVERSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 95, METHOD_BUFFERED, FILE_WRITE_DATA)
6139#define FSCTL_TXFS_TRANSACTION_ACTIVE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 99, METHOD_BUFFERED, FILE_READ_DATA)
6140#define FSCTL_SET_ZERO_ON_DEALLOCATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 101, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6141#define FSCTL_SET_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 102, METHOD_BUFFERED, FILE_ANY_ACCESS)
6142#define FSCTL_GET_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 103, METHOD_BUFFERED, FILE_ANY_ACCESS)
6143#define FSCTL_WAIT_FOR_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 104, METHOD_BUFFERED, FILE_ANY_ACCESS)
6144#define FSCTL_INITIATE_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 106, METHOD_BUFFERED, FILE_ANY_ACCESS)
6145#define FSCTL_CSC_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 107, METHOD_NEITHER, FILE_ANY_ACCESS)
6146#define FSCTL_SHRINK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 108, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6147#define FSCTL_SET_SHORT_NAME_BEHAVIOR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 109, METHOD_BUFFERED, FILE_ANY_ACCESS)
6148#define FSCTL_DFSR_SET_GHOST_HANDLE_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 110, METHOD_BUFFERED, FILE_ANY_ACCESS)
6149#define FSCTL_TXFS_LIST_TRANSACTION_LOCKED_FILES \
6150 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_READ_DATA)
6151#define FSCTL_TXFS_LIST_TRANSACTIONS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 121, METHOD_BUFFERED, FILE_READ_DATA)
6152#define FSCTL_QUERY_PAGEFILE_ENCRYPTION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 122, METHOD_BUFFERED, FILE_ANY_ACCESS)
6153#define FSCTL_RESET_VOLUME_ALLOCATION_HINTS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 123, METHOD_BUFFERED, FILE_ANY_ACCESS)
6154#define FSCTL_TXFS_READ_BACKUP_INFORMATION2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 126, METHOD_BUFFERED, FILE_ANY_ACCESS)
6155
6156#endif
6157
6158#if (_WIN32_WINNT >= 0x0601)
6159
6160#define FSCTL_QUERY_DEPENDENT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 124, METHOD_BUFFERED, FILE_ANY_ACCESS)
6161#define FSCTL_SD_GLOBAL_CHANGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 125, METHOD_BUFFERED, FILE_ANY_ACCESS)
6162#define FSCTL_LOOKUP_STREAM_FROM_CLUSTER CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 127, METHOD_BUFFERED, FILE_ANY_ACCESS)
6163#define FSCTL_TXFS_WRITE_BACKUP_INFORMATION2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 128, METHOD_BUFFERED, FILE_ANY_ACCESS)
6164#define FSCTL_FILE_TYPE_NOTIFICATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 129, METHOD_BUFFERED, FILE_ANY_ACCESS)
6165#define FSCTL_GET_BOOT_AREA_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 140, METHOD_BUFFERED, FILE_ANY_ACCESS)
6166#define FSCTL_GET_RETRIEVAL_POINTER_BASE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 141, METHOD_BUFFERED, FILE_ANY_ACCESS)
6167#define FSCTL_SET_PERSISTENT_VOLUME_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 142, METHOD_BUFFERED, FILE_ANY_ACCESS)
6168#define FSCTL_QUERY_PERSISTENT_VOLUME_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 143, METHOD_BUFFERED, FILE_ANY_ACCESS)
6169#define FSCTL_REQUEST_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 144, METHOD_BUFFERED, FILE_ANY_ACCESS)
6170#define FSCTL_CSV_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 145, METHOD_BUFFERED, FILE_ANY_ACCESS)
6171#define FSCTL_IS_CSV_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 146, METHOD_BUFFERED, FILE_ANY_ACCESS)
6172#define FSCTL_QUERY_FILE_SYSTEM_RECOGNITION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 147, METHOD_BUFFERED, FILE_ANY_ACCESS)
6173#define FSCTL_CSV_GET_VOLUME_PATH_NAME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 148, METHOD_BUFFERED, FILE_ANY_ACCESS)
6174#define FSCTL_CSV_GET_VOLUME_NAME_FOR_VOLUME_MOUNT_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 149, METHOD_BUFFERED, FILE_ANY_ACCESS)
6175#define FSCTL_CSV_GET_VOLUME_PATH_NAMES_FOR_VOLUME_NAME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 150, METHOD_BUFFERED, FILE_ANY_ACCESS)
6176#define FSCTL_IS_FILE_ON_CSV_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 151, METHOD_BUFFERED, FILE_ANY_ACCESS)
6177#define FSCTL_CSV_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 155, METHOD_BUFFERED, FILE_ANY_ACCESS)
6178
6179typedef struct _CSV_NAMESPACE_INFO {
6180 ULONG Version;
6184} CSV_NAMESPACE_INFO, *PCSV_NAMESPACE_INFO;
6185
6186#define CSV_NAMESPACE_INFO_V1 (sizeof(CSV_NAMESPACE_INFO))
6187#define CSV_INVALID_DEVICE_NUMBER 0xFFFFFFFF
6188
6189#endif
6190
6191#if (_WIN32_WINNT >= 0x0602)
6192
6193#define FSCTL_FILE_LEVEL_TRIM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 130, METHOD_BUFFERED, FILE_WRITE_DATA)
6194#define FSCTL_CORRUPTION_HANDLING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 152, METHOD_BUFFERED, FILE_ANY_ACCESS)
6195#define FSCTL_OFFLOAD_READ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 153, METHOD_BUFFERED, FILE_READ_ACCESS)
6196#define FSCTL_OFFLOAD_WRITE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 154, METHOD_BUFFERED, FILE_WRITE_ACCESS)
6197#define FSCTL_SET_PURGE_FAILURE_MODE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 156, METHOD_BUFFERED, FILE_ANY_ACCESS)
6198#define FSCTL_QUERY_FILE_LAYOUT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 157, METHOD_NEITHER, FILE_ANY_ACCESS)
6199#define FSCTL_IS_VOLUME_OWNED_BYCSVFS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 158, METHOD_BUFFERED, FILE_ANY_ACCESS)
6200#define FSCTL_GET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 159, METHOD_BUFFERED, FILE_ANY_ACCESS)
6201#define FSCTL_SET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 160, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6202#define FSCTL_QUERY_FILE_REGIONS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 161, METHOD_BUFFERED, FILE_ANY_ACCESS)
6203#define FSCTL_DEDUP_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 165, METHOD_BUFFERED, FILE_ANY_ACCESS)
6204#define FSCTL_DEDUP_QUERY_FILE_HASHES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 166, METHOD_NEITHER, FILE_READ_DATA)
6205#define FSCTL_RKF_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 171, METHOD_NEITHER, FILE_ANY_ACCESS)
6206#define FSCTL_SCRUB_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 172, METHOD_BUFFERED, FILE_ANY_ACCESS)
6207#define FSCTL_REPAIR_COPIES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 173, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6208#define FSCTL_DISABLE_LOCAL_BUFFERING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 174, METHOD_BUFFERED, FILE_ANY_ACCESS)
6209#define FSCTL_CSV_MGMT_LOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 175, METHOD_BUFFERED, FILE_ANY_ACCESS)
6210#define FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICS \
6211 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 176, METHOD_BUFFERED, FILE_ANY_ACCESS)
6212#define FSCTL_ADVANCE_FILE_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 177, METHOD_BUFFERED, FILE_ANY_ACCESS)
6213#define FSCTL_CSV_SYNC_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 178, METHOD_BUFFERED, FILE_ANY_ACCESS)
6214#define FSCTL_CSV_QUERY_VETO_FILE_DIRECT_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 179, METHOD_BUFFERED, FILE_ANY_ACCESS)
6215#define FSCTL_WRITE_USN_REASON CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 180, METHOD_BUFFERED, FILE_ANY_ACCESS)
6216#define FSCTL_CSV_CONTROL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 181, METHOD_BUFFERED, FILE_ANY_ACCESS)
6217#define FSCTL_GET_REFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 182, METHOD_BUFFERED, FILE_ANY_ACCESS)
6218
6219#endif
6220
6221#if (_WIN32_WINNT >= 0x0603)
6222
6223#define FSCTL_DUPLICATE_EXTENTS_TO_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 209, METHOD_BUFFERED, FILE_WRITE_DATA)
6224
6225#endif
6226
6227#define FSCTL_MARK_AS_SYSTEM_HIVE FSCTL_SET_BOOTLOADER_ACCESSED
6228
6229typedef struct _PATHNAME_BUFFER {
6233
6235 UCHAR First0x24BytesOfBootSector[0x24];
6237
6238#if (_WIN32_WINNT >= 0x0400)
6239
6240typedef struct _NTFS_VOLUME_DATA_BUFFER {
6241 LARGE_INTEGER VolumeSerialNumber;
6242 LARGE_INTEGER NumberSectors;
6243 LARGE_INTEGER TotalClusters;
6245 LARGE_INTEGER TotalReserved;
6246 ULONG BytesPerSector;
6247 ULONG BytesPerCluster;
6248 ULONG BytesPerFileRecordSegment;
6249 ULONG ClustersPerFileRecordSegment;
6250 LARGE_INTEGER MftValidDataLength;
6251 LARGE_INTEGER MftStartLcn;
6252 LARGE_INTEGER Mft2StartLcn;
6253 LARGE_INTEGER MftZoneStart;
6254 LARGE_INTEGER MftZoneEnd;
6256
6257typedef struct _NTFS_EXTENDED_VOLUME_DATA {
6262
6263typedef struct _STARTING_LCN_INPUT_BUFFER {
6264 LARGE_INTEGER StartingLcn;
6266
6267typedef struct _VOLUME_BITMAP_BUFFER {
6268 LARGE_INTEGER StartingLcn;
6269 LARGE_INTEGER BitmapSize;
6270 UCHAR Buffer[1];
6272
6273typedef struct _STARTING_VCN_INPUT_BUFFER {
6274 LARGE_INTEGER StartingVcn;
6276
6277typedef struct _RETRIEVAL_POINTERS_BUFFER {
6278 ULONG ExtentCount;
6279 LARGE_INTEGER StartingVcn;
6280 struct {
6281 LARGE_INTEGER NextVcn;
6282 LARGE_INTEGER Lcn;
6283 } Extents[1];
6285
6286typedef struct _NTFS_FILE_RECORD_INPUT_BUFFER {
6287 LARGE_INTEGER FileReferenceNumber;
6289
6290typedef struct _NTFS_FILE_RECORD_OUTPUT_BUFFER {
6291 LARGE_INTEGER FileReferenceNumber;
6292 ULONG FileRecordLength;
6293 UCHAR FileRecordBuffer[1];
6295
6296typedef struct _MOVE_FILE_DATA {
6298 LARGE_INTEGER StartingVcn;
6299 LARGE_INTEGER StartingLcn;
6300 ULONG ClusterCount;
6302
6303typedef struct _MOVE_FILE_RECORD_DATA {
6305 LARGE_INTEGER SourceFileRecord;
6306 LARGE_INTEGER TargetFileRecord;
6307} MOVE_FILE_RECORD_DATA, *PMOVE_FILE_RECORD_DATA;
6308
6309#if defined(_WIN64)
6310typedef struct _MOVE_FILE_DATA32 {
6312 LARGE_INTEGER StartingVcn;
6313 LARGE_INTEGER StartingLcn;
6314 ULONG ClusterCount;
6315} MOVE_FILE_DATA32, *PMOVE_FILE_DATA32;
6316#endif
6317
6318#endif /* (_WIN32_WINNT >= 0x0400) */
6319
6320#if (_WIN32_WINNT >= 0x0500)
6321
6322typedef struct _FIND_BY_SID_DATA {
6323 ULONG Restart;
6324 SID Sid;
6325} FIND_BY_SID_DATA, *PFIND_BY_SID_DATA;
6326
6327typedef struct _FIND_BY_SID_OUTPUT {
6328 ULONG NextEntryOffset;
6329 ULONG FileIndex;
6331 WCHAR FileName[1];
6332} FIND_BY_SID_OUTPUT, *PFIND_BY_SID_OUTPUT;
6333
6334typedef struct _MFT_ENUM_DATA {
6335 ULONGLONG StartFileReferenceNumber;
6336 USN LowUsn;
6337 USN HighUsn;
6338} MFT_ENUM_DATA, *PMFT_ENUM_DATA;
6339
6340typedef struct _CREATE_USN_JOURNAL_DATA {
6342 ULONGLONG AllocationDelta;
6343} CREATE_USN_JOURNAL_DATA, *PCREATE_USN_JOURNAL_DATA;
6344
6345typedef struct _READ_USN_JOURNAL_DATA {
6346 USN StartUsn;
6347 ULONG ReasonMask;
6348 ULONG ReturnOnlyOnClose;
6350 ULONGLONG BytesToWaitFor;
6351 ULONGLONG UsnJournalID;
6352} READ_USN_JOURNAL_DATA, *PREAD_USN_JOURNAL_DATA;
6353
6354typedef struct _USN_RECORD {
6355 ULONG RecordLength;
6358 ULONGLONG FileReferenceNumber;
6359 ULONGLONG ParentFileReferenceNumber;
6360 USN Usn;
6362 ULONG Reason;
6363 ULONG SourceInfo;
6364 ULONG SecurityId;
6367 USHORT FileNameOffset;
6368 WCHAR FileName[1];
6369} USN_RECORD, *PUSN_RECORD;
6370
6371#define USN_PAGE_SIZE (0x1000)
6372
6373#define USN_REASON_DATA_OVERWRITE (0x00000001)
6374#define USN_REASON_DATA_EXTEND (0x00000002)
6375#define USN_REASON_DATA_TRUNCATION (0x00000004)
6376#define USN_REASON_NAMED_DATA_OVERWRITE (0x00000010)
6377#define USN_REASON_NAMED_DATA_EXTEND (0x00000020)
6378#define USN_REASON_NAMED_DATA_TRUNCATION (0x00000040)
6379#define USN_REASON_FILE_CREATE (0x00000100)
6380#define USN_REASON_FILE_DELETE (0x00000200)
6381#define USN_REASON_EA_CHANGE (0x00000400)
6382#define USN_REASON_SECURITY_CHANGE (0x00000800)
6383#define USN_REASON_RENAME_OLD_NAME (0x00001000)
6384#define USN_REASON_RENAME_NEW_NAME (0x00002000)
6385#define USN_REASON_INDEXABLE_CHANGE (0x00004000)
6386#define USN_REASON_BASIC_INFO_CHANGE (0x00008000)
6387#define USN_REASON_HARD_LINK_CHANGE (0x00010000)
6388#define USN_REASON_COMPRESSION_CHANGE (0x00020000)
6389#define USN_REASON_ENCRYPTION_CHANGE (0x00040000)
6390#define USN_REASON_OBJECT_ID_CHANGE (0x00080000)
6391#define USN_REASON_REPARSE_POINT_CHANGE (0x00100000)
6392#define USN_REASON_STREAM_CHANGE (0x00200000)
6393#define USN_REASON_TRANSACTED_CHANGE (0x00400000)
6394#define USN_REASON_CLOSE (0x80000000)
6395
6396typedef struct _USN_JOURNAL_DATA {
6397 ULONGLONG UsnJournalID;
6398 USN FirstUsn;
6399 USN NextUsn;
6400 USN LowestValidUsn;
6401 USN MaxUsn;
6403 ULONGLONG AllocationDelta;
6404} USN_JOURNAL_DATA, *PUSN_JOURNAL_DATA;
6405
6406typedef struct _DELETE_USN_JOURNAL_DATA {
6407 ULONGLONG UsnJournalID;
6408 ULONG DeleteFlags;
6409} DELETE_USN_JOURNAL_DATA, *PDELETE_USN_JOURNAL_DATA;
6410
6411#define USN_DELETE_FLAG_DELETE (0x00000001)
6412#define USN_DELETE_FLAG_NOTIFY (0x00000002)
6413#define USN_DELETE_VALID_FLAGS (0x00000003)
6414
6415typedef struct _MARK_HANDLE_INFO {
6416 ULONG UsnSourceInfo;
6418 ULONG HandleInfo;
6419} MARK_HANDLE_INFO, *PMARK_HANDLE_INFO;
6420
6421#if defined(_WIN64)
6422typedef struct _MARK_HANDLE_INFO32 {
6423 ULONG UsnSourceInfo;
6425 ULONG HandleInfo;
6426} MARK_HANDLE_INFO32, *PMARK_HANDLE_INFO32;
6427#endif
6428
6429#define USN_SOURCE_DATA_MANAGEMENT (0x00000001)
6430#define USN_SOURCE_AUXILIARY_DATA (0x00000002)
6431#define USN_SOURCE_REPLICATION_MANAGEMENT (0x00000004)
6432
6433#define MARK_HANDLE_PROTECT_CLUSTERS (0x00000001)
6434#define MARK_HANDLE_TXF_SYSTEM_LOG (0x00000004)
6435#define MARK_HANDLE_NOT_TXF_SYSTEM_LOG (0x00000008)
6436
6437typedef struct _BULK_SECURITY_TEST_DATA {
6439 ULONG SecurityIds[1];
6440} BULK_SECURITY_TEST_DATA, *PBULK_SECURITY_TEST_DATA;
6441
6442#define VOLUME_IS_DIRTY (0x00000001)
6443#define VOLUME_UPGRADE_SCHEDULED (0x00000002)
6444#define VOLUME_SESSION_OPEN (0x00000004)
6445
6446typedef struct _FILE_PREFETCH {
6447 ULONG Type;
6448 ULONG Count;
6449 ULONGLONG Prefetch[1];
6450} FILE_PREFETCH, *PFILE_PREFETCH;
6451
6452typedef struct _FILE_PREFETCH_EX {
6453 ULONG Type;
6454 ULONG Count;
6455 PVOID Context;
6456 ULONGLONG Prefetch[1];
6457} FILE_PREFETCH_EX, *PFILE_PREFETCH_EX;
6458
6459#define FILE_PREFETCH_TYPE_FOR_CREATE 0x1
6460#define FILE_PREFETCH_TYPE_FOR_DIRENUM 0x2
6461#define FILE_PREFETCH_TYPE_FOR_CREATE_EX 0x3
6462#define FILE_PREFETCH_TYPE_FOR_DIRENUM_EX 0x4
6463
6464#define FILE_PREFETCH_TYPE_MAX 0x4
6465
6466typedef struct _FILE_OBJECTID_BUFFER {
6467 UCHAR ObjectId[16];
6468 _ANONYMOUS_UNION union {
6469 _ANONYMOUS_STRUCT struct {
6470 UCHAR BirthVolumeId[16];
6471 UCHAR BirthObjectId[16];
6472 UCHAR DomainId[16];
6474 UCHAR ExtendedInfo[48];
6476} FILE_OBJECTID_BUFFER, *PFILE_OBJECTID_BUFFER;
6477
6478typedef struct _FILE_SET_SPARSE_BUFFER {
6479 BOOLEAN SetSparse;
6480} FILE_SET_SPARSE_BUFFER, *PFILE_SET_SPARSE_BUFFER;
6481
6482typedef struct _FILE_ZERO_DATA_INFORMATION {
6484 LARGE_INTEGER BeyondFinalZero;
6485} FILE_ZERO_DATA_INFORMATION, *PFILE_ZERO_DATA_INFORMATION;
6486
6487typedef struct _FILE_ALLOCATED_RANGE_BUFFER {
6490} FILE_ALLOCATED_RANGE_BUFFER, *PFILE_ALLOCATED_RANGE_BUFFER;
6491
6492typedef struct _ENCRYPTION_BUFFER {
6493 ULONG EncryptionOperation;
6494 UCHAR Private[1];
6495} ENCRYPTION_BUFFER, *PENCRYPTION_BUFFER;
6496
6497#define FILE_SET_ENCRYPTION 0x00000001
6498#define FILE_CLEAR_ENCRYPTION 0x00000002
6499#define STREAM_SET_ENCRYPTION 0x00000003
6500#define STREAM_CLEAR_ENCRYPTION 0x00000004
6501
6502#define MAXIMUM_ENCRYPTION_VALUE 0x00000004
6503
6504typedef struct _DECRYPTION_STATUS_BUFFER {
6505 BOOLEAN NoEncryptedStreams;
6506} DECRYPTION_STATUS_BUFFER, *PDECRYPTION_STATUS_BUFFER;
6507
6508#define ENCRYPTION_FORMAT_DEFAULT (0x01)
6509
6510#define COMPRESSION_FORMAT_SPARSE (0x4000)
6511
6512typedef struct _REQUEST_RAW_ENCRYPTED_DATA {
6514 ULONG Length;
6515} REQUEST_RAW_ENCRYPTED_DATA, *PREQUEST_RAW_ENCRYPTED_DATA;
6516
6517typedef struct _ENCRYPTED_DATA_INFO {
6518 ULONGLONG StartingFileOffset;
6520 ULONG BytesWithinFileSize;
6521 ULONG BytesWithinValidDataLength;
6522 USHORT CompressionFormat;
6523 UCHAR DataUnitShift;
6524 UCHAR ChunkShift;
6525 UCHAR ClusterShift;
6526 UCHAR EncryptionFormat;
6527 USHORT NumberOfDataBlocks;
6528 ULONG DataBlockSize[ANYSIZE_ARRAY];
6529} ENCRYPTED_DATA_INFO, *PENCRYPTED_DATA_INFO;
6530
6531typedef struct _PLEX_READ_DATA_REQUEST {
6533 ULONG ByteLength;
6534 ULONG PlexNumber;
6535} PLEX_READ_DATA_REQUEST, *PPLEX_READ_DATA_REQUEST;
6536
6537typedef struct _SI_COPYFILE {
6538 ULONG SourceFileNameLength;
6539 ULONG DestinationFileNameLength;
6540 ULONG Flags;
6542} SI_COPYFILE, *PSI_COPYFILE;
6543
6544#define COPYFILE_SIS_LINK 0x0001
6545#define COPYFILE_SIS_REPLACE 0x0002
6546#define COPYFILE_SIS_FLAGS 0x0003
6547
6548#endif /* (_WIN32_WINNT >= 0x0500) */
6549
6550#if (_WIN32_WINNT >= 0x0600)
6551
6552typedef struct _FILE_MAKE_COMPATIBLE_BUFFER {
6553 BOOLEAN CloseDisc;
6554} FILE_MAKE_COMPATIBLE_BUFFER, *PFILE_MAKE_COMPATIBLE_BUFFER;
6555
6556typedef struct _FILE_SET_DEFECT_MGMT_BUFFER {
6557 BOOLEAN Disable;
6558} FILE_SET_DEFECT_MGMT_BUFFER, *PFILE_SET_DEFECT_MGMT_BUFFER;
6559
6560typedef struct _FILE_QUERY_SPARING_BUFFER {
6561 ULONG SparingUnitBytes;
6562 BOOLEAN SoftwareSparing;
6563 ULONG TotalSpareBlocks;
6564 ULONG FreeSpareBlocks;
6565} FILE_QUERY_SPARING_BUFFER, *PFILE_QUERY_SPARING_BUFFER;
6566
6567typedef struct _FILE_QUERY_ON_DISK_VOL_INFO_BUFFER {
6568 LARGE_INTEGER DirectoryCount;
6570 USHORT FsFormatMajVersion;
6571 USHORT FsFormatMinVersion;
6572 WCHAR FsFormatName[12];
6574 LARGE_INTEGER LastUpdateTime;
6575 WCHAR CopyrightInfo[34];
6576 WCHAR AbstractInfo[34];
6577 WCHAR FormattingImplementationInfo[34];
6578 WCHAR LastModifyingImplementationInfo[34];
6579} FILE_QUERY_ON_DISK_VOL_INFO_BUFFER, *PFILE_QUERY_ON_DISK_VOL_INFO_BUFFER;
6580
6581#define SET_REPAIR_ENABLED (0x00000001)
6582#define SET_REPAIR_VOLUME_BITMAP_SCAN (0x00000002)
6583#define SET_REPAIR_DELETE_CROSSLINK (0x00000004)
6584#define SET_REPAIR_WARN_ABOUT_DATA_LOSS (0x00000008)
6585#define SET_REPAIR_DISABLED_AND_BUGCHECK_ON_CORRUPT (0x00000010)
6586#define SET_REPAIR_VALID_MASK (0x0000001F)
6587
6588typedef enum _SHRINK_VOLUME_REQUEST_TYPES {
6589 ShrinkPrepare = 1,
6590 ShrinkCommit,
6591 ShrinkAbort
6592} SHRINK_VOLUME_REQUEST_TYPES, *PSHRINK_VOLUME_REQUEST_TYPES;
6593
6594typedef struct _SHRINK_VOLUME_INFORMATION {
6595 SHRINK_VOLUME_REQUEST_TYPES ShrinkRequestType;
6597 LONGLONG NewNumberOfSectors;
6598} SHRINK_VOLUME_INFORMATION, *PSHRINK_VOLUME_INFORMATION;
6599
6600#define TXFS_RM_FLAG_LOGGING_MODE 0x00000001
6601#define TXFS_RM_FLAG_RENAME_RM 0x00000002
6602#define TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX 0x00000004
6603#define TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN 0x00000008
6604#define TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS 0x00000010
6605#define TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT 0x00000020
6606#define TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE 0x00000040
6607#define TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX 0x00000080
6608#define TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN 0x00000100
6609#define TXFS_RM_FLAG_GROW_LOG 0x00000400
6610#define TXFS_RM_FLAG_SHRINK_LOG 0x00000800
6611#define TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE 0x00001000
6612#define TXFS_RM_FLAG_PRESERVE_CHANGES 0x00002000
6613#define TXFS_RM_FLAG_RESET_RM_AT_NEXT_START 0x00004000
6614#define TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START 0x00008000
6615#define TXFS_RM_FLAG_PREFER_CONSISTENCY 0x00010000
6616#define TXFS_RM_FLAG_PREFER_AVAILABILITY 0x00020000
6617
6618#define TXFS_LOGGING_MODE_SIMPLE (0x0001)
6619#define TXFS_LOGGING_MODE_FULL (0x0002)
6620
6621#define TXFS_TRANSACTION_STATE_NONE 0x00
6622#define TXFS_TRANSACTION_STATE_ACTIVE 0x01
6623#define TXFS_TRANSACTION_STATE_PREPARED 0x02
6624#define TXFS_TRANSACTION_STATE_NOTACTIVE 0x03
6625
6626#define TXFS_MODIFY_RM_VALID_FLAGS (TXFS_RM_FLAG_LOGGING_MODE | \
6627 TXFS_RM_FLAG_RENAME_RM | \
6628 TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX | \
6629 TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN | \
6630 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
6631 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
6632 TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE | \
6633 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
6634 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN | \
6635 TXFS_RM_FLAG_SHRINK_LOG | \
6636 TXFS_RM_FLAG_GROW_LOG | \
6637 TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE | \
6638 TXFS_RM_FLAG_PRESERVE_CHANGES | \
6639 TXFS_RM_FLAG_RESET_RM_AT_NEXT_START | \
6640 TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START | \
6641 TXFS_RM_FLAG_PREFER_CONSISTENCY | \
6642 TXFS_RM_FLAG_PREFER_AVAILABILITY)
6643
6644typedef struct _TXFS_MODIFY_RM {
6645 ULONG Flags;
6646 ULONG LogContainerCountMax;
6647 ULONG LogContainerCountMin;
6648 ULONG LogContainerCount;
6649 ULONG LogGrowthIncrement;
6650 ULONG LogAutoShrinkPercentage;
6652 USHORT LoggingMode;
6653} TXFS_MODIFY_RM, *PTXFS_MODIFY_RM;
6654
6655#define TXFS_RM_STATE_NOT_STARTED 0
6656#define TXFS_RM_STATE_STARTING 1
6657#define TXFS_RM_STATE_ACTIVE 2
6658#define TXFS_RM_STATE_SHUTTING_DOWN 3
6659
6660#define TXFS_QUERY_RM_INFORMATION_VALID_FLAGS \
6661 (TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
6662 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
6663 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
6664 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN | \
6665 TXFS_RM_FLAG_RESET_RM_AT_NEXT_START | \
6666 TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START | \
6667 TXFS_RM_FLAG_PREFER_CONSISTENCY | \
6668 TXFS_RM_FLAG_PREFER_AVAILABILITY)
6669
6670typedef struct _TXFS_QUERY_RM_INFORMATION {
6671 ULONG BytesRequired;
6672 ULONGLONG TailLsn;
6673 ULONGLONG CurrentLsn;
6674 ULONGLONG ArchiveTailLsn;
6675 ULONGLONG LogContainerSize;
6676 LARGE_INTEGER HighestVirtualClock;
6677 ULONG LogContainerCount;
6678 ULONG LogContainerCountMax;
6679 ULONG LogContainerCountMin;
6680 ULONG LogGrowthIncrement;
6681 ULONG LogAutoShrinkPercentage;
6682 ULONG Flags;
6683 USHORT LoggingMode;
6685 ULONG RmState;
6686 ULONGLONG LogCapacity;
6687 ULONGLONG LogFree;
6688 ULONGLONG TopsSize;
6689 ULONGLONG TopsUsed;
6690 ULONGLONG TransactionCount;
6691 ULONGLONG OnePCCount;
6692 ULONGLONG TwoPCCount;
6693 ULONGLONG NumberLogFileFull;
6694 ULONGLONG OldestTransactionAge;
6695 GUID RMName;
6696 ULONG TmLogPathOffset;
6697} TXFS_QUERY_RM_INFORMATION, *PTXFS_QUERY_RM_INFORMATION;
6698
6699#define TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN 0x01
6700#define TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK 0x02
6701
6702#define TXFS_ROLLFORWARD_REDO_VALID_FLAGS \
6703 (TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN | \
6704 TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK)
6705
6706typedef struct _TXFS_ROLLFORWARD_REDO_INFORMATION {
6707 LARGE_INTEGER LastVirtualClock;
6708 ULONGLONG LastRedoLsn;
6709 ULONGLONG HighestRecoveryLsn;
6710 ULONG Flags;
6711} TXFS_ROLLFORWARD_REDO_INFORMATION, *PTXFS_ROLLFORWARD_REDO_INFORMATION;
6712
6713#define TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX 0x00000001
6714#define TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN 0x00000002
6715#define TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE 0x00000004
6716#define TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS 0x00000008
6717#define TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT 0x00000010
6718#define TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE 0x00000020
6719#define TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX 0x00000040
6720#define TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN 0x00000080
6721
6722#define TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT 0x00000200
6723#define TXFS_START_RM_FLAG_LOGGING_MODE 0x00000400
6724#define TXFS_START_RM_FLAG_PRESERVE_CHANGES 0x00000800
6725
6726#define TXFS_START_RM_FLAG_PREFER_CONSISTENCY 0x00001000
6727#define TXFS_START_RM_FLAG_PREFER_AVAILABILITY 0x00002000
6728
6729#define TXFS_START_RM_VALID_FLAGS \
6730 (TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX | \
6731 TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN | \
6732 TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE | \
6733 TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
6734 TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
6735 TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE | \
6736 TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT | \
6737 TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
6738 TXFS_START_RM_FLAG_LOGGING_MODE | \
6739 TXFS_START_RM_FLAG_PRESERVE_CHANGES | \
6740 TXFS_START_RM_FLAG_PREFER_CONSISTENCY | \
6741 TXFS_START_RM_FLAG_PREFER_AVAILABILITY)
6742
6743typedef struct _TXFS_START_RM_INFORMATION {
6744 ULONG Flags;
6745 ULONGLONG LogContainerSize;
6746 ULONG LogContainerCountMin;
6747 ULONG LogContainerCountMax;
6748 ULONG LogGrowthIncrement;
6749 ULONG LogAutoShrinkPercentage;
6750 ULONG TmLogPathOffset;
6751 USHORT TmLogPathLength;
6752 USHORT LoggingMode;
6753 USHORT LogPathLength;
6755 WCHAR LogPath[1];
6756} TXFS_START_RM_INFORMATION, *PTXFS_START_RM_INFORMATION;
6757
6758typedef struct _TXFS_GET_METADATA_INFO_OUT {
6759 struct {
6760 LONGLONG LowPart;
6761 LONGLONG HighPart;
6762 } TxfFileId;
6763 GUID LockingTransaction;
6764 ULONGLONG LastLsn;
6765 ULONG TransactionState;
6766} TXFS_GET_METADATA_INFO_OUT, *PTXFS_GET_METADATA_INFO_OUT;
6767
6768#define TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_CREATED 0x00000001
6769#define TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_DELETED 0x00000002
6770
6771typedef struct _TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY {
6773 ULONG NameFlags;
6774 LONGLONG FileId;
6778 WCHAR FileName[1];
6779} TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY, *PTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY;
6780
6781typedef struct _TXFS_LIST_TRANSACTION_LOCKED_FILES {
6782 GUID KtmTransaction;
6783 ULONGLONG NumberOfFiles;
6784 ULONGLONG BufferSizeRequired;
6786} TXFS_LIST_TRANSACTION_LOCKED_FILES, *PTXFS_LIST_TRANSACTION_LOCKED_FILES;
6787
6788typedef struct _TXFS_LIST_TRANSACTIONS_ENTRY {
6790 ULONG TransactionState;
6794} TXFS_LIST_TRANSACTIONS_ENTRY, *PTXFS_LIST_TRANSACTIONS_ENTRY;
6795
6796typedef struct _TXFS_LIST_TRANSACTIONS {
6797 ULONGLONG NumberOfTransactions;
6798 ULONGLONG BufferSizeRequired;
6799} TXFS_LIST_TRANSACTIONS, *PTXFS_LIST_TRANSACTIONS;
6800
6801typedef struct _TXFS_READ_BACKUP_INFORMATION_OUT {
6802 _ANONYMOUS_UNION union {
6804 UCHAR Buffer[1];
6806} TXFS_READ_BACKUP_INFORMATION_OUT, *PTXFS_READ_BACKUP_INFORMATION_OUT;
6807
6808typedef struct _TXFS_WRITE_BACKUP_INFORMATION {
6809 UCHAR Buffer[1];
6810} TXFS_WRITE_BACKUP_INFORMATION, *PTXFS_WRITE_BACKUP_INFORMATION;
6811
6812#define TXFS_TRANSACTED_VERSION_NONTRANSACTED 0xFFFFFFFE
6813#define TXFS_TRANSACTED_VERSION_UNCOMMITTED 0xFFFFFFFF
6814
6815typedef struct _TXFS_GET_TRANSACTED_VERSION {
6816 ULONG ThisBaseVersion;
6817 ULONG LatestVersion;
6818 USHORT ThisMiniVersion;
6819 USHORT FirstMiniVersion;
6820 USHORT LatestMiniVersion;
6821} TXFS_GET_TRANSACTED_VERSION, *PTXFS_GET_TRANSACTED_VERSION;
6822
6823#define TXFS_SAVEPOINT_SET 0x00000001
6824#define TXFS_SAVEPOINT_ROLLBACK 0x00000002
6825#define TXFS_SAVEPOINT_CLEAR 0x00000004
6826#define TXFS_SAVEPOINT_CLEAR_ALL 0x00000010
6827
6828typedef struct _TXFS_SAVEPOINT_INFORMATION {
6829 HANDLE KtmTransaction;
6830 ULONG ActionCode;
6831 ULONG SavepointId;
6832} TXFS_SAVEPOINT_INFORMATION, *PTXFS_SAVEPOINT_INFORMATION;
6833
6834typedef struct _TXFS_CREATE_MINIVERSION_INFO {
6835 USHORT StructureVersion;
6836 USHORT StructureLength;
6837 ULONG BaseVersion;
6838 USHORT MiniVersion;
6839} TXFS_CREATE_MINIVERSION_INFO, *PTXFS_CREATE_MINIVERSION_INFO;
6840
6841typedef struct _TXFS_TRANSACTION_ACTIVE_INFO {
6842 BOOLEAN TransactionsActiveAtSnapshot;
6843} TXFS_TRANSACTION_ACTIVE_INFO, *PTXFS_TRANSACTION_ACTIVE_INFO;
6844
6845#endif /* (_WIN32_WINNT >= 0x0600) */
6846
6847#if (_WIN32_WINNT >= 0x0601)
6848
6849#define MARK_HANDLE_REALTIME (0x00000020)
6850#define MARK_HANDLE_NOT_REALTIME (0x00000040)
6851
6852#define NO_8DOT3_NAME_PRESENT (0x00000001)
6853#define REMOVED_8DOT3_NAME (0x00000002)
6854
6855#define PERSISTENT_VOLUME_STATE_SHORT_NAME_CREATION_DISABLED (0x00000001)
6856
6857typedef struct _BOOT_AREA_INFO {
6858 ULONG BootSectorCount;
6859 struct {
6861 } BootSectors[2];
6862} BOOT_AREA_INFO, *PBOOT_AREA_INFO;
6863
6864typedef struct _RETRIEVAL_POINTER_BASE {
6865 LARGE_INTEGER FileAreaOffset;
6866} RETRIEVAL_POINTER_BASE, *PRETRIEVAL_POINTER_BASE;
6867
6868typedef struct _FILE_FS_PERSISTENT_VOLUME_INFORMATION {
6869 ULONG VolumeFlags;
6870 ULONG FlagMask;
6871 ULONG Version;
6873} FILE_FS_PERSISTENT_VOLUME_INFORMATION, *PFILE_FS_PERSISTENT_VOLUME_INFORMATION;
6874
6875typedef struct _FILE_SYSTEM_RECOGNITION_INFORMATION {
6876 CHAR FileSystem[9];
6877} FILE_SYSTEM_RECOGNITION_INFORMATION, *PFILE_SYSTEM_RECOGNITION_INFORMATION;
6878
6879#define OPLOCK_LEVEL_CACHE_READ (0x00000001)
6880#define OPLOCK_LEVEL_CACHE_HANDLE (0x00000002)
6881#define OPLOCK_LEVEL_CACHE_WRITE (0x00000004)
6882
6883#define REQUEST_OPLOCK_INPUT_FLAG_REQUEST (0x00000001)
6884#define REQUEST_OPLOCK_INPUT_FLAG_ACK (0x00000002)
6885#define REQUEST_OPLOCK_INPUT_FLAG_COMPLETE_ACK_ON_CLOSE (0x00000004)
6886
6887#define REQUEST_OPLOCK_CURRENT_VERSION 1
6888
6889typedef struct _REQUEST_OPLOCK_INPUT_BUFFER {
6890 USHORT StructureVersion;
6891 USHORT StructureLength;
6892 ULONG RequestedOplockLevel;
6893 ULONG Flags;
6894} REQUEST_OPLOCK_INPUT_BUFFER, *PREQUEST_OPLOCK_INPUT_BUFFER;
6895
6896#define REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED (0x00000001)
6897#define REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED (0x00000002)
6898
6899typedef struct _REQUEST_OPLOCK_OUTPUT_BUFFER {
6900 USHORT StructureVersion;
6901 USHORT StructureLength;
6902 ULONG OriginalOplockLevel;
6903 ULONG NewOplockLevel;
6904 ULONG Flags;
6906 USHORT ShareMode;
6907} REQUEST_OPLOCK_OUTPUT_BUFFER, *PREQUEST_OPLOCK_OUTPUT_BUFFER;
6908
6909#define SD_GLOBAL_CHANGE_TYPE_MACHINE_SID 1
6910
6911typedef struct _SD_CHANGE_MACHINE_SID_INPUT {
6912 USHORT CurrentMachineSIDOffset;
6913 USHORT CurrentMachineSIDLength;
6914 USHORT NewMachineSIDOffset;
6915 USHORT NewMachineSIDLength;
6916} SD_CHANGE_MACHINE_SID_INPUT, *PSD_CHANGE_MACHINE_SID_INPUT;
6917
6918typedef struct _SD_CHANGE_MACHINE_SID_OUTPUT {
6919 ULONGLONG NumSDChangedSuccess;
6920 ULONGLONG NumSDChangedFail;
6921 ULONGLONG NumSDUnused;
6922 ULONGLONG NumSDTotal;
6923 ULONGLONG NumMftSDChangedSuccess;
6924 ULONGLONG NumMftSDChangedFail;
6925 ULONGLONG NumMftSDTotal;
6926} SD_CHANGE_MACHINE_SID_OUTPUT, *PSD_CHANGE_MACHINE_SID_OUTPUT;
6927
6928typedef struct _SD_GLOBAL_CHANGE_INPUT {
6929 ULONG Flags;
6930 ULONG ChangeType;
6931 _ANONYMOUS_UNION union {
6932 SD_CHANGE_MACHINE_SID_INPUT SdChange;
6934} SD_GLOBAL_CHANGE_INPUT, *PSD_GLOBAL_CHANGE_INPUT;
6935
6936typedef struct _SD_GLOBAL_CHANGE_OUTPUT {
6937 ULONG Flags;
6938 ULONG ChangeType;
6939 _ANONYMOUS_UNION union {
6940 SD_CHANGE_MACHINE_SID_OUTPUT SdChange;
6942} SD_GLOBAL_CHANGE_OUTPUT, *PSD_GLOBAL_CHANGE_OUTPUT;
6943
6944#define ENCRYPTED_DATA_INFO_SPARSE_FILE 1
6945
6946typedef struct _EXTENDED_ENCRYPTED_DATA_INFO {
6948 ULONG Length;
6949 ULONG Flags;
6951} EXTENDED_ENCRYPTED_DATA_INFO, *PEXTENDED_ENCRYPTED_DATA_INFO;
6952
6953typedef struct _LOOKUP_STREAM_FROM_CLUSTER_INPUT {
6954 ULONG Flags;
6955 ULONG NumberOfClusters;
6956 LARGE_INTEGER Cluster[1];
6957} LOOKUP_STREAM_FROM_CLUSTER_INPUT, *PLOOKUP_STREAM_FROM_CLUSTER_INPUT;
6958
6959typedef struct _LOOKUP_STREAM_FROM_CLUSTER_OUTPUT {
6960 ULONG Offset;
6961 ULONG NumberOfMatches;
6962 ULONG BufferSizeRequired;
6963} LOOKUP_STREAM_FROM_CLUSTER_OUTPUT, *PLOOKUP_STREAM_FROM_CLUSTER_OUTPUT;
6964
6965#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_PAGE_FILE 0x00000001
6966#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_DENY_DEFRAG_SET 0x00000002
6967#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_FS_SYSTEM_FILE 0x00000004
6968#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_TXF_SYSTEM_FILE 0x00000008
6969
6970#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_MASK 0xff000000
6971#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_DATA 0x01000000
6972#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_INDEX 0x02000000
6973#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_SYSTEM 0x03000000
6974
6975typedef struct _LOOKUP_STREAM_FROM_CLUSTER_ENTRY {
6976 ULONG OffsetToNext;
6977 ULONG Flags;
6979 LARGE_INTEGER Cluster;
6980 WCHAR FileName[1];
6981} LOOKUP_STREAM_FROM_CLUSTER_ENTRY, *PLOOKUP_STREAM_FROM_CLUSTER_ENTRY;
6982
6983typedef struct _FILE_TYPE_NOTIFICATION_INPUT {
6984 ULONG Flags;
6985 ULONG NumFileTypeIDs;
6986 GUID FileTypeID[1];
6987} FILE_TYPE_NOTIFICATION_INPUT, *PFILE_TYPE_NOTIFICATION_INPUT;
6988
6989#define FILE_TYPE_NOTIFICATION_FLAG_USAGE_BEGIN 0x00000001
6990#define FILE_TYPE_NOTIFICATION_FLAG_USAGE_END 0x00000002
6991
6992DEFINE_GUID(FILE_TYPE_NOTIFICATION_GUID_PAGE_FILE, 0x0d0a64a1, 0x38fc, 0x4db8, 0x9f, 0xe7, 0x3f, 0x43, 0x52, 0xcd, 0x7c, 0x5c);
6993DEFINE_GUID(FILE_TYPE_NOTIFICATION_GUID_HIBERNATION_FILE, 0xb7624d64, 0xb9a3, 0x4cf8, 0x80, 0x11, 0x5b, 0x86, 0xc9, 0x40, 0xe7, 0xb7);
6994DEFINE_GUID(FILE_TYPE_NOTIFICATION_GUID_CRASHDUMP_FILE, 0x9d453eb7, 0xd2a6, 0x4dbd, 0xa2, 0xe3, 0xfb, 0xd0, 0xed, 0x91, 0x09, 0xa9);
6995
6996#ifndef _VIRTUAL_STORAGE_TYPE_DEFINED
6997#define _VIRTUAL_STORAGE_TYPE_DEFINED
6998typedef struct _VIRTUAL_STORAGE_TYPE {
6999 ULONG DeviceId;
7000 GUID VendorId;
7001} VIRTUAL_STORAGE_TYPE, *PVIRTUAL_STORAGE_TYPE;
7002#endif
7003
7004typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST {
7005 ULONG RequestLevel;
7006 ULONG RequestFlags;
7007} STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST, *PSTORAGE_QUERY_DEPENDENT_VOLUME_REQUEST;
7008
7009#define QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_HOST_VOLUMES 0x1
7010#define QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_GUEST_VOLUMES 0x2
7011
7012typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY {
7013 ULONG EntryLength;
7014 ULONG DependencyTypeFlags;
7015 ULONG ProviderSpecificFlags;
7016 VIRTUAL_STORAGE_TYPE VirtualStorageType;
7017} STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY, *PSTORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY;
7018
7019typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY {
7020 ULONG EntryLength;
7021 ULONG DependencyTypeFlags;
7022 ULONG ProviderSpecificFlags;
7023 VIRTUAL_STORAGE_TYPE VirtualStorageType;
7024 ULONG AncestorLevel;
7025 ULONG HostVolumeNameOffset;
7026 ULONG HostVolumeNameSize;
7027 ULONG DependentVolumeNameOffset;
7028 ULONG DependentVolumeNameSize;
7029 ULONG RelativePathOffset;
7030 ULONG RelativePathSize;
7031 ULONG DependentDeviceNameOffset;
7032 ULONG DependentDeviceNameSize;
7033} STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY, *PSTORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY;
7034
7035typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE {
7036 ULONG ResponseLevel;
7037 ULONG NumberEntries;
7038 _ANONYMOUS_UNION union {
7039 STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY Lev1Depends[0];
7040 STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY Lev2Depends[0];
7042} STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE, *PSTORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE;
7043
7044#endif /* (_WIN32_WINNT >= 0x0601) */
7045
7046typedef struct _FILESYSTEM_STATISTICS {
7049 ULONG SizeOfCompleteStructure;
7050 ULONG UserFileReads;
7051 ULONG UserFileReadBytes;
7052 ULONG UserDiskReads;
7053 ULONG UserFileWrites;
7054 ULONG UserFileWriteBytes;
7055 ULONG UserDiskWrites;
7056 ULONG MetaDataReads;
7057 ULONG MetaDataReadBytes;
7058 ULONG MetaDataDiskReads;
7059 ULONG MetaDataWrites;
7060 ULONG MetaDataWriteBytes;
7061 ULONG MetaDataDiskWrites;
7063
7064#define FILESYSTEM_STATISTICS_TYPE_NTFS 1
7065#define FILESYSTEM_STATISTICS_TYPE_FAT 2
7066#define FILESYSTEM_STATISTICS_TYPE_EXFAT 3
7067
7068typedef struct _FAT_STATISTICS {
7069 ULONG CreateHits;
7070 ULONG SuccessfulCreates;
7071 ULONG FailedCreates;
7072 ULONG NonCachedReads;
7073 ULONG NonCachedReadBytes;
7074 ULONG NonCachedWrites;
7075 ULONG NonCachedWriteBytes;
7076 ULONG NonCachedDiskReads;
7077 ULONG NonCachedDiskWrites;
7079
7080typedef struct _EXFAT_STATISTICS {
7081 ULONG CreateHits;
7082 ULONG SuccessfulCreates;
7083 ULONG FailedCreates;
7084 ULONG NonCachedReads;
7085 ULONG NonCachedReadBytes;
7086 ULONG NonCachedWrites;
7087 ULONG NonCachedWriteBytes;
7088 ULONG NonCachedDiskReads;
7089 ULONG NonCachedDiskWrites;
7091
7092typedef struct _NTFS_STATISTICS {
7093 ULONG LogFileFullExceptions;
7094 ULONG OtherExceptions;
7095 ULONG MftReads;
7096 ULONG MftReadBytes;
7097 ULONG MftWrites;
7098 ULONG MftWriteBytes;
7099 struct {
7100 USHORT Write;
7101 USHORT Create;
7102 USHORT SetInfo;
7103 USHORT Flush;
7104 } MftWritesUserLevel;
7105 USHORT MftWritesFlushForLogFileFull;
7106 USHORT MftWritesLazyWriter;
7107 USHORT MftWritesUserRequest;
7108 ULONG Mft2Writes;
7109 ULONG Mft2WriteBytes;
7110 struct {
7111 USHORT Write;
7112 USHORT Create;
7113 USHORT SetInfo;
7114 USHORT Flush;
7115 } Mft2WritesUserLevel;
7116 USHORT Mft2WritesFlushForLogFileFull;
7117 USHORT Mft2WritesLazyWriter;
7118 USHORT Mft2WritesUserRequest;
7119 ULONG RootIndexReads;
7120 ULONG RootIndexReadBytes;
7121 ULONG RootIndexWrites;
7122 ULONG RootIndexWriteBytes;
7123 ULONG BitmapReads;
7124 ULONG BitmapReadBytes;
7125 ULONG BitmapWrites;
7126 ULONG BitmapWriteBytes;
7127 USHORT BitmapWritesFlushForLogFileFull;
7128 USHORT BitmapWritesLazyWriter;
7129 USHORT BitmapWritesUserRequest;
7130 struct {
7131 USHORT Write;
7132 USHORT Create;
7133 USHORT SetInfo;
7134 } BitmapWritesUserLevel;
7135 ULONG MftBitmapReads;
7136 ULONG MftBitmapReadBytes;
7137 ULONG MftBitmapWrites;
7138 ULONG MftBitmapWriteBytes;
7139 USHORT MftBitmapWritesFlushForLogFileFull;
7140 USHORT MftBitmapWritesLazyWriter;
7141 USHORT MftBitmapWritesUserRequest;
7142 struct {
7143 USHORT Write;
7144 USHORT Create;
7145 USHORT SetInfo;
7146 USHORT Flush;
7147 } MftBitmapWritesUserLevel;
7148 ULONG UserIndexReads;
7149 ULONG UserIndexReadBytes;
7150 ULONG UserIndexWrites;
7151 ULONG UserIndexWriteBytes;
7152 ULONG LogFileReads;
7153 ULONG LogFileReadBytes;
7154 ULONG LogFileWrites;
7155 ULONG LogFileWriteBytes;
7156 struct {
7157 ULONG Calls;
7158 ULONG Clusters;
7159 ULONG Hints;
7160 ULONG RunsReturned;
7161 ULONG HintsHonored;
7162 ULONG HintsClusters;
7163 ULONG Cache;
7164 ULONG CacheClusters;
7165 ULONG CacheMiss;
7166 ULONG CacheMissClusters;
7169
7170#endif /* _FILESYSTEMFSCTL_ */
7171
7172#define SYMLINK_FLAG_RELATIVE 1
7173
7174typedef struct _REPARSE_DATA_BUFFER {
7175 ULONG ReparseTag;
7176 USHORT ReparseDataLength;
7178 _ANONYMOUS_UNION union {
7179 struct {
7180 USHORT SubstituteNameOffset;
7181 USHORT SubstituteNameLength;
7182 USHORT PrintNameOffset;
7183 USHORT PrintNameLength;
7184 ULONG Flags;
7185 WCHAR PathBuffer[1];
7186 } SymbolicLinkReparseBuffer;
7187 struct {
7188 USHORT SubstituteNameOffset;
7189 USHORT SubstituteNameLength;
7190 USHORT PrintNameOffset;
7191 USHORT PrintNameLength;
7192 WCHAR PathBuffer[1];
7193 } MountPointReparseBuffer;
7194 struct {
7195 UCHAR DataBuffer[1];
7196 } GenericReparseBuffer;
7199
7200#define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer)
7201
7207 struct {
7208 UCHAR DataBuffer[1];
7209 } GenericReparseBuffer;
7211
7212#define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer)
7213
7214#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE ( 16 * 1024 )
7215
7216/* Reserved reparse tags */
7217#define IO_REPARSE_TAG_RESERVED_ZERO (0)
7218#define IO_REPARSE_TAG_RESERVED_ONE (1)
7219#define IO_REPARSE_TAG_RESERVED_RANGE IO_REPARSE_TAG_RESERVED_ONE
7220
7221#define IsReparseTagMicrosoft(_tag) (((_tag) & 0x80000000))
7222#define IsReparseTagNameSurrogate(_tag) (((_tag) & 0x20000000))
7223
7224#define IO_REPARSE_TAG_VALID_VALUES (0xF000FFFF)
7225
7226#define IsReparseTagValid(tag) ( \
7227 !((tag) & ~IO_REPARSE_TAG_VALID_VALUES) && \
7228 ((tag) > IO_REPARSE_TAG_RESERVED_RANGE) \
7229 )
7230
7231/* MicroSoft reparse point tags */
7232#define IO_REPARSE_TAG_MOUNT_POINT (0xA0000003L)
7233#define IO_REPARSE_TAG_HSM (0xC0000004L)
7234#define IO_REPARSE_TAG_DRIVE_EXTENDER (0x80000005L)
7235#define IO_REPARSE_TAG_HSM2 (0x80000006L)
7236#define IO_REPARSE_TAG_SIS (0x80000007L)
7237#define IO_REPARSE_TAG_WIM (0x80000008L)
7238#define IO_REPARSE_TAG_CSV (0x80000009L)
7239#define IO_REPARSE_TAG_DFS (0x8000000AL)
7240#define IO_REPARSE_TAG_FILTER_MANAGER (0x8000000BL)
7241#define IO_REPARSE_TAG_SYMLINK (0xA000000CL)
7242#define IO_REPARSE_TAG_IIS_CACHE (0xA0000010L)
7243#define IO_REPARSE_TAG_DFSR (0x80000012L)
7244
7245#pragma pack(4)
7246typedef struct _REPARSE_INDEX_KEY {
7250#pragma pack()
7251
7252#define FSCTL_LMR_GET_LINK_TRACKING_INFORMATION CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM,58,METHOD_BUFFERED,FILE_ANY_ACCESS)
7253#define FSCTL_LMR_SET_LINK_TRACKING_INFORMATION CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM,59,METHOD_BUFFERED,FILE_ANY_ACCESS)
7254#define IOCTL_LMR_ARE_FILE_OBJECTS_ON_SAME_SERVER CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM,60,METHOD_BUFFERED,FILE_ANY_ACCESS)
7255
7256#define FSCTL_PIPE_ASSIGN_EVENT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
7257#define FSCTL_PIPE_DISCONNECT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
7258#define FSCTL_PIPE_LISTEN CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
7259#define FSCTL_PIPE_PEEK CTL_CODE(FILE_DEVICE_NAMED_PIPE, 3, METHOD_BUFFERED, FILE_READ_DATA)
7260#define FSCTL_PIPE_QUERY_EVENT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
7261#define FSCTL_PIPE_TRANSCEIVE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 5, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
7262#define FSCTL_PIPE_WAIT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
7263#define FSCTL_PIPE_IMPERSONATE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
7264#define FSCTL_PIPE_SET_CLIENT_PROCESS CTL_CODE(FILE_DEVICE_NAMED_PIPE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
7265#define FSCTL_PIPE_QUERY_CLIENT_PROCESS CTL_CODE(FILE_DEVICE_NAMED_PIPE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
7266#define FSCTL_PIPE_GET_PIPE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
7267#define FSCTL_PIPE_SET_PIPE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
7268#define FSCTL_PIPE_GET_CONNECTION_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
7269#define FSCTL_PIPE_SET_CONNECTION_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
7270#define FSCTL_PIPE_GET_HANDLE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
7271#define FSCTL_PIPE_SET_HANDLE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
7272#define FSCTL_PIPE_FLUSH CTL_CODE(FILE_DEVICE_NAMED_PIPE, 16, METHOD_BUFFERED, FILE_WRITE_DATA)
7273
7274#define FSCTL_PIPE_INTERNAL_READ CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2045, METHOD_BUFFERED, FILE_READ_DATA)
7275#define FSCTL_PIPE_INTERNAL_WRITE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2046, METHOD_BUFFERED, FILE_WRITE_DATA)
7276#define FSCTL_PIPE_INTERNAL_TRANSCEIVE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2047, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
7277#define FSCTL_PIPE_INTERNAL_READ_OVFLOW CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2048, METHOD_BUFFERED, FILE_READ_DATA)
7278
7279#define FILE_PIPE_READ_DATA 0x00000000
7280#define FILE_PIPE_WRITE_SPACE 0x00000001
7281
7286
7294
7295typedef struct _FILE_PIPE_PEEK_BUFFER {
7296 ULONG NamedPipeState;
7297 ULONG ReadDataAvailable;
7298 ULONG NumberOfMessages;
7299 ULONG MessageLength;
7300 CHAR Data[1];
7302
7303typedef struct _FILE_PIPE_WAIT_FOR_BUFFER {
7305 ULONG NameLength;
7306 BOOLEAN TimeoutSpecified;
7307 WCHAR Name[1];
7309
7311#if !defined(BUILD_WOW6432)
7314#else
7315 ULONGLONG ClientSession;
7316 ULONGLONG ClientProcess;
7317#endif
7319
7320#define FILE_PIPE_COMPUTER_NAME_LENGTH 15
7321
7323#if !defined(BUILD_WOW6432)
7326#else
7327 ULONGLONG ClientSession;
7328 ULONGLONG ClientProcess;
7329#endif
7331 WCHAR ClientComputerBuffer[FILE_PIPE_COMPUTER_NAME_LENGTH+1];
7333
7334#define FSCTL_MAILSLOT_PEEK CTL_CODE(FILE_DEVICE_MAILSLOT, 0, METHOD_NEITHER, FILE_READ_DATA)
7335
7340
7343 UCHAR VolumeId[16];
7345
7349 UCHAR TargetLinkTrackingInformationBuffer[1];
7351
7352#define IO_OPEN_PAGING_FILE 0x0002
7353#define IO_OPEN_TARGET_DIRECTORY 0x0004
7354#define IO_STOP_ON_SYMLINK 0x0008
7355#define IO_MM_PAGING_FILE 0x0010
7356
7357_Function_class_(DRIVER_FS_NOTIFICATION)
7358typedef VOID
7359(NTAPI DRIVER_FS_NOTIFICATION)(
7362typedef DRIVER_FS_NOTIFICATION *PDRIVER_FS_NOTIFICATION;
7363
7368
7373
7375 struct {
7378 } AcquireForModifiedPageWriter;
7379 struct {
7381 } ReleaseForModifiedPageWriter;
7382 struct {
7385 } AcquireForSectionSynchronization;
7386 struct {
7389 } NotifyStreamFileObject;
7390 struct {
7396 } Others;
7398
7399#define FS_FILTER_ACQUIRE_FOR_SECTION_SYNCHRONIZATION (UCHAR)-1
7400#define FS_FILTER_RELEASE_FOR_SECTION_SYNCHRONIZATION (UCHAR)-2
7401#define FS_FILTER_ACQUIRE_FOR_MOD_WRITE (UCHAR)-3
7402#define FS_FILTER_RELEASE_FOR_MOD_WRITE (UCHAR)-4
7403#define FS_FILTER_ACQUIRE_FOR_CC_FLUSH (UCHAR)-5
7404#define FS_FILTER_RELEASE_FOR_CC_FLUSH (UCHAR)-6
7405
7411 struct _FILE_OBJECT *FileObject;
7414
7419
7420typedef VOID
7425
7426typedef struct _FS_FILTER_CALLBACKS {
7442
7450
7451#define IO_FILE_OBJECT_NON_PAGED_POOL_CHARGE 64
7452#define IO_FILE_OBJECT_PAGED_POOL_CHARGE 1024
7453
7454#if (NTDDI_VERSION >= NTDDI_VISTA)
7455typedef struct _IO_PRIORITY_INFO {
7461#endif
7463
7464$if (_WDMDDK_)
7465
7466#define D3COLD_SUPPORT_INTERFACE_VERSION 1
7467
7468typedef
7469_Function_class_(SET_D3COLD_SUPPORT)
7471VOID
7472SET_D3COLD_SUPPORT(
7473 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7475
7476typedef SET_D3COLD_SUPPORT *PSET_D3COLD_SUPPORT;
7477
7479{
7488
7492 _In_ DEVICE_WAKE_DEPTH WakeDepth)
7493{
7495 {
7502 };
7503
7504 if (WakeDepth < 0 || WakeDepth >= DeviceWakeDepthMaximum)
7505 {
7507 }
7508 else
7509 {
7510 return dstateMap[WakeDepth];
7511 }
7512}
7513
7514typedef
7515_Function_class_(GET_IDLE_WAKE_INFO)
7518GET_IDLE_WAKE_INFO(
7519 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7522
7523typedef GET_IDLE_WAKE_INFO *PGET_IDLE_WAKE_INFO;
7524
7525typedef
7526_Function_class_(GET_D3COLD_CAPABILITY)
7529GET_D3COLD_CAPABILITY(
7530 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7532
7533typedef GET_D3COLD_CAPABILITY *PGET_D3COLD_CAPABILITY;
7534
7536{
7541
7542typedef
7543_Function_class_(GET_D3COLD_LAST_TRANSITION_STATUS)
7545VOID
7546GET_D3COLD_LAST_TRANSITION_STATUS(
7547 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7549
7550typedef GET_D3COLD_LAST_TRANSITION_STATUS *PGET_D3COLD_LAST_TRANSITION_STATUS;
7551
7553{
7565
7566typedef
7567_Function_class_(D3COLD_REQUEST_CORE_POWER_RAIL)
7569VOID
7570D3COLD_REQUEST_CORE_POWER_RAIL(
7571 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7573
7574typedef D3COLD_REQUEST_CORE_POWER_RAIL *PD3COLD_REQUEST_CORE_POWER_RAIL;
7575
7576typedef
7577_Function_class_(D3COLD_REQUEST_AUX_POWER)
7580D3COLD_REQUEST_AUX_POWER(
7581 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7584
7585typedef D3COLD_REQUEST_AUX_POWER *PD3COLD_REQUEST_AUX_POWER;
7586
7587typedef
7588_Function_class_(D3COLD_REQUEST_PERST_DELAY)
7591D3COLD_REQUEST_PERST_DELAY(
7592 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7594
7595typedef D3COLD_REQUEST_PERST_DELAY *PD3COLD_REQUEST_PERST_DELAY;
7596
7598{
struct _IO_STACK_LOCATION * PIO_STACK_LOCATION
struct _IRP * PIRP
struct _IO_STACK_LOCATION IO_STACK_LOCATION
struct _IRP IRP
static UCHAR NotificationContext
unsigned char BOOLEAN
unsigned int UINT32
PULONG FileCount
Definition: SfcGetFiles.c:18
static ULONG StackSize
Definition: StackOverflow.c:19
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
LONG NTSTATUS
Definition: precomp.h:26
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:297
WCHAR RootDirectory[MAX_PATH]
Definition: format.c:74
PWCHAR FileSystem
Definition: format.c:72
KAFFINITY * PKAFFINITY
Definition: basetsd.h:195
@ Reserved2
Definition: bcd.h:202
@ Reserved1
Definition: bcd.h:201
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
_In_ PIRP Irp
Definition: csq.h:116
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
#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:1057
#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 PFCB IN PFILE_OBJECT FileObject IN ULONG AllocationSize
Definition: fatprocs.h:323
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:25
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:35
_In_ ULONG Mode
Definition: hubbusif.h:303
enum _INTERFACE_TYPE INTERFACE_TYPE
#define _NTIFS_
Definition: ifssupp.h:20
struct _FILE_IO_COMPLETION_NOTIFICATION_INFORMATION * PFILE_IO_COMPLETION_NOTIFICATION_INFORMATION
@ FileRemoteProtocolInformation
Definition: winternl.h:501
@ FileStandardLinkInformation
Definition: winternl.h:500
@ FileIsRemoteDeviceInformation
Definition: winternl.h:497
@ FileAttributeCacheInformation
Definition: winternl.h:498
@ FileNumaNodeInformation
Definition: winternl.h:499
struct _FILE_ATTRIBUTE_TAG_INFORMATION FILE_ATTRIBUTE_TAG_INFORMATION
struct _FILE_IO_COMPLETION_NOTIFICATION_INFORMATION FILE_IO_COMPLETION_NOTIFICATION_INFORMATION
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_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 bits
Definition: infblock.c:15
ULONG IoWriteOperationCount
Definition: iomgr.c:41
LARGE_INTEGER IoReadTransferCount
Definition: iomgr.c:40
KSPIN_LOCK IoStatisticsLock
Definition: iomgr.c:45
LARGE_INTEGER IoWriteTransferCount
Definition: iomgr.c:42
ULONG IoOtherOperationCount
Definition: iomgr.c:43
LARGE_INTEGER IoOtherTransferCount
Definition: iomgr.c:44
ULONG IoReadOperationCount
Definition: iomgr.c:39
#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[]
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
static OUT PIO_STATUS_BLOCK IoStatusBlock
Definition: pipe.c:75
static OUT PIO_STATUS_BLOCK OUT PVOID IN ULONG IN FILE_INFORMATION_CLASS FileInformationClass
Definition: pipe.c:75
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_ PNDIS_STRING _In_opt_ NDIS_HANDLE DeviceContext
Definition: ndis.h:5246
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169
_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:362
_In_opt_ PSID Group
Definition: rtlfuncs.h:1670
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
Definition: rtlfuncs.h:1157
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:13
ULONG ACCESS_MASK
Definition: nt_native.h:40
struct _FILE_FS_DEVICE_INFORMATION * PFILE_FS_DEVICE_INFORMATION
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:877
struct _FILE_END_OF_FILE_INFORMATION FILE_END_OF_FILE_INFORMATION
LONGLONG USN
Definition: ntbasedef.h:396
void *POINTER_64 PVOID64
Definition: ntbasedef.h:331
_NullNull_terminated_ WCHAR * PZZWSTR
Definition: ntbasedef.h:428
#define DUMMYUNIONNAME
Definition: ntbasedef.h:32
#define DUMMYSTRUCTNAME
Definition: ntbasedef.h:58
#define _ANONYMOUS_UNION
Definition: ntbasedef.h:30
#define _ANONYMOUS_STRUCT
Definition: ntbasedef.h:56
#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
#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
#define CONST
Definition: pedump.c:81
#define BOOLEAN
Definition: pedump.c:73
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
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
struct tagRange Range
struct _FILE_FS_VOLUME_INFORMATION * PFILE_FS_VOLUME_INFORMATION
struct _FILE_PIPE_WAIT_FOR_BUFFER * PFILE_PIPE_WAIT_FOR_BUFFER
struct _FILE_PIPE_WAIT_FOR_BUFFER FILE_PIPE_WAIT_FOR_BUFFER
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
@ Reserved3
Definition: sacdrv.h:1471
@ 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:103
@ PointerController
Definition: arc.h:125
@ MultiFunctionAdapter
Definition: arc.h:116
@ SecondaryIcache
Definition: arc.h:109
@ ModemPeripheral
Definition: arc.h:132
@ RealModeIrqRoutingTable
Definition: arc.h:143
@ SerialController
Definition: arc.h:121
@ PrimaryIcache
Definition: arc.h:107
@ ParallelController
Definition: arc.h:124
@ DiskPeripheral
Definition: arc.h:129
@ SystemMemory
Definition: arc.h:141
@ ArcSystem
Definition: arc.h:104
@ KeyboardPeripheral
Definition: arc.h:136
@ AudioController
Definition: arc.h:127
@ WormController
Definition: arc.h:120
@ TerminalPeripheral
Definition: arc.h:137
@ PrinterPeripheral
Definition: arc.h:134
@ RealModePCIEnumeration
Definition: arc.h:144
@ TapeController
Definition: arc.h:118
@ PrimaryDcache
Definition: arc.h:108
@ FloppyDiskPeripheral
Definition: arc.h:130
@ SecondaryDcache
Definition: arc.h:110
@ CentralProcessor
Definition: arc.h:105
@ KeyboardController
Definition: arc.h:126
@ DockingInformation
Definition: arc.h:142
@ LinePeripheral
Definition: arc.h:139
@ OtherPeripheral
Definition: arc.h:138
@ MonitorPeripheral
Definition: arc.h:133
@ TcAdapter
Definition: arc.h:113
@ NetworkPeripheral
Definition: arc.h:140
@ OtherController
Definition: arc.h:128
@ TapePeripheral
Definition: arc.h:131
@ MaximumType
Definition: arc.h:145
@ SecondaryCache
Definition: arc.h:111
@ CdromController
Definition: arc.h:119
@ PointerPeripheral
Definition: arc.h:135
@ DisplayController
Definition: arc.h:123
@ NetworkController
Definition: arc.h:122
@ DtiAdapter
Definition: arc.h:115
@ FloatingPointProcessor
Definition: arc.h:106
@ Removable
Definition: arc.h:81
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
const KSDEVICE_DESCRIPTOR DeviceDescriptor
Definition: splitter.c:257
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
_In_ BOOLEAN Read
Definition: strmini.h:479
Definition: fatfs.h:173
Definition: shell.h:41
base for all directory entries
Definition: entries.h:138
PCI_AGP_CONTROL AgpControl
Definition: iotypes.h:4776
PCI_AGP_ISOCH_COMMAND IsochCommand
Definition: iotypes.h:4781
PCI_AGP_APERTURE_PAGE_SIZE AperturePageSize
Definition: iotypes.h:4778
PCI_AGP_ISOCH_STATUS IsochStatus
Definition: iotypes.h:4775
USHORT MaxMemoryReadByteCount
Definition: iotypes.h:3726
ULONG DeviceNumber
Definition: iotypes.h:3735
USHORT DataParityErrorRecoveryEnable
Definition: iotypes.h:3724
ULONG DesignedMaxCumulativeReadSize
Definition: iotypes.h:3744
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:3721
USHORT EnableRelaxedOrdering
Definition: iotypes.h:3725
ULONG UnexpectedSplitCompletion
Definition: iotypes.h:3740
ULONG FunctionNumber
Definition: iotypes.h:3734
ULONG DesignedMaxOutstandingSplitTransactions
Definition: iotypes.h:3743
ULONG SplitCompletionDiscarded
Definition: iotypes.h:3739
ULONG ReceivedSplitCompletionErrorMessage
Definition: iotypes.h:3745
ULONG Device64Bit
Definition: iotypes.h:3737
ULONG DesignedMaxMemoryReadByteCount
Definition: iotypes.h:3742
USHORT MaxOutstandingSplitTransactions
Definition: iotypes.h:3727
ULONG Capable133MHz
Definition: iotypes.h:3738
USHORT AsUSHORT
Definition: iotypes.h:3730
ULONG CapablePCIX533
Definition: iotypes.h:3747
ULONG DeviceComplexity
Definition: iotypes.h:3741
USHORT Reserved
Definition: iotypes.h:3728
ULONG CapablePCIX266
Definition: iotypes.h:3746
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:3096
PGPE_CLEAR_STATUS2 GpeClearStatus
Definition: iotypes.h:3101
PGPE_DISCONNECT_VECTOR2 GpeDisconnectVector
Definition: iotypes.h:3098
PGPE_CONNECT_VECTOR2 GpeConnectVector
Definition: iotypes.h:3097
PGPE_DISABLE_EVENT2 GpeDisableEvent
Definition: iotypes.h:3100
PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2 UnregisterForDeviceNotifications
Definition: iotypes.h:3103
PREGISTER_FOR_DEVICE_NOTIFICATIONS2 RegisterForDeviceNotifications
Definition: iotypes.h:3102
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:3095
PGPE_ENABLE_EVENT2 GpeEnableEvent
Definition: iotypes.h:3099
PUNREGISTER_FOR_DEVICE_NOTIFICATIONS UnregisterForDeviceNotifications
Definition: iotypes.h:3024
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:3017
PGPE_CLEAR_STATUS GpeClearStatus
Definition: iotypes.h:3022
PGPE_ENABLE_EVENT GpeEnableEvent
Definition: iotypes.h:3020
PREGISTER_FOR_DEVICE_NOTIFICATIONS RegisterForDeviceNotifications
Definition: iotypes.h:3023
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:3016
PGPE_DISCONNECT_VECTOR GpeDisconnectVector
Definition: iotypes.h:3019
PGPE_DISABLE_EVENT GpeDisableEvent
Definition: iotypes.h:3021
PGPE_CONNECT_VECTOR GpeConnectVector
Definition: iotypes.h:3018
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4521
PGET_SET_DEVICE_DATA GetBusData
Definition: iotypes.h:4524
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4522
PGET_SET_DEVICE_DATA SetBusData
Definition: iotypes.h:4523
_In_ PDEVICE_OBJECT ReserveDevice
Definition: iotypes.h:4598
_Inout_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4579
PDEVICE_OBJECT OwningObject
Definition: iotypes.h:4561
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4659
PARBITER_HANDLER ArbiterHandler
Definition: iotypes.h:4661
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4660
Definition: iotypes.h:4631
ULONG BusNumber
Definition: iotypes.h:4641
ARBITER_RESULT Result
Definition: iotypes.h:4644
PIO_RESOURCE_DESCRIPTOR SelectedAlternative
Definition: iotypes.h:4643
LONG_PTR WorkSpace
Definition: iotypes.h:4638
ULONG AlternativeCount
Definition: iotypes.h:4633
PDEVICE_OBJECT PhysicalDeviceObject
Definition: iotypes.h:4635
ULONG Flags
Definition: iotypes.h:4637
PIO_RESOURCE_DESCRIPTOR Alternatives
Definition: iotypes.h:4634
LIST_ENTRY ListEntry
Definition: iotypes.h:4632
ARBITER_REQUEST_SOURCE RequestSource
Definition: iotypes.h:4636
ULONG SlotNumber
Definition: iotypes.h:4640
INTERFACE_TYPE InterfaceType
Definition: iotypes.h:4639
PCM_PARTIAL_RESOURCE_DESCRIPTOR Assignment
Definition: iotypes.h:4642
ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict
Definition: iotypes.h:4607
ARBITER_ADD_RESERVED_PARAMETERS AddReserved
Definition: iotypes.h:4609
ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation
Definition: iotypes.h:4603
ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation
Definition: iotypes.h:4605
ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation
Definition: iotypes.h:4604
ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources
Definition: iotypes.h:4606
ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate
Definition: iotypes.h:4608
_Out_ PCM_PARTIAL_RESOURCE_LIST * AllocatedResources
Definition: iotypes.h:4583
_In_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4594
_In_ PDEVICE_OBJECT PhysicalDeviceObject
Definition: iotypes.h:4587
_In_ PIO_RESOURCE_DESCRIPTOR ConflictingResource
Definition: iotypes.h:4588
_Out_ PARBITER_CONFLICT_INFO * Conflicts
Definition: iotypes.h:4590
_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom
Definition: iotypes.h:4575
_Inout_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4573
_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom
Definition: iotypes.h:4569
_Inout_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4567
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:4483
BOOLEAN AtDiskSecondaryAddressClaimed
Definition: iotypes.h:4484
KDEVICE_QUEUE DeviceWaitQueue
Definition: iotypes.h:4465
LARGE_INTEGER Spare2
Definition: iotypes.h:4467
PVOID ControllerExtension
Definition: iotypes.h:4464
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:7602
PD3COLD_REQUEST_CORE_POWER_RAIL RequestCorePowerRail
Definition: iotypes.h:7604
PD3COLD_REQUEST_AUX_POWER RequestAuxPower
Definition: iotypes.h:7605
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:7603
PD3COLD_REQUEST_PERST_DELAY RequestPerstDelay
Definition: iotypes.h:7606
PGET_D3COLD_CAPABILITY GetBusDriverD3ColdSupport
Definition: iotypes.h:7562
PSET_D3COLD_SUPPORT SetD3ColdSupport
Definition: iotypes.h:7559
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:7558
PGET_D3COLD_CAPABILITY GetD3ColdCapability
Definition: iotypes.h:7561
PGET_D3COLD_LAST_TRANSITION_STATUS GetLastTransitionStatus
Definition: iotypes.h:7563
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:7557
PGET_IDLE_WAKE_INFO GetIdleWakeInfo
Definition: iotypes.h:7560
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
PDEVICE_OBJECT DeviceObject
Definition: iotypes.h:2169
ULONG CheckSum
Definition: iotypes.h:4494
ULONG PartitionStyle
Definition: iotypes.h:4490
ULONG Signature
Definition: iotypes.h:4493
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:2295
USHORT Size
Definition: iotypes.h:2294
USHORT Version
Definition: iotypes.h:2293
PINITIALIZE_DMA_TRANSFER_CONTEXT InitializeDmaTransferContext
Definition: iotypes.h:2651
PFLUSH_ADAPTER_BUFFERS_EX FlushAdapterBuffersEx
Definition: iotypes.h:2659
PCANCEL_ADAPTER_CHANNEL CancelAdapterChannel
Definition: iotypes.h:2655
PGET_DMA_ADAPTER_INFO GetDmaAdapterInfo
Definition: iotypes.h:2649
PFREE_ADAPTER_CHANNEL FreeAdapterChannel
Definition: iotypes.h:2639
PMAP_TRANSFER_EX MapTransferEx
Definition: iotypes.h:2656
PGET_DMA_TRANSFER_INFO GetDmaTransferInfo
Definition: iotypes.h:2650
PALLOCATE_ADAPTER_CHANNEL_EX AllocateAdapterChannelEx
Definition: iotypes.h:2653
PALLOCATE_COMMON_BUFFER AllocateCommonBuffer
Definition: iotypes.h:2635
PCANCEL_MAPPED_TRANSFER CancelMappedTransfer
Definition: iotypes.h:2661
PGET_DMA_ALIGNMENT GetDmaAlignment
Definition: iotypes.h:2642
PPUT_SCATTER_GATHER_LIST PutScatterGatherList
Definition: iotypes.h:2645
PBUILD_SCATTER_GATHER_LIST BuildScatterGatherList
Definition: iotypes.h:2647
PFLUSH_DMA_BUFFER FlushDmaBuffer
Definition: iotypes.h:2663
PCONFIGURE_ADAPTER_CHANNEL ConfigureAdapterChannel
Definition: iotypes.h:2654
PFREE_COMMON_BUFFER FreeCommonBuffer
Definition: iotypes.h:2636
PFREE_COMMON_BUFFER_FROM_VECTOR FreeCommonBufferFromVector
Definition: iotypes.h:2670
PALLOCATE_COMMON_BUFFER_EX AllocateCommonBufferEx
Definition: iotypes.h:2652
PFREE_COMMON_BUFFER_VECTOR FreeCommonBufferVector
Definition: iotypes.h:2671
PREAD_DMA_COUNTER ReadDmaCounter
Definition: iotypes.h:2643
PALLOCATE_ADAPTER_CHANNEL AllocateAdapterChannel
Definition: iotypes.h:2637
PBUILD_MDL_FROM_SCATTER_GATHER_LIST BuildMdlFromScatterGatherList
Definition: iotypes.h:2648
PFLUSH_ADAPTER_BUFFERS FlushAdapterBuffers
Definition: iotypes.h:2638
PALLOCATE_COMMON_BUFFER_WITH_BOUNDS AllocateCommonBufferWithBounds
Definition: iotypes.h:2667
PJOIN_DMA_DOMAIN JoinDmaDomain
Definition: iotypes.h:2664
PALLOCATE_DOMAIN_COMMON_BUFFER AllocateDomainCommonBuffer
Definition: iotypes.h:2662
PCALCULATE_SCATTER_GATHER_LIST_SIZE CalculateScatterGatherList
Definition: iotypes.h:2646
PGET_SCATTER_GATHER_LIST_EX GetScatterGatherListEx
Definition: iotypes.h:2657
PGET_COMMON_BUFFER_FROM_VECTOR_BY_INDEX GetCommonBufferFromVectorByIndex
Definition: iotypes.h:2669
PGET_SCATTER_GATHER_LIST GetScatterGatherList
Definition: iotypes.h:2644
PFREE_MAP_REGISTERS FreeMapRegisters
Definition: iotypes.h:2640
PMAP_TRANSFER MapTransfer
Definition: iotypes.h:2641
PGET_DMA_DOMAIN GetDmaDomain
Definition: iotypes.h:2666
PLEAVE_DMA_DOMAIN LeaveDmaDomain
Definition: iotypes.h:2665
PFREE_ADAPTER_OBJECT FreeAdapterObject
Definition: iotypes.h:2660
PBUILD_SCATTER_GATHER_LIST_EX BuildScatterGatherListEx
Definition: iotypes.h:2658
PALLOCATE_COMMON_BUFFER_VECTOR AllocateCommonBufferVector
Definition: iotypes.h:2668
PPUT_DMA_ADAPTER PutDmaAdapter
Definition: iotypes.h:2634
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:2220
struct _DRIVER_OBJECT * DriverObject
Definition: iotypes.h:2219
UNICODE_STRING ServiceKeyName
Definition: iotypes.h:2222
PUNICODE_STRING HardwareDatabase
Definition: iotypes.h:2284
PVOID DriverStart
Definition: iotypes.h:2279
struct _FAST_IO_DISPATCH * FastIoDispatch
Definition: iotypes.h:2285
PVOID DriverSection
Definition: iotypes.h:2281
PDRIVER_STARTIO DriverStartIo
Definition: iotypes.h:2287
CSHORT Size
Definition: iotypes.h:2276
ULONG DriverSize
Definition: iotypes.h:2280
PDRIVER_INITIALIZE DriverInit
Definition: iotypes.h:2286
PDRIVER_EXTENSION DriverExtension
Definition: iotypes.h:2282
CSHORT Type
Definition: iotypes.h:2275
PDEVICE_OBJECT DeviceObject
Definition: iotypes.h:2277
PDRIVER_UNLOAD DriverUnload
Definition: iotypes.h:2288
UNICODE_STRING DriverName
Definition: iotypes.h:2283
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:5850
LARGE_INTEGER FreeSpaceStopFiltering
Definition: iotypes.h:6038
LARGE_INTEGER FreeSpaceStartFiltering
Definition: iotypes.h:6036
LARGE_INTEGER DefaultQuotaLimit
Definition: iotypes.h:6040
LARGE_INTEGER DefaultQuotaThreshold
Definition: iotypes.h:6039
LARGE_INTEGER FreeSpaceThreshold
Definition: iotypes.h:6037
LARGE_INTEGER ChangeTime
Definition: iotypes.h:5708
LARGE_INTEGER EndOfFile
Definition: iotypes.h:5709
LARGE_INTEGER CreationTime
Definition: iotypes.h:5705
LARGE_INTEGER AllocationSize
Definition: iotypes.h:5710
LARGE_INTEGER LastAccessTime
Definition: iotypes.h:5706
LARGE_INTEGER LastWriteTime
Definition: iotypes.h:5707
LARGE_INTEGER LastWriteTime
Definition: iotypes.h:5755
LARGE_INTEGER LastAccessTime
Definition: iotypes.h:5754
LARGE_INTEGER AllocationSize
Definition: iotypes.h:5758
LARGE_INTEGER CreationTime
Definition: iotypes.h:5753
LARGE_INTEGER LastAccessTime
Definition: iotypes.h:5721
LARGE_INTEGER AllocationSize
Definition: iotypes.h:5725
LARGE_INTEGER CreationTime
Definition: iotypes.h:5720
LARGE_INTEGER LastWriteTime
Definition: iotypes.h:5722
Definition: iotypes.h:5938
ULONG NextEntryOffset
Definition: iotypes.h:5939
ULONG FileNameLength
Definition: iotypes.h:5941
LONGLONG ParentFileId
Definition: iotypes.h:5940
PLARGE_INTEGER ReadTimeout
Definition: iotypes.h:5930
LARGE_INTEGER CollectDataTime
Definition: iotypes.h:5917
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForModifiedPageWriter
Definition: iotypes.h:7438
PFS_FILTER_CALLBACK PreAcquireForCcFlush
Definition: iotypes.h:7433
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForCcFlush
Definition: iotypes.h:7434
ULONG SizeOfFsFilterCallbacks
Definition: iotypes.h:7427
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForCcFlush
Definition: iotypes.h:7436
PFS_FILTER_CALLBACK PreReleaseForModifiedPageWriter
Definition: iotypes.h:7439
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForSectionSynchronization
Definition: iotypes.h:7430
PFS_FILTER_CALLBACK PreAcquireForSectionSynchronization
Definition: iotypes.h:7429
PFS_FILTER_CALLBACK PreReleaseForCcFlush
Definition: iotypes.h:7435
PFS_FILTER_CALLBACK PreAcquireForModifiedPageWriter
Definition: iotypes.h:7437
PFS_FILTER_CALLBACK PreReleaseForSectionSynchronization
Definition: iotypes.h:7431
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForSectionSynchronization
Definition: iotypes.h:7432
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForModifiedPageWriter
Definition: iotypes.h:7440
FS_FILTER_PARAMETERS Parameters
Definition: iotypes.h:7412
struct _DEVICE_OBJECT * DeviceObject
Definition: iotypes.h:7410
ULONG SizeOfFsFilterCallbackData
Definition: iotypes.h:7407
struct _FILE_OBJECT * FileObject
Definition: iotypes.h:7411
Definition: scsiwmi.h:51
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5502
PGET_INTERRUPT_ROUTING GetInterruptRouting
Definition: iotypes.h:5503
PUPDATE_INTERRUPT_LINE UpdateInterruptLine
Definition: iotypes.h:5505
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5501
PSET_INTERRUPT_ROUTING_TOKEN SetInterruptRoutingToken
Definition: iotypes.h:5504
_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:2877
struct _IRP * Irp
Definition: iotypes.h:2876
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:4514
struct _ECP_LIST * ExtraCreateParameter
Definition: iotypes.h:4512
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:7459
ULONG ThreadPriority
Definition: iotypes.h:7457
ULONG PagePriority
Definition: iotypes.h:7458
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:2742
PACCESS_STATE AccessState
Definition: iotypes.h:2867
PSECURITY_QUALITY_OF_SERVICE SecurityQos
Definition: iotypes.h:2866
ACCESS_MASK DesiredAccess
Definition: iotypes.h:2868
IO_SESSION_STATE SessionState
Definition: iotypes.h:454
ULONG POINTER_ALIGNMENT FileIndex
Definition: iotypes.h:3151
DEVICE_TEXT_TYPE DeviceTextType
Definition: iotypes.h:3270
PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: iotypes.h:3219
ULONG POINTER_ALIGNMENT IoControlCode
Definition: iotypes.h:3210
PINTERFACE Interface
Definition: iotypes.h:3248
USHORT POINTER_ALIGNMENT FileAttributes
Definition: iotypes.h:3119
struct _MAILSLOT_CREATE_PARAMETERS * Parameters
Definition: iotypes.h:3135
PCM_RESOURCE_LIST AllocatedResourcesTranslated
Definition: iotypes.h:3297
POWER_ACTION POINTER_ALIGNMENT ShutdownType
Definition: iotypes.h:3293
ULONG POINTER_ALIGNMENT InputBufferLength
Definition: iotypes.h:3198
PFILE_OBJECT FileObject
Definition: iotypes.h:3169
PIO_SECURITY_CONTEXT SecurityContext
Definition: iotypes.h:3117
ULONG POINTER_ALIGNMENT EaIndex
Definition: iotypes.h:3183
BOOLEAN ReplaceIfExists
Definition: iotypes.h:3172
BUS_QUERY_ID_TYPE IdType
Definition: iotypes.h:3267
PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList
Definition: iotypes.h:3255
PUNICODE_STRING FileName
Definition: iotypes.h:3149
USHORT POINTER_ALIGNMENT Reserved
Definition: iotypes.h:3126
LCID POINTER_ALIGNMENT LocaleId
Definition: iotypes.h:3271
DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT Type
Definition: iotypes.h:3276
ULONG POINTER_ALIGNMENT FsControlCode
Definition: iotypes.h:3199
FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass
Definition: iotypes.h:3190
PDEVICE_OBJECT DeviceObject
Definition: iotypes.h:3223
PCM_RESOURCE_LIST AllocatedResources
Definition: iotypes.h:3296
LARGE_INTEGER ByteOffset
Definition: iotypes.h:3140
FILE_INFORMATION_CLASS FileInformationClass
Definition: iotypes.h:3150
POWER_STATE_TYPE POINTER_ALIGNMENT Type
Definition: iotypes.h:3291
SECURITY_INFORMATION SecurityInformation
Definition: iotypes.h:3214
SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext
Definition: iotypes.h:3288
ULONG POINTER_ALIGNMENT EaLength
Definition: iotypes.h:3121
struct _IO_SECURITY_CONTEXT * SecurityContext
Definition: iotypes.h:3124
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
Definition: iotypes.h:3128
SYSTEM_POWER_STATE PowerState
Definition: iotypes.h:3279
USHORT ShareAccess
Definition: iotypes.h:3120
HANDLE DeleteHandle
Definition: iotypes.h:3176
BOOLEAN AdvanceOnly
Definition: iotypes.h:3173
struct _SCSI_REQUEST_BLOCK * Srb
Definition: iotypes.h:3230
ULONG POINTER_ALIGNMENT CompletionFilter
Definition: iotypes.h:3155
PIO_COMPLETION_ROUTINE CompletionRoutine
Definition: iotypes.h:3314
FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass
Definition: iotypes.h:3164
struct _FILE_GET_QUOTA_INFORMATION * SidList
Definition: iotypes.h:3235
PDEVICE_CAPABILITIES Capabilities
Definition: iotypes.h:3252
ULONG POINTER_ALIGNMENT Length
Definition: iotypes.h:3215
PVOID InterfaceSpecificData
Definition: iotypes.h:3249
ULONG POINTER_ALIGNMENT Key
Definition: iotypes.h:3139
POWER_STATE POINTER_ALIGNMENT State
Definition: iotypes.h:3292
DIRECTORY_NOTIFY_INFORMATION_CLASS POINTER_ALIGNMENT DirectoryNotifyInformationClass
Definition: iotypes.h:3160
PLARGE_INTEGER Length
Definition: iotypes.h:3203
CONST GUID * InterfaceType
Definition: iotypes.h:3245
PPOWER_SEQUENCE PowerSequence
Definition: iotypes.h:3282
DEVICE_RELATION_TYPE Type
Definition: iotypes.h:3242
PVOID Type3InputBuffer
Definition: iotypes.h:3200
ULONG_PTR ProviderId
Definition: iotypes.h:3300
Definition: ketypes.h:547
Definition: ketypes.h:578
Definition: ketypes.h:699
INTERFACE_TYPE LegacyBusType
Definition: iotypes.h:835
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5513
PLEGACY_DEVICE_DETECTION_HANDLER LegacyDeviceDetection
Definition: iotypes.h:5514
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5512
Definition: typedefs.h:120
ACCESS_MASK GrantedAccess
Definition: iotypes.h:181
ULONG PathNameLength
Definition: iotypes.h:6230
PciReadWriteConfig WriteConfig
Definition: iotypes.h:5283
PciLine2Pin Line2Pin
Definition: iotypes.h:5285
ULONG Tag
Definition: iotypes.h:5280
PciReadWriteConfig ReadConfig
Definition: iotypes.h:5282
PCI_SLOT_NUMBER ParentSlot
Definition: iotypes.h:5286
ULONG Version
Definition: iotypes.h:5281
PciPin2Line Pin2Line
Definition: iotypes.h:5284
ULONG AdditionalUncorrectableError
Definition: iotypes.h:4848
USHORT SplitCompletionOverrun
Definition: iotypes.h:4811
USHORT DownstreamSplitTransactionCapacity
Definition: iotypes.h:4841
USHORT SplitCompletionDiscarded
Definition: iotypes.h:4809
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:4804
ULONG SplitCompletionDiscarded
Definition: iotypes.h:4828
USHORT UpstreamSplitTransactionLimit
Definition: iotypes.h:4840
ULONG SelectSecondaryRegisters
Definition: iotypes.h:4845
ULONG UnexpectedSplitCompletion
Definition: iotypes.h:4829
USHORT UnexpectedSplitCompletion
Definition: iotypes.h:4810
ULONG AdditionalCorrectableError
Definition: iotypes.h:4847
ULONG DisableSingleBitCorrection
Definition: iotypes.h:4857
USHORT DownstreamSplitTransactionLimit
Definition: iotypes.h:4842
USHORT UpstreamSplitTransactionCapacity
Definition: iotypes.h:4839
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:4699
ULONG GTLB_Enable
Definition: iotypes.h:4756
ULONG CAL_Disable
Definition: iotypes.h:4758
PCI_LINE_TO_PIN LineToPin
Definition: iotypes.h:5332
PCI_PIN_TO_LINE PinToLine
Definition: iotypes.h:5331
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5328
PCI_ROOT_BUS_CAPABILITY RootBusCapability
Definition: iotypes.h:5333
PCI_EXPRESS_WAKE_CONTROL ExpressWakeControl
Definition: iotypes.h:5334
PCI_READ_WRITE_CONFIG ReadConfig
Definition: iotypes.h:5329
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5327
PCI_READ_WRITE_CONFIG WriteConfig
Definition: iotypes.h:5330
PCARDBUSDELETE DeleteCardBus
Definition: iotypes.h:5564
PCARDBUSPCIDISPATCH DispatchPnp
Definition: iotypes.h:5565
PDRIVER_OBJECT DriverObject
Definition: iotypes.h:5562
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5560
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5561
PCI_COMMON_HEADER DUMMYSTRUCTNAME
Definition: iotypes.h:3589
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:4006
PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity
Definition: iotypes.h:4003
PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus
Definition: iotypes.h:4004
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:4000
PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask
Definition: iotypes.h:4005
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY SecUncorrectableErrorSeverity
Definition: iotypes.h:4010
PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask
Definition: iotypes.h:4002
PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus
Definition: iotypes.h:4001
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS SecUncorrectableErrorStatus
Definition: iotypes.h:4008
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK SecUncorrectableErrorMask
Definition: iotypes.h:4009
PCI_EXPRESS_SEC_AER_CAPABILITIES SecCapabilitiesAndControl
Definition: iotypes.h:4011
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY SecUncorrectableErrorSeverity
Definition: iotypes.h:4040
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK SecUncorrectableErrorMask
Definition: iotypes.h:4039
PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity
Definition: iotypes.h:4033
PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask
Definition: iotypes.h:4035
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS SecUncorrectableErrorStatus
Definition: iotypes.h:4038
PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus
Definition: iotypes.h:4034
PCI_EXPRESS_SEC_AER_CAPABILITIES SecCapabilitiesAndControl
Definition: iotypes.h:4041
PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus
Definition: iotypes.h:4031
PCI_EXPRESS_AER_CAPABILITIES CapabilitiesAndControl
Definition: iotypes.h:4036
PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask
Definition: iotypes.h:4032
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:4030
PCI_EXPRESS_SLOT_STATUS_REGISTER SlotStatus
Definition: iotypes.h:5136
PCI_EXPRESS_LINK_CONTROL_REGISTER LinkControl
Definition: iotypes.h:5132
PCI_EXPRESS_DEVICE_STATUS_REGISTER DeviceStatus
Definition: iotypes.h:5130
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:5126
PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER RootCapabilities
Definition: iotypes.h:5138
PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER DeviceCapabilities
Definition: iotypes.h:5128
PCI_EXPRESS_ROOT_CONTROL_REGISTER RootControl
Definition: iotypes.h:5137
PCI_EXPRESS_LINK_CAPABILITIES_REGISTER LinkCapabilities
Definition: iotypes.h:5131
PCI_EXPRESS_ROOT_STATUS_REGISTER RootStatus
Definition: iotypes.h:5139
PCI_EXPRESS_CAPABILITIES_REGISTER ExpressCapabilities
Definition: iotypes.h:5127
PCI_EXPRESS_SLOT_CONTROL_REGISTER SlotControl
Definition: iotypes.h:5135
PCI_EXPRESS_LINK_STATUS_REGISTER LinkStatus
Definition: iotypes.h:5133
PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER SlotCapabilities
Definition: iotypes.h:5134
PCI_EXPRESS_DEVICE_CONTROL_REGISTER DeviceControl
Definition: iotypes.h:5129
PCI_EXPRESS_ROOT_ERROR_STATUS RootErrorStatus
Definition: iotypes.h:4025
PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask
Definition: iotypes.h:4021
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:4016
PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus
Definition: iotypes.h:4020
PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus
Definition: iotypes.h:4017
PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask
Definition: iotypes.h:4018
PCI_EXPRESS_ERROR_SOURCE_ID ErrorSourceId
Definition: iotypes.h:4026
PCI_EXPRESS_ROOT_ERROR_COMMAND RootErrorCommand
Definition: iotypes.h:4024
PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity
Definition: iotypes.h:4019
PCI_EXPRESS_AER_CAPABILITIES CapabilitiesAndControl
Definition: iotypes.h:4022
PPCI_EXPRESS_ROOT_PORT_READ_CONFIG_SPACE ReadConfigSpace
Definition: iotypes.h:4294
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4293
PPCI_EXPRESS_ROOT_PORT_WRITE_CONFIG_SPACE WriteConfigSpace
Definition: iotypes.h:4295
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4292
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:3772
PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY VFMigrationStateArrayOffset
Definition: iotypes.h:4099
PCI_EXPRESS_SRIOV_CAPS SRIOVCapabilities
Definition: iotypes.h:4084
PCI_EXPRESS_SRIOV_STATUS SRIOVStatus
Definition: iotypes.h:4086
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:4083
PCI_EXPRESS_SRIOV_CONTROL SRIOVControl
Definition: iotypes.h:4085
PPCI_MSIX_GET_TABLE_SIZE GetTableSize
Definition: iotypes.h:4341
PPCI_MSIX_MASKUNMASK_ENTRY UnmaskTableEntry
Definition: iotypes.h:4339
PPCI_MSIX_SET_ENTRY SetTableEntry
Definition: iotypes.h:4337
PPCI_MSIX_MASKUNMASK_ENTRY MaskTableEntry
Definition: iotypes.h:4338
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4336
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4335
PPCI_MSIX_GET_ENTRY GetTableEntry
Definition: iotypes.h:4340
UCHAR D3HotSupportsStopClock
Definition: iotypes.h:3699
UCHAR BusPowerClockControlEnabled
Definition: iotypes.h:3700
USHORT DataSelect
Definition: iotypes.h:3692
USHORT PowerState
Definition: iotypes.h:3689
USHORT Rsvd1
Definition: iotypes.h:3690
USHORT PMEStatus
Definition: iotypes.h:3694
USHORT PMEEnable
Definition: iotypes.h:3691
USHORT DataScale
Definition: iotypes.h:3693
UCHAR Version
Definition: iotypes.h:3671
UCHAR DeviceSpecificInitialization
Definition: iotypes.h:3674
UCHAR Rsvd2
Definition: iotypes.h:3675
UCHAR Rsvd1
Definition: iotypes.h:3673
UCHAR PMEClock
Definition: iotypes.h:3672
PPME_GET_INFORMATION GetPmeInformation
Definition: iotypes.h:5574
PPME_CLEAR_PME_STATUS ClearPmeStatus
Definition: iotypes.h:5575
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5573
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5572
PPME_SET_PME_ENABLE UpdateEnable
Definition: iotypes.h:5576
PCI_PMCSR_BSE BridgeSupport
Definition: iotypes.h:3714
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:3704
PCI_PMCSR ControlStatus
Definition: iotypes.h:3710
PCI_PMC Capabilities
Definition: iotypes.h:3706
PCI_ROOT_BUS_OSC_SUPPORT_FIELD OscFeatureSupport
Definition: iotypes.h:4931
PCI_ROOT_BUS_OSC_CONTROL_FIELD OscControlRequest
Definition: iotypes.h:4932
PCI_HARDWARE_INTERFACE SecondaryInterface
Definition: iotypes.h:4923
PCI_ROOT_BUS_OSC_CONTROL_FIELD OscControlGranted
Definition: iotypes.h:4933
ULONG FunctionNumber
Definition: iotypes.h:3493
ULONG DeviceNumber
Definition: iotypes.h:3492
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:4868
PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE Type
Definition: iotypes.h:5236
PGET_LOCATION_STRING GetLocationString
Definition: iotypes.h:4544
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4542
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4543
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:7247
LARGE_INTEGER FileId
Definition: iotypes.h:7248
PVOID LinkNode
Definition: iotypes.h:5469
ULONG StaticVector
Definition: iotypes.h:5470
PHYSICAL_ADDRESS Address
Definition: iotypes.h:2173
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:4692
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4693
PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER TranslateResourceRequirements
Definition: iotypes.h:4695
PTRANSLATE_RESOURCE_HANDLER TranslateResources
Definition: iotypes.h:4694
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 * 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
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
#define OUT
Definition: typedefs.h:40
char CCHAR
Definition: typedefs.h:51
char * PCHAR
Definition: typedefs.h:51
short CSHORT
Definition: umtypes.h:127
ULONGLONG Alignment
Definition: iotypes.h:5433
FS_FILTER_SECTION_SYNC_TYPE SyncType
Definition: iotypes.h:7383
BOOLEAN POINTER_ALIGNMENT SafeToRecurse
Definition: iotypes.h:7388
PLARGE_INTEGER EndingOffset
Definition: iotypes.h:7376
FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType
Definition: iotypes.h:7387
PERESOURCE ResourceToRelease
Definition: iotypes.h:7380
PERESOURCE * ResourceToRelease
Definition: iotypes.h:7377
ULONG VFMigrationInterruptNumber
Definition: iotypes.h:4049
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:2055
_In_ UCHAR _In_ UCHAR _In_ ULONG _In_ WDFCONTEXT DriverContext
Definition: wdfdevice.h:1703
_In_ WDFDEVICE _Out_ PWDF_DEVICE_STATE DeviceState
Definition: wdfdevice.h:1999
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4065
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2658
_In_ WDFDEVICE _In_ ULONG AlignmentRequirement
Definition: wdfdevice.h:2854
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
Definition: wdfdevice.h:2225
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3534
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_In_ UCHAR MajorFunction
Definition: wdfdevice.h:1697
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3771
_In_ WDFDEVICE _In_ PPNP_BUS_INFORMATION BusInformation
Definition: wdfdevice.h:3915
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
_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 Interface
Definition: wdffdo.h:465
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
Definition: wdfinterrupt.h:655
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:379
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
Definition: wdfio.h:325
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfio.h:869
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:320
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:322
_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
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_ WDFDRIVER _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT Pdo
Definition: wdfminiport.h:72
_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:3795
#define CreateMailslot
Definition: winbase.h:3786
_In_ ULONG NotifyCode
Definition: winddi.h:4265
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
#define DeviceCapabilities
Definition: wingdi.h:4449
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
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_In_opt_ PALLOCATE_FUNCTION Allocate
Definition: exfuncs.h:814
_Out_ PULONG NumberOfMapRegisters
Definition: halfuncs.h:209
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
Definition: halfuncs.h:160
_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:2744
_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:2576
enum _DEVICE_WAKE_DEPTH DEVICE_WAKE_DEPTH
PCI_MSIX_GET_ENTRY * PPCI_MSIX_GET_ENTRY
Definition: iotypes.h:4322
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:3042
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:7585
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:7369
@ NotifyTypeRetired
Definition: iotypes.h:7371
@ NotifyTypeCreate
Definition: iotypes.h:7370
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:5546
struct _PCI_EXPRESS_ROOTPORT_AER_CAPABILITY PCI_EXPRESS_ROOTPORT_AER_CAPABILITY
_PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE
Definition: iotypes.h:5227
@ ResourceTypeMax
Definition: iotypes.h:5232
@ ResourceTypeRange
Definition: iotypes.h:5229
@ ResourceTypeSingle
Definition: iotypes.h:5228
@ ResourceTypeOverflow
Definition: iotypes.h:5231
@ ResourceTypeExtendedCounterConfiguration
Definition: iotypes.h:5230
_In_ PIRP Irp
Definition: iotypes.h:2883
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:2343
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:2151
@ SingleBusRelations
Definition: iotypes.h:2157
@ EjectionRelations
Definition: iotypes.h:2153
@ RemovalRelations
Definition: iotypes.h:2155
@ BusRelations
Definition: iotypes.h:2152
@ TargetDeviceRelation
Definition: iotypes.h:2156
@ TransportRelations
Definition: iotypes.h:2158
@ PowerRelations
Definition: iotypes.h:2154
#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
struct _PNP_REPLACE_PROCESSOR_LIST * PPNP_REPLACE_PROCESSOR_LIST
_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:5197
@ PciXToExpressBridge
Definition: iotypes.h:5204
@ PciExpressToPciXBridge
Definition: iotypes.h:5203
@ PciExpressUpstreamSwitchPort
Definition: iotypes.h:5201
@ PciExpressDownstreamSwitchPort
Definition: iotypes.h:5202
@ PciExpressRootPort
Definition: iotypes.h:5200
@ PciExpressRootComplexIntegratedEndpoint
Definition: iotypes.h:5205
@ PciExpressRootComplexEventCollector
Definition: iotypes.h:5206
@ PciExpressLegacyEndpoint
Definition: iotypes.h:5199
@ PciExpressEndpoint
Definition: iotypes.h:5198
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:5175
@ L0s_Below64ns
Definition: iotypes.h:5176
@ L0s_1us_2us
Definition: iotypes.h:5181
@ L0s_256ns_512ns
Definition: iotypes.h:5179
@ L0s_64ns_128ns
Definition: iotypes.h:5177
@ L0s_2us_4us
Definition: iotypes.h:5182
@ L0s_Above4us
Definition: iotypes.h:5183
@ L0s_128ns_256ns
Definition: iotypes.h:5178
@ L0s_512ns_1us
Definition: iotypes.h:5180
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:4681
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:2406
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:2245
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:7361
PCI_EXPRESS_MRL_STATE
Definition: iotypes.h:5142
@ MRLOpen
Definition: iotypes.h:5144
@ MRLClosed
Definition: iotypes.h:5143
_In_ ULONG AuxPowerInMilliWatts
Definition: iotypes.h:7582
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:7320
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:2347
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:2440
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:2204
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:2854
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:4328
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:4665
@ TranslateChildToParent
Definition: iotypes.h:4666
@ TranslateParentToChild
Definition: iotypes.h:4667
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:7421
_IO_ACCESS_TYPE
Definition: iotypes.h:423
@ ReadAccess
Definition: iotypes.h:424
@ WriteAccess
Definition: iotypes.h:425
@ ModifyAccess
Definition: iotypes.h:426
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
Definition: iotypes.h:1098
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:7364
@ SyncTypeOther
Definition: iotypes.h:7365
@ SyncTypeCreateSection
Definition: iotypes.h:7366
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:2366
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:2521
_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:2628
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:2204
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:5294
struct _EISA_DMA_CONFIGURATION * PEISA_DMA_CONFIGURATION
VOID(NTAPI * PPME_SET_PME_ENABLE)(IN PDEVICE_OBJECT Pdo, IN BOOLEAN PmeEnable)
Definition: iotypes.h:5541
_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:5308
#define PCI_TYPE0_ADDRESSES
Definition: iotypes.h:3500
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:2263
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:4671
NTSTATUS(NTAPI * PCONFIGURE_ADAPTER_CHANNEL)(_In_ PDMA_ADAPTER DmaAdapter, _In_ ULONG FunctionNumber, _In_ PVOID Context)
Definition: iotypes.h:2465
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:5536
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:5254
_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:4313
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:5488
BOOLEAN(NTAPI * PCANCEL_ADAPTER_CHANNEL)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDEVICE_OBJECT DeviceObject, _In_ PVOID DmaTransferContext)
Definition: iotypes.h:2471
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:5493
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _In_ LARGE_INTEGER ByteCount
Definition: iotypes.h:1099
_IO_PAGING_PRIORITY
Definition: iotypes.h:2819
@ IoPagingPriorityReserved1
Definition: iotypes.h:2823
@ IoPagingPriorityNormal
Definition: iotypes.h:2821
@ IoPagingPriorityHigh
Definition: iotypes.h:2822
@ IoPagingPriorityReserved2
Definition: iotypes.h:2824
@ IoPagingPriorityInvalid
Definition: iotypes.h:2820
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:4306
struct _IO_ERROR_LOG_MESSAGE * PIO_ERROR_LOG_MESSAGE
DRIVER_LIST_CONTROL * PDRIVER_LIST_CONTROL
Definition: iotypes.h:2377
struct _DISK_SIGNATURE DISK_SIGNATURE
PCI_EXPRESS_INDICATOR_STATE
Definition: iotypes.h:5152
@ IndicatorOff
Definition: iotypes.h:5155
@ IndicatorBlink
Definition: iotypes.h:5154
@ IndicatorOn
Definition: iotypes.h:5153
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:2505
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:2539
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:4547
@ ArbiterActionQueryConflict
Definition: iotypes.h:4554
@ ArbiterActionQueryArbitrate
Definition: iotypes.h:4555
@ ArbiterActionBootAllocation
Definition: iotypes.h:4557
@ ArbiterActionWriteReservedResources
Definition: iotypes.h:4553
@ ArbiterActionAddReserved
Definition: iotypes.h:4556
@ ArbiterActionCommitAllocation
Definition: iotypes.h:4550
@ ArbiterActionRollbackAllocation
Definition: iotypes.h:4551
@ ArbiterActionRetestAllocation
Definition: iotypes.h:4549
@ ArbiterActionQueryAllocatedResources
Definition: iotypes.h:4552
@ ArbiterActionTestAllocation
Definition: iotypes.h:4548
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:4456
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:2491
struct _PCI_MSIX_TABLE_CONFIG_INTERFACE PCI_MSIX_TABLE_CONFIG_INTERFACE
struct _PCI_AGP_CONTROL * PPCI_AGP_CONTROL
_In_ BOOLEAN CorePowerRailNeeded
Definition: iotypes.h:7572
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:5475
_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:2353
struct _POWER_SEQUENCE POWER_SEQUENCE
DRIVER_UNLOAD * PDRIVER_UNLOAD
Definition: iotypes.h:2253
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:2553
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:2602
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:2419
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:2431
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:2835
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:2334
struct _POWER_SEQUENCE * PPOWER_SEQUENCE
_Must_inspect_result_ typedef _In_ ULONG _Out_ PULONG _Out_ PBOOLEAN Masked
Definition: iotypes.h:4321
struct _CM_EISA_SLOT_INFORMATION * PCM_EISA_SLOT_INFORMATION
PCI_EXPRESS_L1_EXIT_LATENCY
Definition: iotypes.h:5186
@ L1_16us_32us
Definition: iotypes.h:5192
@ L1_Below1us
Definition: iotypes.h:5187
@ L1_8us_16us
Definition: iotypes.h:5191
@ L1_32us_64us
Definition: iotypes.h:5193
@ L1_4us_8us
Definition: iotypes.h:5190
@ L1_Above64us
Definition: iotypes.h:5194
@ L1_2us_4us
Definition: iotypes.h:5189
@ L1_1us_2us
Definition: iotypes.h:5188
struct _PCI_AGP_APERTURE_PAGE_SIZE PCI_AGP_APERTURE_PAGE_SIZE
_IO_QUERY_DEVICE_DATA_FORMAT
Definition: iotypes.h:4448
@ IoQueryDeviceComponentInformation
Definition: iotypes.h:4451
@ IoQueryDeviceMaxData
Definition: iotypes.h:4452
@ IoQueryDeviceConfigurationData
Definition: iotypes.h:4450
@ IoQueryDeviceIdentifier
Definition: iotypes.h:4449
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:5261
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:7336
@ NtfsLinkTrackingInformation
Definition: iotypes.h:7337
@ DfsLinkTrackingInformation
Definition: iotypes.h:7338
FAST_IO_MDL_READ * PFAST_IO_MDL_READ
Definition: iotypes.h:1613
DRIVER_CANCEL * PDRIVER_CANCEL
Definition: iotypes.h:2759
struct _DMA_COMMON_BUFFER_VECTOR DMA_COMMON_BUFFER_VECTOR
Definition: iotypes.h:2599
_Must_inspect_result_ typedef _In_ ULONG TableEntry
Definition: iotypes.h:4304
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:2216
NTSTATUS(NTAPI * PCARDBUSDELETE)(IN PVOID DeviceContext)
Definition: iotypes.h:5532
_ARBITER_REQUEST_SOURCE
Definition: iotypes.h:4613
@ ArbiterRequestHalReported
Definition: iotypes.h:4616
@ ArbiterRequestLegacyAssigned
Definition: iotypes.h:4617
@ ArbiterRequestPnpDetected
Definition: iotypes.h:4618
@ ArbiterRequestUndefined
Definition: iotypes.h:4614
@ ArbiterRequestLegacyReported
Definition: iotypes.h:4615
@ ArbiterRequestPnpEnumerated
Definition: iotypes.h:4619
_PCI_HARDWARE_INTERFACE
Definition: iotypes.h:4910
@ PciXMode2
Definition: iotypes.h:4913
@ PciConventional
Definition: iotypes.h:4911
@ PciXMode1
Definition: iotypes.h:4912
@ PciExpress
Definition: iotypes.h:4914
struct _PNP_LOCATION_INTERFACE PNP_LOCATION_INTERFACE
NTSTATUS(NTAPI * PFS_FILTER_CALLBACK)(_In_ PFS_FILTER_CALLBACK_DATA Data, _Out_ PVOID *CompletionContext)
Definition: iotypes.h:7416
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:2558
_In_ ULONG DelayInMicroSeconds
Definition: iotypes.h:7593
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:2454
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:2262
struct _EISA_DMA_CONFIGURATION EISA_DMA_CONFIGURATION
_In_ struct _IRP _In_ struct _SCATTER_GATHER_LIST * ScatterGather
Definition: iotypes.h:2375
struct _DEVICE_RELATIONS * PDEVICE_RELATIONS
IO_DPC_ROUTINE * PIO_DPC_ROUTINE
Definition: iotypes.h:2847
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:2445
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:5269
DMA_COMPLETION_STATUS
Definition: iotypes.h:2299
@ DmaError
Definition: iotypes.h:2302
@ DmaComplete
Definition: iotypes.h:2300
@ DmaCancelled
Definition: iotypes.h:2303
@ DmaAborted
Definition: iotypes.h:2301
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:5168
@ L0sEntryEnabled
Definition: iotypes.h:5170
@ L0sAndL1EntryEnabled
Definition: iotypes.h:5172
@ L0sAndL1EntryDisabled
Definition: iotypes.h:5169
@ L1EntryEnabled
Definition: iotypes.h:5171
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:5158
@ PowerOff
Definition: iotypes.h:5160
@ PowerOn
Definition: iotypes.h:5159
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:7476
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:2484
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:2548
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:2585
ULONG KINTERRUPT_MODE BOOLEAN Shareable
Definition: iotypes.h:3039
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:4275
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:5209
@ MaxPayload128Bytes
Definition: iotypes.h:5210
@ MaxPayload2048Bytes
Definition: iotypes.h:5214
@ MaxPayload256Bytes
Definition: iotypes.h:5211
@ MaxPayload1024Bytes
Definition: iotypes.h:5213
@ MaxPayload512Bytes
Definition: iotypes.h:5212
@ MaxPayload4096Bytes
Definition: iotypes.h:5215
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:2311
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:5461
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:2581
NTSTATUS(NTAPI * PGET_DMA_ADAPTER_INFO)(_In_ PDMA_ADAPTER DmaAdapter, _Inout_ PDMA_ADAPTER_INFO AdapterInfo)
Definition: iotypes.h:2426
struct _REMOTE_LINK_TRACKING_INFORMATION * PREMOTE_LINK_TRACKING_INFORMATION
_In_ SYSTEM_POWER_STATE _Out_ PDEVICE_WAKE_DEPTH DeepestWakeableDstate
Definition: iotypes.h:7521
_EXTENDED_AGP_REGISTER
Definition: iotypes.h:4735
@ AperturePageSize
Definition: iotypes.h:4739
@ ApertureSize
Definition: iotypes.h:4738
@ AgpControl
Definition: iotypes.h:4737
@ GartHigh
Definition: iotypes.h:4741
@ IsochStatus
Definition: iotypes.h:4736
@ GartLow
Definition: iotypes.h:4740
@ IsochCommand
Definition: iotypes.h:4742
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:4329
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:7362
FAST_IO_WRITE * PFAST_IO_WRITE
Definition: iotypes.h:1471
BOOLEAN(NTAPI * PGPE_SERVICE_ROUTINE)(PVOID, PVOID)
Definition: iotypes.h:2950
PCI_BUS_WIDTH
Definition: iotypes.h:4917
@ BusWidth32Bits
Definition: iotypes.h:4918
@ BusWidth64Bits
Definition: iotypes.h:4919
PCI_EXPRESS_ASPM_SUPPORT
Definition: iotypes.h:5163
@ L0sEntrySupport
Definition: iotypes.h:5164
@ L0sAndL1EntrySupport
Definition: iotypes.h:5165
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:5314
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:2614
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:7533
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:2599
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:2863
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:5319
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:5550
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:4253
_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:7536
@ LastDStateTransitionStatusUnknown
Definition: iotypes.h:7537
@ LastDStateTransitionD3hot
Definition: iotypes.h:7538
@ LastDStateTransitionD3cold
Definition: iotypes.h:7539
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:7479
@ DeviceWakeDepthD3cold
Definition: iotypes.h:7485
@ DeviceWakeDepthD1
Definition: iotypes.h:7482
@ DeviceWakeDepthD3hot
Definition: iotypes.h:7484
@ DeviceWakeDepthMaximum
Definition: iotypes.h:7486
@ DeviceWakeDepthD2
Definition: iotypes.h:7483
@ DeviceWakeDepthD0
Definition: iotypes.h:7481
@ DeviceWakeDepthNotWakeable
Definition: iotypes.h:7480
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:2944
@ DeviceTextLocationInformation
Definition: iotypes.h:2946
@ DeviceTextDescription
Definition: iotypes.h:2945
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:7550
D3COLD_REQUEST_CORE_POWER_RAIL * PD3COLD_REQUEST_CORE_POWER_RAIL
Definition: iotypes.h:7574
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:4648
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:3028
_Out_ PD3COLD_LAST_TRANSITION_STATUS LastTransitionStatus
Definition: iotypes.h:7548
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:2380
PCI_EXPRESS_CARD_PRESENCE
Definition: iotypes.h:5147
@ CardPresent
Definition: iotypes.h:5149
@ SlotEmpty
Definition: iotypes.h:5148
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:5303
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:4282
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:2397
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:7474
_In_ SYSTEM_POWER_STATE SystemPowerState
Definition: iotypes.h:7520
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:2391
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:2589
struct _FILE_REMOTE_PROTOCOL_INFORMATION FILE_REMOTE_PROTOCOL_INFORMATION
_In_ ULONG _Out_ PULONG RetryInSeconds
Definition: iotypes.h:7583
_BUS_QUERY_ID_TYPE
Definition: iotypes.h:2935
@ BusQueryCompatibleIDs
Definition: iotypes.h:2938
@ BusQueryContainerID
Definition: iotypes.h:2941
@ BusQueryDeviceSerialNumber
Definition: iotypes.h:2940
@ BusQueryInstanceID
Definition: iotypes.h:2939
@ BusQueryDeviceID
Definition: iotypes.h:2936
@ BusQueryHardwareIDs
Definition: iotypes.h:2937
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:4260
enum _PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE
_Must_inspect_result_ typedef _In_ ULONG _In_ ULONG MessageNumber
Definition: iotypes.h:4305
struct _CONTROLLER_OBJECT CONTROLLER_OBJECT
struct _PCI_AGP_ISOCH_COMMAND * PPCI_AGP_ISOCH_COMMAND
VOID(NTAPI * PDEVICE_NOTIFY_CALLBACK)(PVOID, ULONG)
Definition: iotypes.h:2994
struct _FS_FILTER_CALLBACK_DATA FS_FILTER_CALLBACK_DATA
#define PCI_COMMON_HEADER_LAYOUT
Definition: iotypes.h:3507
struct _PCI_PMC PCI_PMC
VOID(NTAPI * PPUT_DMA_ADAPTER)(PDMA_ADAPTER DmaAdapter)
Definition: iotypes.h:2307
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:7491
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:3083
struct _TARGET_DEVICE_REMOVAL_NOTIFICATION TARGET_DEVICE_REMOVAL_NOTIFICATION
NTSTATUS(NTAPI * PCARDBUSADD)(IN PDEVICE_OBJECT DeviceObject, IN OUT PVOID *DeviceContext)
Definition: iotypes.h:5527
struct _PCI_PME_INTERFACE PCI_PME_INTERFACE
DMA_COMPLETION_ROUTINE * PDMA_COMPLETION_ROUTINE
Definition: iotypes.h:2488
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:4435
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:2326
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:4622
@ ArbiterResultUndefined
Definition: iotypes.h:4623
@ ArbiterResultExternalConflict
Definition: iotypes.h:4625
@ ArbiterResultSuccess
Definition: iotypes.h:4624
@ ArbiterResultNullRequest
Definition: iotypes.h:4626
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:7531
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:2272
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:3484
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:7523
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:2850
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:2318
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:2362
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:7595
DRIVER_INITIALIZE * PDRIVER_INITIALIZE
Definition: iotypes.h:2235
_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:2622
_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:2570
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:512
_IRQL_requires_same_ _In_ PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT _Inout_ PNTSTATUS OperationStatus
Definition: ketypes.h:373
KMESSAGE_SERVICE_ROUTINE * PKMESSAGE_SERVICE_ROUTINE
Definition: ketypes.h:521
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
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_opt_ PHYSICAL_ADDRESS _In_ MEMORY_CACHING_TYPE CacheType
Definition: mmfuncs.h:217
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
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180
char CHAR
Definition: xmlstorage.h:175