ReactOS 0.4.15-dev-7958-gcd0bb1a
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)(
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 {
2736 ULONG Count;
2737 IO_RESOURCE_DESCRIPTOR Descriptors[1];
2739
2740typedef struct _IO_RESOURCE_REQUIREMENTS_LIST {
2741 ULONG ListSize;
2745 ULONG Reserved[3];
2746 ULONG AlternativeLists;
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 {
3224 } MountVolume;
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_OTHER 0x80
4134
4135/* PCI device subclasses for class 2 (network controllers)*/
4136#define PCI_SUBCLASS_NET_ETHERNET_CTLR 0x00
4137#define PCI_SUBCLASS_NET_TOKEN_RING_CTLR 0x01
4138#define PCI_SUBCLASS_NET_FDDI_CTLR 0x02
4139#define PCI_SUBCLASS_NET_ATM_CTLR 0x03
4140#define PCI_SUBCLASS_NET_ISDN_CTLR 0x04
4141#define PCI_SUBCLASS_NET_OTHER 0x80
4142
4143/* PCI device subclasses for class 3 (display controllers)*/
4144#define PCI_SUBCLASS_VID_VGA_CTLR 0x00
4145#define PCI_SUBCLASS_VID_XGA_CTLR 0x01
4146#define PCI_SUBCLASS_VID_3D_CTLR 0x02
4147#define PCI_SUBCLASS_VID_OTHER 0x80
4148
4149/* PCI device subclasses for class 4 (multimedia device)*/
4150#define PCI_SUBCLASS_MM_VIDEO_DEV 0x00
4151#define PCI_SUBCLASS_MM_AUDIO_DEV 0x01
4152#define PCI_SUBCLASS_MM_TELEPHONY_DEV 0x02
4153#define PCI_SUBCLASS_MM_OTHER 0x80
4154
4155/* PCI device subclasses for class 5 (memory controller)*/
4156#define PCI_SUBCLASS_MEM_RAM 0x00
4157#define PCI_SUBCLASS_MEM_FLASH 0x01
4158#define PCI_SUBCLASS_MEM_OTHER 0x80
4159
4160/* PCI device subclasses for class 6 (bridge device)*/
4161#define PCI_SUBCLASS_BR_HOST 0x00
4162#define PCI_SUBCLASS_BR_ISA 0x01
4163#define PCI_SUBCLASS_BR_EISA 0x02
4164#define PCI_SUBCLASS_BR_MCA 0x03
4165#define PCI_SUBCLASS_BR_PCI_TO_PCI 0x04
4166#define PCI_SUBCLASS_BR_PCMCIA 0x05
4167#define PCI_SUBCLASS_BR_NUBUS 0x06
4168#define PCI_SUBCLASS_BR_CARDBUS 0x07
4169#define PCI_SUBCLASS_BR_RACEWAY 0x08
4170#define PCI_SUBCLASS_BR_OTHER 0x80
4171
4172#define PCI_SUBCLASS_COM_SERIAL 0x00
4173#define PCI_SUBCLASS_COM_PARALLEL 0x01
4174#define PCI_SUBCLASS_COM_MULTIPORT 0x02
4175#define PCI_SUBCLASS_COM_MODEM 0x03
4176#define PCI_SUBCLASS_COM_OTHER 0x80
4177
4178#define PCI_SUBCLASS_SYS_INTERRUPT_CTLR 0x00
4179#define PCI_SUBCLASS_SYS_DMA_CTLR 0x01
4180#define PCI_SUBCLASS_SYS_SYSTEM_TIMER 0x02
4181#define PCI_SUBCLASS_SYS_REAL_TIME_CLOCK 0x03
4182#define PCI_SUBCLASS_SYS_GEN_HOTPLUG_CTLR 0x04
4183#define PCI_SUBCLASS_SYS_SDIO_CTRL 0x05
4184#define PCI_SUBCLASS_SYS_OTHER 0x80
4185
4186#define PCI_SUBCLASS_INP_KEYBOARD 0x00
4187#define PCI_SUBCLASS_INP_DIGITIZER 0x01
4188#define PCI_SUBCLASS_INP_MOUSE 0x02
4189#define PCI_SUBCLASS_INP_SCANNER 0x03
4190#define PCI_SUBCLASS_INP_GAMEPORT 0x04
4191#define PCI_SUBCLASS_INP_OTHER 0x80
4192
4193#define PCI_SUBCLASS_DOC_GENERIC 0x00
4194#define PCI_SUBCLASS_DOC_OTHER 0x80
4195
4196#define PCI_SUBCLASS_PROC_386 0x00
4197#define PCI_SUBCLASS_PROC_486 0x01
4198#define PCI_SUBCLASS_PROC_PENTIUM 0x02
4199#define PCI_SUBCLASS_PROC_ALPHA 0x10
4200#define PCI_SUBCLASS_PROC_POWERPC 0x20
4201#define PCI_SUBCLASS_PROC_COPROCESSOR 0x40
4202
4203/* PCI device subclasses for class C (serial bus controller)*/
4204#define PCI_SUBCLASS_SB_IEEE1394 0x00
4205#define PCI_SUBCLASS_SB_ACCESS 0x01
4206#define PCI_SUBCLASS_SB_SSA 0x02
4207#define PCI_SUBCLASS_SB_USB 0x03
4208#define PCI_SUBCLASS_SB_FIBRE_CHANNEL 0x04
4209#define PCI_SUBCLASS_SB_SMBUS 0x05
4210
4211#define PCI_SUBCLASS_WIRELESS_IRDA 0x00
4212#define PCI_SUBCLASS_WIRELESS_CON_IR 0x01
4213#define PCI_SUBCLASS_WIRELESS_RF 0x10
4214#define PCI_SUBCLASS_WIRELESS_OTHER 0x80
4215
4216#define PCI_SUBCLASS_INTIO_I2O 0x00
4217
4218#define PCI_SUBCLASS_SAT_TV 0x01
4219#define PCI_SUBCLASS_SAT_AUDIO 0x02
4220#define PCI_SUBCLASS_SAT_VOICE 0x03
4221#define PCI_SUBCLASS_SAT_DATA 0x04
4222
4223#define PCI_SUBCLASS_CRYPTO_NET_COMP 0x00
4224#define PCI_SUBCLASS_CRYPTO_ENTERTAINMENT 0x10
4225#define PCI_SUBCLASS_CRYPTO_OTHER 0x80
4226
4227#define PCI_SUBCLASS_DASP_DPIO 0x00
4228#define PCI_SUBCLASS_DASP_OTHER 0x80
4229
4230#define PCI_ADDRESS_IO_SPACE 0x00000001
4231#define PCI_ADDRESS_MEMORY_TYPE_MASK 0x00000006
4232#define PCI_ADDRESS_MEMORY_PREFETCHABLE 0x00000008
4233#define PCI_ADDRESS_IO_ADDRESS_MASK 0xfffffffc
4234#define PCI_ADDRESS_MEMORY_ADDRESS_MASK 0xfffffff0
4235#define PCI_ADDRESS_ROM_ADDRESS_MASK 0xfffff800
4236
4237#define PCI_TYPE_32BIT 0
4238#define PCI_TYPE_20BIT 2
4239#define PCI_TYPE_64BIT 4
4240
4241#define PCI_ROMADDRESS_ENABLED 0x00000001
4242
4243#endif /* _PCI_X_ */
4244
4245#define PCI_EXPRESS_LINK_QUIESCENT_INTERFACE_VERSION 1
4246
4249typedef NTSTATUS
4250(NTAPI PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE)(
4252typedef PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE *PPCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE;
4253
4256typedef NTSTATUS
4257(NTAPI PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE)(
4259typedef PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE *PPCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE;
4260
4270
4271#define PCI_EXPRESS_ROOT_PORT_INTERFACE_VERSION 1
4272
4273typedef ULONG
4278 _In_ ULONG Length);
4279
4280typedef ULONG
4285 _In_ ULONG Length);
4286
4296
4297#define PCI_MSIX_TABLE_CONFIG_INTERFACE_VERSION 1
4298
4300typedef NTSTATUS
4301(NTAPI PCI_MSIX_SET_ENTRY)(
4305typedef PCI_MSIX_SET_ENTRY *PPCI_MSIX_SET_ENTRY;
4306
4308typedef NTSTATUS
4309(NTAPI PCI_MSIX_MASKUNMASK_ENTRY)(
4312typedef PCI_MSIX_MASKUNMASK_ENTRY *PPCI_MSIX_MASKUNMASK_ENTRY;
4313
4315typedef NTSTATUS
4316(NTAPI PCI_MSIX_GET_ENTRY)(
4321typedef PCI_MSIX_GET_ENTRY *PPCI_MSIX_GET_ENTRY;
4322
4324typedef NTSTATUS
4325(NTAPI PCI_MSIX_GET_TABLE_SIZE)(
4328typedef PCI_MSIX_GET_TABLE_SIZE *PPCI_MSIX_GET_TABLE_SIZE;
4329
4342
4343#define PCI_MSIX_TABLE_CONFIG_MINIMUM_SIZE \
4344 RTL_SIZEOF_THROUGH_FIELD(PCI_MSIX_TABLE_CONFIG_INTERFACE, UnmaskTableEntry)
4345
4347$if (_NTDDK_)
4348#ifndef _ARC_DDK_
4349#define _ARC_DDK_
4350typedef enum _CONFIGURATION_TYPE {
4351 ArcSystem,
4360 TcAdapter,
4362 DtiAdapter,
4394#endif /* !_ARC_DDK_ */
4395
4396/*
4397** IRP function codes
4398*/
4399
4400#define IRP_MN_QUERY_DIRECTORY 0x01
4401#define IRP_MN_NOTIFY_CHANGE_DIRECTORY 0x02
4402
4403#define IRP_MN_USER_FS_REQUEST 0x00
4404#define IRP_MN_MOUNT_VOLUME 0x01
4405#define IRP_MN_VERIFY_VOLUME 0x02
4406#define IRP_MN_LOAD_FILE_SYSTEM 0x03
4407#define IRP_MN_TRACK_LINK 0x04
4408#define IRP_MN_KERNEL_CALL 0x04
4409
4410#define IRP_MN_LOCK 0x01
4411#define IRP_MN_UNLOCK_SINGLE 0x02
4412#define IRP_MN_UNLOCK_ALL 0x03
4413#define IRP_MN_UNLOCK_ALL_BY_KEY 0x04
4414
4415#define IRP_MN_FLUSH_AND_PURGE 0x01
4416
4417#define IRP_MN_NORMAL 0x00
4418#define IRP_MN_DPC 0x01
4419#define IRP_MN_MDL 0x02
4420#define IRP_MN_COMPLETE 0x04
4421#define IRP_MN_COMPRESSED 0x08
4422
4423#define IRP_MN_MDL_DPC (IRP_MN_MDL | IRP_MN_DPC)
4424#define IRP_MN_COMPLETE_MDL (IRP_MN_COMPLETE | IRP_MN_MDL)
4425#define IRP_MN_COMPLETE_MDL_DPC (IRP_MN_COMPLETE_MDL | IRP_MN_DPC)
4426
4427#define IRP_MN_QUERY_LEGACY_BUS_INFORMATION 0x18
4428
4429#define IO_CHECK_CREATE_PARAMETERS 0x0200
4430#define IO_ATTACH_DEVICE 0x0400
4431#define IO_IGNORE_SHARE_ACCESS_CHECK 0x0800
4432
4436 _In_ PUNICODE_STRING PathName,
4440 _In_ CONFIGURATION_TYPE ControllerType,
4441 _In_ ULONG ControllerNumber,
4442 _In_ PKEY_VALUE_FULL_INFORMATION *ControllerInformation,
4443 _In_ CONFIGURATION_TYPE PeripheralType,
4444 _In_ ULONG PeripheralNumber,
4445 _In_ PKEY_VALUE_FULL_INFORMATION *PeripheralInformation);
4446
4453
4454typedef VOID
4458 _In_ ULONG Count);
4459
4460typedef struct _CONTROLLER_OBJECT {
4468
4469#define DRVO_REINIT_REGISTERED 0x00000008
4470#define DRVO_INITIALIZED 0x00000010
4471#define DRVO_BOOTREINIT_REGISTERED 0x00000020
4472#define DRVO_LEGACY_RESOURCES 0x00000040
4473
4487
4488typedef struct _DISK_SIGNATURE {
4490 _ANONYMOUS_UNION union {
4491 struct {
4494 } Mbr;
4495 struct {
4497 } Gpt;
4500
4501typedef struct _TXN_PARAMETER_BLOCK {
4506
4507#define TXF_MINIVERSION_DEFAULT_VIEW (0xFFFE)
4508
4515
4526
4529typedef NTSTATUS
4530(NTAPI *PGET_LOCATION_STRING)(
4532 _Outptr_
4534 _When_(return == 0, __drv_allocatesMem(Mem)))
4536
4543 PGET_LOCATION_STRING GetLocationString;
4545
4546typedef enum _ARBITER_ACTION {
4558
4564
4570
4576
4580
4584
4591
4595
4599
4600typedef struct _ARBITER_PARAMETERS {
4601 union {
4611
4620
4621typedef enum _ARBITER_RESULT {
4627
4628#define ARBITER_FLAG_BOOT_CONFIG 0x00000001
4629
4630typedef struct _ARBITER_LIST_ENTRY {
4645
4651
4652#define ARBITER_PARTIAL 0x00000001
4653
4654typedef struct _ARBITER_INTERFACE {
4663
4668
4674 _In_opt_ ULONG AlternativesCount,
4675 _In_reads_opt_(AlternativesCount) IO_RESOURCE_DESCRIPTOR Alternatives[],
4678
4684 _Out_ PULONG TargetCount,
4686
4696
4697typedef struct _PCI_AGP_CAPABILITY {
4717 } AGPStatus;
4731 } AGPCommand;
4733
4743
4752
4753typedef struct _PCI_AGP_CONTROL {
4760
4766
4772
4782
4783#define PCI_AGP_RATE_1X 0x1
4784#define PCI_AGP_RATE_2X 0x2
4785#define PCI_AGP_RATE_4X 0x4
4786
4787#define PCIX_MODE_CONVENTIONAL_PCI 0x0
4788#define PCIX_MODE1_66MHZ 0x1
4789#define PCIX_MODE1_100MHZ 0x2
4790#define PCIX_MODE1_133MHZ 0x3
4791#define PCIX_MODE2_266_66MHZ 0x9
4792#define PCIX_MODE2_266_100MHZ 0xA
4793#define PCIX_MODE2_266_133MHZ 0xB
4794#define PCIX_MODE2_533_66MHZ 0xD
4795#define PCIX_MODE2_533_100MHZ 0xE
4796#define PCIX_MODE2_533_133MHZ 0xF
4797
4798#define PCIX_VERSION_MODE1_ONLY 0x0
4799#define PCIX_VERSION_MODE2_ECC 0x1
4800#define PCIX_VERSION_DUAL_MODE_ECC 0x2
4801
4804 union {
4805 _ANONYMOUS_STRUCT struct {
4819 } SecondaryStatus;
4820 union {
4821 _ANONYMOUS_STRUCT struct {
4837 } BridgeStatus;
4842 union {
4843 _ANONYMOUS_STRUCT struct {
4855 ULONG Rsvd:1;
4859 ULONG AsULONG;
4860 } EccControlStatus;
4865
4872
4873#define OSC_FIRMWARE_FAILURE 0x02
4874#define OSC_UNRECOGNIZED_UUID 0x04
4875#define OSC_UNRECOGNIZED_REVISION 0x08
4876#define OSC_CAPABILITIES_MASKED 0x10
4877
4878#define PCI_ROOT_BUS_OSC_METHOD_CAPABILITY_REVISION 0x01
4879
4881 union {
4882 _ANONYMOUS_STRUCT struct {
4892 } u;
4894
4896 union {
4897 _ANONYMOUS_STRUCT struct {
4906 } u;
4908
4915
4916typedef enum {
4920
4923 _ANONYMOUS_STRUCT struct {
4934
4936 _ANONYMOUS_STRUCT struct {
4945
4947 _ANONYMOUS_STRUCT struct {
4962
4963#define PCI_EXPRESS_AER_DEVICE_CONTROL_MASK 0x07;
4964
4966 _ANONYMOUS_STRUCT struct {
4982
4983#define PCI_EXPRESS_AER_DEVICE_STATUS_MASK 0x0F;
4984
4986 _ANONYMOUS_STRUCT struct {
4997
4999 _ANONYMOUS_STRUCT struct {
5013
5015 _ANONYMOUS_STRUCT struct {
5028
5030 _ANONYMOUS_STRUCT struct {
5041
5043 _ANONYMOUS_STRUCT struct {
5059
5061 _ANONYMOUS_STRUCT struct {
5077
5079 _ANONYMOUS_STRUCT struct {
5093
5095 _ANONYMOUS_STRUCT struct {
5105
5107 _ANONYMOUS_STRUCT struct {
5113
5115 _ANONYMOUS_STRUCT struct {
5123
5140
5141typedef enum {
5143 MRLOpen
5145
5146typedef enum {
5150
5151typedef enum {
5156
5157typedef enum {
5159 PowerOff
5161
5162typedef enum {
5166
5167typedef enum {
5173
5174typedef enum {
5184
5185typedef enum {
5195
5196typedef enum {
5207
5208typedef enum {
5216
5218 _ANONYMOUS_STRUCT struct {
5225
5233
5237 union {
5240 struct {
5244 } u;
5246
5251
5252typedef VOID
5254 _In_ struct _BUS_HANDLER *BusHandler,
5255 _In_ struct _BUS_HANDLER *RootHandler,
5257 _In_ PPCI_COMMON_CONFIG PciData);
5258
5259typedef VOID
5261 _In_ struct _BUS_HANDLER *BusHandler,
5262 _In_ struct _BUS_HANDLER *RootHandler,
5264 _In_ PPCI_COMMON_CONFIG PciNewData,
5265 _In_ PPCI_COMMON_CONFIG PciOldData);
5266
5267typedef VOID
5269 _In_ struct _BUS_HANDLER *BusHandler,
5270 _In_ PCI_SLOT_NUMBER Slot,
5273 _In_ ULONG Length);
5274
5275#define PCI_DATA_TAG ' ICP'
5276#define PCI_DATA_VERSION 1
5277
5278typedef struct _PCIBUSDATA {
5288
5289#ifndef _PCIINTRF_X_
5290#define _PCIINTRF_X_
5291
5292typedef ULONG
5295 _In_ ULONG BusOffset,
5296 _In_ ULONG Slot,
5299 _In_ ULONG Length);
5300
5301typedef VOID
5304 _In_ PPCI_COMMON_CONFIG PciData);
5305
5306typedef VOID
5309 _In_ PPCI_COMMON_CONFIG PciNewData,
5310 _In_ PPCI_COMMON_CONFIG PciOldData);
5311
5312typedef VOID
5315 _Out_ PPCI_ROOT_BUS_HARDWARE_CAPABILITY HardwareCapability);
5316
5317typedef VOID
5320 _In_ BOOLEAN EnableWake);
5321
5335
5336#define PCI_BUS_INTERFACE_STANDARD_VERSION 1
5337
5338#endif /* _PCIINTRF_X_ */
5339
5340#if (NTDDI_VERSION >= NTDDI_WIN7)
5341
5342#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX 0x00004000
5343#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX 0x00008000
5344#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX \
5345 (FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX | \
5346 FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX)
5347
5348#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_DEPRECATED 0x00000200
5349#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_DEPRECATED 0x00000300
5350#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_DEPRECATED 0x00000300
5351
5352#else
5353
5354#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL 0x00000200
5355#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL 0x00000300
5356#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK 0x00000300
5357
5358#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL
5359#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL
5360#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK
5361
5362#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
5363
5364#define FILE_CHARACTERISTICS_PROPAGATED (FILE_REMOVABLE_MEDIA | \
5365 FILE_READ_ONLY_DEVICE | \
5366 FILE_FLOPPY_DISKETTE | \
5367 FILE_WRITE_ONCE_MEDIA | \
5368 FILE_DEVICE_SECURE_OPEN)
5369
5370typedef struct _FILE_ALIGNMENT_INFORMATION {
5373
5374typedef struct _FILE_NAME_INFORMATION {
5376 WCHAR FileName[1];
5378
5379
5380typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION {
5382 ULONG ReparseTag;
5384
5385typedef struct _FILE_DISPOSITION_INFORMATION {
5388
5389typedef struct _FILE_END_OF_FILE_INFORMATION {
5390 LARGE_INTEGER EndOfFile;
5392
5396
5399 WCHAR VolumeLabel[1];
5401
5402typedef struct _FILE_FS_VOLUME_INFORMATION {
5403 LARGE_INTEGER VolumeCreationTime;
5404 ULONG VolumeSerialNumber;
5405 ULONG VolumeLabelLength;
5406 BOOLEAN SupportsObjects;
5407 WCHAR VolumeLabel[1];
5409
5410typedef struct _FILE_FS_SIZE_INFORMATION {
5411 LARGE_INTEGER TotalAllocationUnits;
5412 LARGE_INTEGER AvailableAllocationUnits;
5413 ULONG SectorsPerAllocationUnit;
5414 ULONG BytesPerSector;
5416
5417typedef struct _FILE_FS_FULL_SIZE_INFORMATION {
5418 LARGE_INTEGER TotalAllocationUnits;
5419 LARGE_INTEGER CallerAvailableAllocationUnits;
5420 LARGE_INTEGER ActualAvailableAllocationUnits;
5421 ULONG SectorsPerAllocationUnit;
5422 ULONG BytesPerSector;
5424
5426 UCHAR ObjectId[16];
5427 UCHAR ExtendedInfo[48];
5429
5434
5435#define IOCTL_AVIO_ALLOCATE_STREAM CTL_CODE(FILE_DEVICE_AVIO, 1, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
5436#define IOCTL_AVIO_FREE_STREAM CTL_CODE(FILE_DEVICE_AVIO, 2, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
5437#define IOCTL_AVIO_MODIFY_STREAM CTL_CODE(FILE_DEVICE_AVIO, 3, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
5438
5439typedef enum _BUS_DATA_TYPE {
5455
5456/* Some Server 2003 DDK definitions */
5457#define PCI_INT_ROUTE_INTRF_STANDARD_VER 1
5458
5466
5467typedef struct _ROUTING_TOKEN {
5472
5476 OUT ULONG *Bus,
5477 OUT ULONG *PciSlot,
5478 OUT UCHAR *InterruptLine,
5479 OUT UCHAR *InterruptPin,
5480 OUT UCHAR *ClassCode,
5481 OUT UCHAR *SubClassCode,
5482 OUT PDEVICE_OBJECT *ParentPdo,
5483 OUT ROUTING_TOKEN *RoutingToken,
5484 OUT UCHAR *Flags);
5485
5489 IN PROUTING_TOKEN RoutingToken);
5490
5491typedef VOID
5494 IN UCHAR LineRegister);
5495
5506
5515
5516/* FIXME : These definitions don't exist in public headers */
5517
5518#define PCI_CB_INTRF_VERSION 1
5519#define PCI_PME_INTRF_STANDARD_VER 1
5520#define PNP_LOCATION_INTERFACE_VERSION 1
5521
5522DEFINE_GUID(GUID_PCI_CARDBUS_INTERFACE_PRIVATE, 0xcca82f31, 0x54d6, 0x11d1, 0x82, 0x24, 0x00, 0xa0, 0xc9, 0x32, 0x43, 0x85);
5523DEFINE_GUID(GUID_PCI_PME_INTERFACE, 0xaac7e6ac, 0xbb0b, 0x11d2, 0xb4, 0x84, 0x00, 0xc0, 0x4f, 0x72, 0xde, 0x8b);
5524
5529
5533
5537 IN PIRP Irp);
5538
5539typedef VOID
5542 IN BOOLEAN PmeEnable);
5543
5544typedef VOID
5547
5548typedef VOID
5551 OUT PBOOLEAN PmeCapable,
5552 OUT PBOOLEAN PmeStatus,
5553 OUT PBOOLEAN PmeEnable);
5554
5566
5567typedef struct _PCI_PME_INTERFACE {
5577
5579$if (_NTIFS_)
5580
5581#define FILE_OPLOCK_BROKEN_TO_LEVEL_2 0x00000007
5582#define FILE_OPLOCK_BROKEN_TO_NONE 0x00000008
5583#define FILE_OPBATCH_BREAK_UNDERWAY 0x00000009
5584
5585/* also in winnt.h */
5586#define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001
5587#define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002
5588#define FILE_NOTIFY_CHANGE_NAME 0x00000003
5589#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004
5590#define FILE_NOTIFY_CHANGE_SIZE 0x00000008
5591#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010
5592#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020
5593#define FILE_NOTIFY_CHANGE_CREATION 0x00000040
5594#define FILE_NOTIFY_CHANGE_EA 0x00000080
5595#define FILE_NOTIFY_CHANGE_SECURITY 0x00000100
5596#define FILE_NOTIFY_CHANGE_STREAM_NAME 0x00000200
5597#define FILE_NOTIFY_CHANGE_STREAM_SIZE 0x00000400
5598#define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800
5599#define FILE_NOTIFY_VALID_MASK 0x00000fff
5600
5601#define FILE_ACTION_ADDED 0x00000001
5602#define FILE_ACTION_REMOVED 0x00000002
5603#define FILE_ACTION_MODIFIED 0x00000003
5604#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004
5605#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005
5606#define FILE_ACTION_ADDED_STREAM 0x00000006
5607#define FILE_ACTION_REMOVED_STREAM 0x00000007
5608#define FILE_ACTION_MODIFIED_STREAM 0x00000008
5609#define FILE_ACTION_REMOVED_BY_DELETE 0x00000009
5610#define FILE_ACTION_ID_NOT_TUNNELLED 0x0000000A
5611#define FILE_ACTION_TUNNELLED_ID_COLLISION 0x0000000B
5612/* end winnt.h */
5613
5614#define FILE_PIPE_BYTE_STREAM_TYPE 0x00000000
5615#define FILE_PIPE_MESSAGE_TYPE 0x00000001
5616
5617#define FILE_PIPE_ACCEPT_REMOTE_CLIENTS 0x00000000
5618#define FILE_PIPE_REJECT_REMOTE_CLIENTS 0x00000002
5619
5620#define FILE_PIPE_ACCEPT_REMOTE_CLIENTS 0x00000000
5621#define FILE_PIPE_REJECT_REMOTE_CLIENTS 0x00000002
5622#define FILE_PIPE_TYPE_VALID_MASK 0x00000003
5623
5624#define FILE_PIPE_BYTE_STREAM_MODE 0x00000000
5625#define FILE_PIPE_MESSAGE_MODE 0x00000001
5626
5627#define FILE_PIPE_QUEUE_OPERATION 0x00000000
5628#define FILE_PIPE_COMPLETE_OPERATION 0x00000001
5629
5630#define FILE_PIPE_INBOUND 0x00000000
5631#define FILE_PIPE_OUTBOUND 0x00000001
5632#define FILE_PIPE_FULL_DUPLEX 0x00000002
5633
5634#define FILE_PIPE_DISCONNECTED_STATE 0x00000001
5635#define FILE_PIPE_LISTENING_STATE 0x00000002
5636#define FILE_PIPE_CONNECTED_STATE 0x00000003
5637#define FILE_PIPE_CLOSING_STATE 0x00000004
5638
5639#define FILE_PIPE_CLIENT_END 0x00000000
5640#define FILE_PIPE_SERVER_END 0x00000001
5641
5642#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
5643#define FILE_CASE_PRESERVED_NAMES 0x00000002
5644#define FILE_UNICODE_ON_DISK 0x00000004
5645#define FILE_PERSISTENT_ACLS 0x00000008
5646#define FILE_FILE_COMPRESSION 0x00000010
5647#define FILE_VOLUME_QUOTAS 0x00000020
5648#define FILE_SUPPORTS_SPARSE_FILES 0x00000040
5649#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
5650#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
5651#define FILE_VOLUME_IS_COMPRESSED 0x00008000
5652#define FILE_SUPPORTS_OBJECT_IDS 0x00010000
5653#define FILE_SUPPORTS_ENCRYPTION 0x00020000
5654#define FILE_NAMED_STREAMS 0x00040000
5655#define FILE_READ_ONLY_VOLUME 0x00080000
5656#define FILE_SEQUENTIAL_WRITE_ONCE 0x00100000
5657#define FILE_SUPPORTS_TRANSACTIONS 0x00200000
5658#define FILE_SUPPORTS_HARD_LINKS 0x00400000
5659#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000
5660#define FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000
5661#define FILE_SUPPORTS_USN_JOURNAL 0x02000000
5662#define FILE_SUPPORTS_INTEGRITY_STREAMS 0x04000000
5663#define FILE_SUPPORTS_BLOCK_REFCOUNTING 0x08000000
5664#define FILE_SUPPORTS_SPARSE_VDL 0x10000000
5665#define FILE_DAX_VOLUME 0x20000000
5666
5667#define FILE_NEED_EA 0x00000080
5668
5669#define FILE_EA_TYPE_BINARY 0xfffe
5670#define FILE_EA_TYPE_ASCII 0xfffd
5671#define FILE_EA_TYPE_BITMAP 0xfffb
5672#define FILE_EA_TYPE_METAFILE 0xfffa
5673#define FILE_EA_TYPE_ICON 0xfff9
5674#define FILE_EA_TYPE_EA 0xffee
5675#define FILE_EA_TYPE_MVMT 0xffdf
5676#define FILE_EA_TYPE_MVST 0xffde
5677#define FILE_EA_TYPE_ASN1 0xffdd
5678#define FILE_EA_TYPE_FAMILY_IDS 0xff01
5679
5680typedef struct _FILE_NOTIFY_INFORMATION {
5681 ULONG NextEntryOffset;
5682 ULONG Action;
5684 WCHAR FileName[1];
5686
5687typedef struct _FILE_DIRECTORY_INFORMATION {
5688 ULONG NextEntryOffset;
5689 ULONG FileIndex;
5690 LARGE_INTEGER CreationTime;
5691 LARGE_INTEGER LastAccessTime;
5692 LARGE_INTEGER LastWriteTime;
5693 LARGE_INTEGER ChangeTime;
5694 LARGE_INTEGER EndOfFile;
5698 WCHAR FileName[1];
5700
5715
5731
5732typedef struct _FILE_BOTH_DIR_INFORMATION {
5733 ULONG NextEntryOffset;
5734 ULONG FileIndex;
5735 LARGE_INTEGER CreationTime;
5736 LARGE_INTEGER LastAccessTime;
5737 LARGE_INTEGER LastWriteTime;
5738 LARGE_INTEGER ChangeTime;
5739 LARGE_INTEGER EndOfFile;
5743 ULONG EaSize;
5744 CCHAR ShortNameLength;
5745 WCHAR ShortName[12];
5746 WCHAR FileName[1];
5748
5766
5767typedef struct _FILE_NAMES_INFORMATION {
5768 ULONG NextEntryOffset;
5769 ULONG FileIndex;
5771 WCHAR FileName[1];
5773
5775 ULONG NextEntryOffset;
5776 ULONG FileIndex;
5777 LARGE_INTEGER CreationTime;
5778 LARGE_INTEGER LastAccessTime;
5779 LARGE_INTEGER LastWriteTime;
5780 LARGE_INTEGER ChangeTime;
5781 LARGE_INTEGER EndOfFile;
5785 LARGE_INTEGER FileId;
5786 GUID LockingTransactionId;
5787 ULONG TxInfoFlags;
5788 WCHAR FileName[1];
5790
5791#define FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_WRITELOCKED 0x00000001
5792#define FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_VISIBLE_TO_TX 0x00000002
5793#define FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_VISIBLE_OUTSIDE_TX 0x00000004
5794
5795typedef struct _FILE_OBJECTID_INFORMATION {
5796 LONGLONG FileReference;
5797 UCHAR ObjectId[16];
5798 _ANONYMOUS_UNION union {
5799 _ANONYMOUS_STRUCT struct {
5800 UCHAR BirthVolumeId[16];
5801 UCHAR BirthObjectId[16];
5802 UCHAR DomainId[16];
5804 UCHAR ExtendedInfo[48];
5807
5808#define ANSI_DOS_STAR ('<')
5809#define ANSI_DOS_QM ('>')
5810#define ANSI_DOS_DOT ('"')
5811
5812#define DOS_STAR (L'<')
5813#define DOS_QM (L'>')
5814#define DOS_DOT (L'"')
5815
5816typedef struct _FILE_INTERNAL_INFORMATION {
5817 LARGE_INTEGER IndexNumber;
5819
5820typedef struct _FILE_EA_INFORMATION {
5821 ULONG EaSize;
5823
5824typedef struct _FILE_ACCESS_INFORMATION {
5825 ACCESS_MASK AccessFlags;
5827
5828typedef struct _FILE_MODE_INFORMATION {
5829 ULONG Mode;
5831
5832typedef struct _FILE_ALL_INFORMATION {
5833 FILE_BASIC_INFORMATION BasicInformation;
5834 FILE_STANDARD_INFORMATION StandardInformation;
5835 FILE_INTERNAL_INFORMATION InternalInformation;
5836 FILE_EA_INFORMATION EaInformation;
5837 FILE_ACCESS_INFORMATION AccessInformation;
5838 FILE_POSITION_INFORMATION PositionInformation;
5839 FILE_MODE_INFORMATION ModeInformation;
5840 FILE_ALIGNMENT_INFORMATION AlignmentInformation;
5841 FILE_NAME_INFORMATION NameInformation;
5843
5844typedef struct _FILE_ALLOCATION_INFORMATION {
5847
5856
5857typedef struct _FILE_LINK_INFORMATION {
5858 BOOLEAN ReplaceIfExists;
5861 WCHAR FileName[1];
5863
5870
5871typedef struct _FILE_RENAME_INFORMATION {
5875 WCHAR FileName[1];
5877
5878typedef struct _FILE_STREAM_INFORMATION {
5879 ULONG NextEntryOffset;
5880 ULONG StreamNameLength;
5881 LARGE_INTEGER StreamSize;
5882 LARGE_INTEGER StreamAllocationSize;
5883 WCHAR StreamName[1];
5885
5891
5892typedef struct _FILE_COMPLETION_INFORMATION {
5896
5897typedef struct _FILE_PIPE_INFORMATION {
5898 ULONG ReadMode;
5899 ULONG CompletionMode;
5901
5902typedef struct _FILE_PIPE_LOCAL_INFORMATION {
5903 ULONG NamedPipeType;
5904 ULONG NamedPipeConfiguration;
5905 ULONG MaximumInstances;
5906 ULONG CurrentInstances;
5907 ULONG InboundQuota;
5908 ULONG ReadDataAvailable;
5909 ULONG OutboundQuota;
5910 ULONG WriteQuotaAvailable;
5911 ULONG NamedPipeState;
5912 ULONG NamedPipeEnd;
5914
5919
5920typedef struct _FILE_MAILSLOT_QUERY_INFORMATION {
5921 ULONG MaximumMessageSize;
5922 ULONG MailslotQuota;
5923 ULONG NextMessageSize;
5924 ULONG MessagesAvailable;
5925 LARGE_INTEGER ReadTimeout;
5927
5928typedef struct _FILE_MAILSLOT_SET_INFORMATION {
5931
5932typedef struct _FILE_REPARSE_POINT_INFORMATION {
5933 LONGLONG FileReference;
5934 ULONG Tag;
5936
5943
5949
5954
5961
5962typedef struct _FILE_GET_EA_INFORMATION {
5963 ULONG NextEntryOffset;
5964 UCHAR EaNameLength;
5965 CHAR EaName[1];
5967
5968#define REMOTE_PROTOCOL_FLAG_LOOPBACK 0x00000001
5969#define REMOTE_PROTOCOL_FLAG_OFFLINE 0x00000002
5970
5980 struct {
5982 } GenericReserved;
5983 struct {
5984 ULONG Reserved[16];
5985 } ProtocolSpecificReserved;
5987
5993
5994typedef struct _FILE_QUOTA_INFORMATION {
5995 ULONG NextEntryOffset;
5996 ULONG SidLength;
5997 LARGE_INTEGER ChangeTime;
5998 LARGE_INTEGER QuotaUsed;
5999 LARGE_INTEGER QuotaThreshold;
6000 LARGE_INTEGER QuotaLimit;
6001 SID Sid;
6003
6004typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
6005 ULONG FileSystemAttributes;
6007 ULONG FileSystemNameLength;
6008 WCHAR FileSystemName[1];
6010
6014 WCHAR DriverName[1];
6016
6020
6021#define FILE_VC_QUOTA_NONE 0x00000000
6022#define FILE_VC_QUOTA_TRACK 0x00000001
6023#define FILE_VC_QUOTA_ENFORCE 0x00000002
6024#define FILE_VC_QUOTA_MASK 0x00000003
6025#define FILE_VC_CONTENT_INDEX_DISABLED 0x00000008
6026#define FILE_VC_LOG_QUOTA_THRESHOLD 0x00000010
6027#define FILE_VC_LOG_QUOTA_LIMIT 0x00000020
6028#define FILE_VC_LOG_VOLUME_THRESHOLD 0x00000040
6029#define FILE_VC_LOG_VOLUME_LIMIT 0x00000080
6030#define FILE_VC_QUOTAS_INCOMPLETE 0x00000100
6031#define FILE_VC_QUOTAS_REBUILDING 0x00000200
6032#define FILE_VC_VALID_MASK 0x000003ff
6033
6042
6043#ifndef _FILESYSTEMFSCTL_
6044#define _FILESYSTEMFSCTL_
6045
6046#define FSCTL_REQUEST_OPLOCK_LEVEL_1 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
6047#define FSCTL_REQUEST_OPLOCK_LEVEL_2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
6048#define FSCTL_REQUEST_BATCH_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
6049#define FSCTL_OPLOCK_BREAK_ACKNOWLEDGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
6050#define FSCTL_OPBATCH_ACK_CLOSE_PENDING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
6051#define FSCTL_OPLOCK_BREAK_NOTIFY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
6052#define FSCTL_LOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
6053#define FSCTL_UNLOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
6054#define FSCTL_DISMOUNT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
6055#define FSCTL_IS_VOLUME_MOUNTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
6056#define FSCTL_IS_PATHNAME_VALID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
6057#define FSCTL_MARK_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
6058#define FSCTL_QUERY_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 14, METHOD_NEITHER, FILE_ANY_ACCESS)
6059#define FSCTL_GET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
6060#define FSCTL_SET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6061#define FSCTL_SET_BOOTLOADER_ACCESSED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 19, METHOD_NEITHER, FILE_ANY_ACCESS)
6062
6063#define FSCTL_OPLOCK_BREAK_ACK_NO_2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
6064#define FSCTL_INVALIDATE_VOLUMES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
6065#define FSCTL_QUERY_FAT_BPB CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
6066#define FSCTL_REQUEST_FILTER_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
6067#define FSCTL_FILESYSTEM_GET_STATISTICS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
6068
6069#if (_WIN32_WINNT >= 0x0400)
6070
6071#define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)
6072#define FSCTL_GET_NTFS_FILE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS)
6073#define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 27, METHOD_NEITHER, FILE_ANY_ACCESS)
6074#define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 28, METHOD_NEITHER, FILE_ANY_ACCESS)
6075#define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6076#define FSCTL_IS_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
6077#define FSCTL_ALLOW_EXTENDED_DASD_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 32, METHOD_NEITHER, FILE_ANY_ACCESS)
6078
6079#endif
6080
6081#if (_WIN32_WINNT >= 0x0500)
6082
6083#define FSCTL_FIND_FILES_BY_SID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS)
6084#define FSCTL_SET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6085#define FSCTL_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS)
6086#define FSCTL_DELETE_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6087#define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6088#define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
6089#define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6090#define FSCTL_ENUM_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44, METHOD_NEITHER, FILE_ANY_ACCESS)
6091#define FSCTL_SECURITY_ID_CHECK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45, METHOD_NEITHER, FILE_READ_DATA)
6092#define FSCTL_READ_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46, METHOD_NEITHER, FILE_ANY_ACCESS)
6093#define FSCTL_SET_OBJECT_ID_EXTENDED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6094#define FSCTL_CREATE_OR_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS)
6095#define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6096#define FSCTL_SET_ZERO_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_DATA)
6097#define FSCTL_QUERY_ALLOCATED_RANGES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51, METHOD_NEITHER, FILE_READ_DATA)
6098#define FSCTL_ENABLE_UPGRADE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 52, METHOD_BUFFERED, FILE_WRITE_DATA)
6099#define FSCTL_SET_ENCRYPTION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_NEITHER, FILE_ANY_ACCESS)
6100#define FSCTL_ENCRYPTION_FSCTL_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54, METHOD_NEITHER, FILE_ANY_ACCESS)
6101#define FSCTL_WRITE_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55, METHOD_NEITHER, FILE_SPECIAL_ACCESS)
6102#define FSCTL_READ_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56, METHOD_NEITHER, FILE_SPECIAL_ACCESS)
6103#define FSCTL_CREATE_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57, METHOD_NEITHER, FILE_ANY_ACCESS)
6104#define FSCTL_READ_FILE_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58, METHOD_NEITHER, FILE_ANY_ACCESS)
6105#define FSCTL_WRITE_USN_CLOSE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59, METHOD_NEITHER, FILE_ANY_ACCESS)
6106#define FSCTL_EXTEND_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS)
6107#define FSCTL_QUERY_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 61, METHOD_BUFFERED, FILE_ANY_ACCESS)
6108#define FSCTL_DELETE_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 62, METHOD_BUFFERED, FILE_ANY_ACCESS)
6109#define FSCTL_MARK_HANDLE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 63, METHOD_BUFFERED, FILE_ANY_ACCESS)
6110#define FSCTL_SIS_COPYFILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 64, METHOD_BUFFERED, FILE_ANY_ACCESS)
6111#define FSCTL_SIS_LINK_FILES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 65, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6112#define FSCTL_RECALL_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 69, METHOD_NEITHER, FILE_ANY_ACCESS)
6113#define FSCTL_READ_FROM_PLEX CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 71, METHOD_OUT_DIRECT, FILE_READ_DATA)
6114#define FSCTL_FILE_PREFETCH CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 72, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6115
6116#endif
6117
6118#if (_WIN32_WINNT >= 0x0600)
6119
6120#define FSCTL_MAKE_MEDIA_COMPATIBLE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 76, METHOD_BUFFERED, FILE_WRITE_DATA)
6121#define FSCTL_SET_DEFECT_MANAGEMENT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 77, METHOD_BUFFERED, FILE_WRITE_DATA)
6122#define FSCTL_QUERY_SPARING_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 78, METHOD_BUFFERED, FILE_ANY_ACCESS)
6123#define FSCTL_QUERY_ON_DISK_VOLUME_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 79, METHOD_BUFFERED, FILE_ANY_ACCESS)
6124#define FSCTL_SET_VOLUME_COMPRESSION_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 80, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6125#define FSCTL_TXFS_MODIFY_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 81, METHOD_BUFFERED, FILE_WRITE_DATA)
6126#define FSCTL_TXFS_QUERY_RM_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 82, METHOD_BUFFERED, FILE_READ_DATA)
6127#define FSCTL_TXFS_ROLLFORWARD_REDO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 84, METHOD_BUFFERED, FILE_WRITE_DATA)
6128#define FSCTL_TXFS_ROLLFORWARD_UNDO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 85, METHOD_BUFFERED, FILE_WRITE_DATA)
6129#define FSCTL_TXFS_START_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 86, METHOD_BUFFERED, FILE_WRITE_DATA)
6130#define FSCTL_TXFS_SHUTDOWN_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 87, METHOD_BUFFERED, FILE_WRITE_DATA)
6131#define FSCTL_TXFS_READ_BACKUP_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 88, METHOD_BUFFERED, FILE_READ_DATA)
6132#define FSCTL_TXFS_WRITE_BACKUP_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 89, METHOD_BUFFERED, FILE_WRITE_DATA)
6133#define FSCTL_TXFS_CREATE_SECONDARY_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 90, METHOD_BUFFERED, FILE_WRITE_DATA)
6134#define FSCTL_TXFS_GET_METADATA_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 91, METHOD_BUFFERED, FILE_READ_DATA)
6135#define FSCTL_TXFS_GET_TRANSACTED_VERSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 92, METHOD_BUFFERED, FILE_READ_DATA)
6136#define FSCTL_TXFS_SAVEPOINT_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 94, METHOD_BUFFERED, FILE_WRITE_DATA)
6137#define FSCTL_TXFS_CREATE_MINIVERSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 95, METHOD_BUFFERED, FILE_WRITE_DATA)
6138#define FSCTL_TXFS_TRANSACTION_ACTIVE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 99, METHOD_BUFFERED, FILE_READ_DATA)
6139#define FSCTL_SET_ZERO_ON_DEALLOCATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 101, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6140#define FSCTL_SET_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 102, METHOD_BUFFERED, FILE_ANY_ACCESS)
6141#define FSCTL_GET_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 103, METHOD_BUFFERED, FILE_ANY_ACCESS)
6142#define FSCTL_WAIT_FOR_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 104, METHOD_BUFFERED, FILE_ANY_ACCESS)
6143#define FSCTL_INITIATE_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 106, METHOD_BUFFERED, FILE_ANY_ACCESS)
6144#define FSCTL_CSC_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 107, METHOD_NEITHER, FILE_ANY_ACCESS)
6145#define FSCTL_SHRINK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 108, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6146#define FSCTL_SET_SHORT_NAME_BEHAVIOR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 109, METHOD_BUFFERED, FILE_ANY_ACCESS)
6147#define FSCTL_DFSR_SET_GHOST_HANDLE_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 110, METHOD_BUFFERED, FILE_ANY_ACCESS)
6148#define FSCTL_TXFS_LIST_TRANSACTION_LOCKED_FILES \
6149 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_READ_DATA)
6150#define FSCTL_TXFS_LIST_TRANSACTIONS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 121, METHOD_BUFFERED, FILE_READ_DATA)
6151#define FSCTL_QUERY_PAGEFILE_ENCRYPTION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 122, METHOD_BUFFERED, FILE_ANY_ACCESS)
6152#define FSCTL_RESET_VOLUME_ALLOCATION_HINTS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 123, METHOD_BUFFERED, FILE_ANY_ACCESS)
6153#define FSCTL_TXFS_READ_BACKUP_INFORMATION2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 126, METHOD_BUFFERED, FILE_ANY_ACCESS)
6154
6155#endif
6156
6157#if (_WIN32_WINNT >= 0x0601)
6158
6159#define FSCTL_QUERY_DEPENDENT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 124, METHOD_BUFFERED, FILE_ANY_ACCESS)
6160#define FSCTL_SD_GLOBAL_CHANGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 125, METHOD_BUFFERED, FILE_ANY_ACCESS)
6161#define FSCTL_LOOKUP_STREAM_FROM_CLUSTER CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 127, METHOD_BUFFERED, FILE_ANY_ACCESS)
6162#define FSCTL_TXFS_WRITE_BACKUP_INFORMATION2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 128, METHOD_BUFFERED, FILE_ANY_ACCESS)
6163#define FSCTL_FILE_TYPE_NOTIFICATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 129, METHOD_BUFFERED, FILE_ANY_ACCESS)
6164#define FSCTL_GET_BOOT_AREA_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 140, METHOD_BUFFERED, FILE_ANY_ACCESS)
6165#define FSCTL_GET_RETRIEVAL_POINTER_BASE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 141, METHOD_BUFFERED, FILE_ANY_ACCESS)
6166#define FSCTL_SET_PERSISTENT_VOLUME_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 142, METHOD_BUFFERED, FILE_ANY_ACCESS)
6167#define FSCTL_QUERY_PERSISTENT_VOLUME_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 143, METHOD_BUFFERED, FILE_ANY_ACCESS)
6168#define FSCTL_REQUEST_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 144, METHOD_BUFFERED, FILE_ANY_ACCESS)
6169#define FSCTL_CSV_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 145, METHOD_BUFFERED, FILE_ANY_ACCESS)
6170#define FSCTL_IS_CSV_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 146, METHOD_BUFFERED, FILE_ANY_ACCESS)
6171#define FSCTL_QUERY_FILE_SYSTEM_RECOGNITION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 147, METHOD_BUFFERED, FILE_ANY_ACCESS)
6172#define FSCTL_CSV_GET_VOLUME_PATH_NAME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 148, METHOD_BUFFERED, FILE_ANY_ACCESS)
6173#define FSCTL_CSV_GET_VOLUME_NAME_FOR_VOLUME_MOUNT_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 149, METHOD_BUFFERED, FILE_ANY_ACCESS)
6174#define FSCTL_CSV_GET_VOLUME_PATH_NAMES_FOR_VOLUME_NAME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 150, METHOD_BUFFERED, FILE_ANY_ACCESS)
6175#define FSCTL_IS_FILE_ON_CSV_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 151, METHOD_BUFFERED, FILE_ANY_ACCESS)
6176#define FSCTL_CSV_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 155, METHOD_BUFFERED, FILE_ANY_ACCESS)
6177
6178typedef struct _CSV_NAMESPACE_INFO {
6179 ULONG Version;
6183} CSV_NAMESPACE_INFO, *PCSV_NAMESPACE_INFO;
6184
6185#define CSV_NAMESPACE_INFO_V1 (sizeof(CSV_NAMESPACE_INFO))
6186#define CSV_INVALID_DEVICE_NUMBER 0xFFFFFFFF
6187
6188#endif
6189
6190#if (_WIN32_WINNT >= 0x0602)
6191
6192#define FSCTL_FILE_LEVEL_TRIM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 130, METHOD_BUFFERED, FILE_WRITE_DATA)
6193#define FSCTL_CORRUPTION_HANDLING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 152, METHOD_BUFFERED, FILE_ANY_ACCESS)
6194#define FSCTL_OFFLOAD_READ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 153, METHOD_BUFFERED, FILE_READ_ACCESS)
6195#define FSCTL_OFFLOAD_WRITE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 154, METHOD_BUFFERED, FILE_WRITE_ACCESS)
6196#define FSCTL_SET_PURGE_FAILURE_MODE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 156, METHOD_BUFFERED, FILE_ANY_ACCESS)
6197#define FSCTL_QUERY_FILE_LAYOUT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 157, METHOD_NEITHER, FILE_ANY_ACCESS)
6198#define FSCTL_IS_VOLUME_OWNED_BYCSVFS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 158, METHOD_BUFFERED, FILE_ANY_ACCESS)
6199#define FSCTL_GET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 159, METHOD_BUFFERED, FILE_ANY_ACCESS)
6200#define FSCTL_SET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 160, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6201#define FSCTL_QUERY_FILE_REGIONS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 161, METHOD_BUFFERED, FILE_ANY_ACCESS)
6202#define FSCTL_DEDUP_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 165, METHOD_BUFFERED, FILE_ANY_ACCESS)
6203#define FSCTL_DEDUP_QUERY_FILE_HASHES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 166, METHOD_NEITHER, FILE_READ_DATA)
6204#define FSCTL_RKF_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 171, METHOD_NEITHER, FILE_ANY_ACCESS)
6205#define FSCTL_SCRUB_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 172, METHOD_BUFFERED, FILE_ANY_ACCESS)
6206#define FSCTL_REPAIR_COPIES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 173, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6207#define FSCTL_DISABLE_LOCAL_BUFFERING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 174, METHOD_BUFFERED, FILE_ANY_ACCESS)
6208#define FSCTL_CSV_MGMT_LOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 175, METHOD_BUFFERED, FILE_ANY_ACCESS)
6209#define FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICS \
6210 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 176, METHOD_BUFFERED, FILE_ANY_ACCESS)
6211#define FSCTL_ADVANCE_FILE_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 177, METHOD_BUFFERED, FILE_ANY_ACCESS)
6212#define FSCTL_CSV_SYNC_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 178, METHOD_BUFFERED, FILE_ANY_ACCESS)
6213#define FSCTL_CSV_QUERY_VETO_FILE_DIRECT_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 179, METHOD_BUFFERED, FILE_ANY_ACCESS)
6214#define FSCTL_WRITE_USN_REASON CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 180, METHOD_BUFFERED, FILE_ANY_ACCESS)
6215#define FSCTL_CSV_CONTROL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 181, METHOD_BUFFERED, FILE_ANY_ACCESS)
6216#define FSCTL_GET_REFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 182, METHOD_BUFFERED, FILE_ANY_ACCESS)
6217
6218#endif
6219
6220#if (_WIN32_WINNT >= 0x0603)
6221
6222#define FSCTL_DUPLICATE_EXTENTS_TO_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 209, METHOD_BUFFERED, FILE_WRITE_DATA)
6223
6224#endif
6225
6226#define FSCTL_MARK_AS_SYSTEM_HIVE FSCTL_SET_BOOTLOADER_ACCESSED
6227
6228typedef struct _PATHNAME_BUFFER {
6232
6234 UCHAR First0x24BytesOfBootSector[0x24];
6236
6237#if (_WIN32_WINNT >= 0x0400)
6238
6239typedef struct _NTFS_VOLUME_DATA_BUFFER {
6240 LARGE_INTEGER VolumeSerialNumber;
6241 LARGE_INTEGER NumberSectors;
6242 LARGE_INTEGER TotalClusters;
6244 LARGE_INTEGER TotalReserved;
6245 ULONG BytesPerSector;
6246 ULONG BytesPerCluster;
6247 ULONG BytesPerFileRecordSegment;
6248 ULONG ClustersPerFileRecordSegment;
6249 LARGE_INTEGER MftValidDataLength;
6250 LARGE_INTEGER MftStartLcn;
6251 LARGE_INTEGER Mft2StartLcn;
6252 LARGE_INTEGER MftZoneStart;
6253 LARGE_INTEGER MftZoneEnd;
6255
6256typedef struct _NTFS_EXTENDED_VOLUME_DATA {
6261
6262typedef struct _STARTING_LCN_INPUT_BUFFER {
6263 LARGE_INTEGER StartingLcn;
6265
6266typedef struct _VOLUME_BITMAP_BUFFER {
6267 LARGE_INTEGER StartingLcn;
6268 LARGE_INTEGER BitmapSize;
6269 UCHAR Buffer[1];
6271
6272typedef struct _STARTING_VCN_INPUT_BUFFER {
6273 LARGE_INTEGER StartingVcn;
6275
6276typedef struct _RETRIEVAL_POINTERS_BUFFER {
6277 ULONG ExtentCount;
6278 LARGE_INTEGER StartingVcn;
6279 struct {
6280 LARGE_INTEGER NextVcn;
6281 LARGE_INTEGER Lcn;
6282 } Extents[1];
6284
6285typedef struct _NTFS_FILE_RECORD_INPUT_BUFFER {
6286 LARGE_INTEGER FileReferenceNumber;
6288
6289typedef struct _NTFS_FILE_RECORD_OUTPUT_BUFFER {
6290 LARGE_INTEGER FileReferenceNumber;
6291 ULONG FileRecordLength;
6292 UCHAR FileRecordBuffer[1];
6294
6295typedef struct _MOVE_FILE_DATA {
6297 LARGE_INTEGER StartingVcn;
6298 LARGE_INTEGER StartingLcn;
6299 ULONG ClusterCount;
6301
6302typedef struct _MOVE_FILE_RECORD_DATA {
6304 LARGE_INTEGER SourceFileRecord;
6305 LARGE_INTEGER TargetFileRecord;
6306} MOVE_FILE_RECORD_DATA, *PMOVE_FILE_RECORD_DATA;
6307
6308#if defined(_WIN64)
6309typedef struct _MOVE_FILE_DATA32 {
6311 LARGE_INTEGER StartingVcn;
6312 LARGE_INTEGER StartingLcn;
6313 ULONG ClusterCount;
6314} MOVE_FILE_DATA32, *PMOVE_FILE_DATA32;
6315#endif
6316
6317#endif /* (_WIN32_WINNT >= 0x0400) */
6318
6319#if (_WIN32_WINNT >= 0x0500)
6320
6321typedef struct _FIND_BY_SID_DATA {
6322 ULONG Restart;
6323 SID Sid;
6324} FIND_BY_SID_DATA, *PFIND_BY_SID_DATA;
6325
6326typedef struct _FIND_BY_SID_OUTPUT {
6327 ULONG NextEntryOffset;
6328 ULONG FileIndex;
6330 WCHAR FileName[1];
6331} FIND_BY_SID_OUTPUT, *PFIND_BY_SID_OUTPUT;
6332
6333typedef struct _MFT_ENUM_DATA {
6334 ULONGLONG StartFileReferenceNumber;
6335 USN LowUsn;
6336 USN HighUsn;
6337} MFT_ENUM_DATA, *PMFT_ENUM_DATA;
6338
6339typedef struct _CREATE_USN_JOURNAL_DATA {
6341 ULONGLONG AllocationDelta;
6342} CREATE_USN_JOURNAL_DATA, *PCREATE_USN_JOURNAL_DATA;
6343
6344typedef struct _READ_USN_JOURNAL_DATA {
6345 USN StartUsn;
6346 ULONG ReasonMask;
6347 ULONG ReturnOnlyOnClose;
6349 ULONGLONG BytesToWaitFor;
6350 ULONGLONG UsnJournalID;
6351} READ_USN_JOURNAL_DATA, *PREAD_USN_JOURNAL_DATA;
6352
6353typedef struct _USN_RECORD {
6354 ULONG RecordLength;
6357 ULONGLONG FileReferenceNumber;
6358 ULONGLONG ParentFileReferenceNumber;
6359 USN Usn;
6361 ULONG Reason;
6362 ULONG SourceInfo;
6363 ULONG SecurityId;
6366 USHORT FileNameOffset;
6367 WCHAR FileName[1];
6368} USN_RECORD, *PUSN_RECORD;
6369
6370#define USN_PAGE_SIZE (0x1000)
6371
6372#define USN_REASON_DATA_OVERWRITE (0x00000001)
6373#define USN_REASON_DATA_EXTEND (0x00000002)
6374#define USN_REASON_DATA_TRUNCATION (0x00000004)
6375#define USN_REASON_NAMED_DATA_OVERWRITE (0x00000010)
6376#define USN_REASON_NAMED_DATA_EXTEND (0x00000020)
6377#define USN_REASON_NAMED_DATA_TRUNCATION (0x00000040)
6378#define USN_REASON_FILE_CREATE (0x00000100)
6379#define USN_REASON_FILE_DELETE (0x00000200)
6380#define USN_REASON_EA_CHANGE (0x00000400)
6381#define USN_REASON_SECURITY_CHANGE (0x00000800)
6382#define USN_REASON_RENAME_OLD_NAME (0x00001000)
6383#define USN_REASON_RENAME_NEW_NAME (0x00002000)
6384#define USN_REASON_INDEXABLE_CHANGE (0x00004000)
6385#define USN_REASON_BASIC_INFO_CHANGE (0x00008000)
6386#define USN_REASON_HARD_LINK_CHANGE (0x00010000)
6387#define USN_REASON_COMPRESSION_CHANGE (0x00020000)
6388#define USN_REASON_ENCRYPTION_CHANGE (0x00040000)
6389#define USN_REASON_OBJECT_ID_CHANGE (0x00080000)
6390#define USN_REASON_REPARSE_POINT_CHANGE (0x00100000)
6391#define USN_REASON_STREAM_CHANGE (0x00200000)
6392#define USN_REASON_TRANSACTED_CHANGE (0x00400000)
6393#define USN_REASON_CLOSE (0x80000000)
6394
6395typedef struct _USN_JOURNAL_DATA {
6396 ULONGLONG UsnJournalID;
6397 USN FirstUsn;
6398 USN NextUsn;
6399 USN LowestValidUsn;
6400 USN MaxUsn;
6402 ULONGLONG AllocationDelta;
6403} USN_JOURNAL_DATA, *PUSN_JOURNAL_DATA;
6404
6405typedef struct _DELETE_USN_JOURNAL_DATA {
6406 ULONGLONG UsnJournalID;
6407 ULONG DeleteFlags;
6408} DELETE_USN_JOURNAL_DATA, *PDELETE_USN_JOURNAL_DATA;
6409
6410#define USN_DELETE_FLAG_DELETE (0x00000001)
6411#define USN_DELETE_FLAG_NOTIFY (0x00000002)
6412#define USN_DELETE_VALID_FLAGS (0x00000003)
6413
6414typedef struct _MARK_HANDLE_INFO {
6415 ULONG UsnSourceInfo;
6417 ULONG HandleInfo;
6418} MARK_HANDLE_INFO, *PMARK_HANDLE_INFO;
6419
6420#if defined(_WIN64)
6421typedef struct _MARK_HANDLE_INFO32 {
6422 ULONG UsnSourceInfo;
6424 ULONG HandleInfo;
6425} MARK_HANDLE_INFO32, *PMARK_HANDLE_INFO32;
6426#endif
6427
6428#define USN_SOURCE_DATA_MANAGEMENT (0x00000001)
6429#define USN_SOURCE_AUXILIARY_DATA (0x00000002)
6430#define USN_SOURCE_REPLICATION_MANAGEMENT (0x00000004)
6431
6432#define MARK_HANDLE_PROTECT_CLUSTERS (0x00000001)
6433#define MARK_HANDLE_TXF_SYSTEM_LOG (0x00000004)
6434#define MARK_HANDLE_NOT_TXF_SYSTEM_LOG (0x00000008)
6435
6436typedef struct _BULK_SECURITY_TEST_DATA {
6438 ULONG SecurityIds[1];
6439} BULK_SECURITY_TEST_DATA, *PBULK_SECURITY_TEST_DATA;
6440
6441#define VOLUME_IS_DIRTY (0x00000001)
6442#define VOLUME_UPGRADE_SCHEDULED (0x00000002)
6443#define VOLUME_SESSION_OPEN (0x00000004)
6444
6445typedef struct _FILE_PREFETCH {
6446 ULONG Type;
6447 ULONG Count;
6448 ULONGLONG Prefetch[1];
6449} FILE_PREFETCH, *PFILE_PREFETCH;
6450
6451typedef struct _FILE_PREFETCH_EX {
6452 ULONG Type;
6453 ULONG Count;
6454 PVOID Context;
6455 ULONGLONG Prefetch[1];
6456} FILE_PREFETCH_EX, *PFILE_PREFETCH_EX;
6457
6458#define FILE_PREFETCH_TYPE_FOR_CREATE 0x1
6459#define FILE_PREFETCH_TYPE_FOR_DIRENUM 0x2
6460#define FILE_PREFETCH_TYPE_FOR_CREATE_EX 0x3
6461#define FILE_PREFETCH_TYPE_FOR_DIRENUM_EX 0x4
6462
6463#define FILE_PREFETCH_TYPE_MAX 0x4
6464
6465typedef struct _FILE_OBJECTID_BUFFER {
6466 UCHAR ObjectId[16];
6467 _ANONYMOUS_UNION union {
6468 _ANONYMOUS_STRUCT struct {
6469 UCHAR BirthVolumeId[16];
6470 UCHAR BirthObjectId[16];
6471 UCHAR DomainId[16];
6473 UCHAR ExtendedInfo[48];
6475} FILE_OBJECTID_BUFFER, *PFILE_OBJECTID_BUFFER;
6476
6477typedef struct _FILE_SET_SPARSE_BUFFER {
6478 BOOLEAN SetSparse;
6479} FILE_SET_SPARSE_BUFFER, *PFILE_SET_SPARSE_BUFFER;
6480
6481typedef struct _FILE_ZERO_DATA_INFORMATION {
6483 LARGE_INTEGER BeyondFinalZero;
6484} FILE_ZERO_DATA_INFORMATION, *PFILE_ZERO_DATA_INFORMATION;
6485
6486typedef struct _FILE_ALLOCATED_RANGE_BUFFER {
6489} FILE_ALLOCATED_RANGE_BUFFER, *PFILE_ALLOCATED_RANGE_BUFFER;
6490
6491typedef struct _ENCRYPTION_BUFFER {
6492 ULONG EncryptionOperation;
6493 UCHAR Private[1];
6494} ENCRYPTION_BUFFER, *PENCRYPTION_BUFFER;
6495
6496#define FILE_SET_ENCRYPTION 0x00000001
6497#define FILE_CLEAR_ENCRYPTION 0x00000002
6498#define STREAM_SET_ENCRYPTION 0x00000003
6499#define STREAM_CLEAR_ENCRYPTION 0x00000004
6500
6501#define MAXIMUM_ENCRYPTION_VALUE 0x00000004
6502
6503typedef struct _DECRYPTION_STATUS_BUFFER {
6504 BOOLEAN NoEncryptedStreams;
6505} DECRYPTION_STATUS_BUFFER, *PDECRYPTION_STATUS_BUFFER;
6506
6507#define ENCRYPTION_FORMAT_DEFAULT (0x01)
6508
6509#define COMPRESSION_FORMAT_SPARSE (0x4000)
6510
6511typedef struct _REQUEST_RAW_ENCRYPTED_DATA {
6513 ULONG Length;
6514} REQUEST_RAW_ENCRYPTED_DATA, *PREQUEST_RAW_ENCRYPTED_DATA;
6515
6516typedef struct _ENCRYPTED_DATA_INFO {
6517 ULONGLONG StartingFileOffset;
6519 ULONG BytesWithinFileSize;
6520 ULONG BytesWithinValidDataLength;
6521 USHORT CompressionFormat;
6522 UCHAR DataUnitShift;
6523 UCHAR ChunkShift;
6524 UCHAR ClusterShift;
6525 UCHAR EncryptionFormat;
6526 USHORT NumberOfDataBlocks;
6527 ULONG DataBlockSize[ANYSIZE_ARRAY];
6528} ENCRYPTED_DATA_INFO, *PENCRYPTED_DATA_INFO;
6529
6530typedef struct _PLEX_READ_DATA_REQUEST {
6532 ULONG ByteLength;
6533 ULONG PlexNumber;
6534} PLEX_READ_DATA_REQUEST, *PPLEX_READ_DATA_REQUEST;
6535
6536typedef struct _SI_COPYFILE {
6537 ULONG SourceFileNameLength;
6538 ULONG DestinationFileNameLength;
6539 ULONG Flags;
6541} SI_COPYFILE, *PSI_COPYFILE;
6542
6543#define COPYFILE_SIS_LINK 0x0001
6544#define COPYFILE_SIS_REPLACE 0x0002
6545#define COPYFILE_SIS_FLAGS 0x0003
6546
6547#endif /* (_WIN32_WINNT >= 0x0500) */
6548
6549#if (_WIN32_WINNT >= 0x0600)
6550
6551typedef struct _FILE_MAKE_COMPATIBLE_BUFFER {
6552 BOOLEAN CloseDisc;
6553} FILE_MAKE_COMPATIBLE_BUFFER, *PFILE_MAKE_COMPATIBLE_BUFFER;
6554
6555typedef struct _FILE_SET_DEFECT_MGMT_BUFFER {
6556 BOOLEAN Disable;
6557} FILE_SET_DEFECT_MGMT_BUFFER, *PFILE_SET_DEFECT_MGMT_BUFFER;
6558
6559typedef struct _FILE_QUERY_SPARING_BUFFER {
6560 ULONG SparingUnitBytes;
6561 BOOLEAN SoftwareSparing;
6562 ULONG TotalSpareBlocks;
6563 ULONG FreeSpareBlocks;
6564} FILE_QUERY_SPARING_BUFFER, *PFILE_QUERY_SPARING_BUFFER;
6565
6566typedef struct _FILE_QUERY_ON_DISK_VOL_INFO_BUFFER {
6567 LARGE_INTEGER DirectoryCount;
6569 USHORT FsFormatMajVersion;
6570 USHORT FsFormatMinVersion;
6571 WCHAR FsFormatName[12];
6573 LARGE_INTEGER LastUpdateTime;
6574 WCHAR CopyrightInfo[34];
6575 WCHAR AbstractInfo[34];
6576 WCHAR FormattingImplementationInfo[34];
6577 WCHAR LastModifyingImplementationInfo[34];
6578} FILE_QUERY_ON_DISK_VOL_INFO_BUFFER, *PFILE_QUERY_ON_DISK_VOL_INFO_BUFFER;
6579
6580#define SET_REPAIR_ENABLED (0x00000001)
6581#define SET_REPAIR_VOLUME_BITMAP_SCAN (0x00000002)
6582#define SET_REPAIR_DELETE_CROSSLINK (0x00000004)
6583#define SET_REPAIR_WARN_ABOUT_DATA_LOSS (0x00000008)
6584#define SET_REPAIR_DISABLED_AND_BUGCHECK_ON_CORRUPT (0x00000010)
6585#define SET_REPAIR_VALID_MASK (0x0000001F)
6586
6587typedef enum _SHRINK_VOLUME_REQUEST_TYPES {
6588 ShrinkPrepare = 1,
6589 ShrinkCommit,
6590 ShrinkAbort
6591} SHRINK_VOLUME_REQUEST_TYPES, *PSHRINK_VOLUME_REQUEST_TYPES;
6592
6593typedef struct _SHRINK_VOLUME_INFORMATION {
6594 SHRINK_VOLUME_REQUEST_TYPES ShrinkRequestType;
6596 LONGLONG NewNumberOfSectors;
6597} SHRINK_VOLUME_INFORMATION, *PSHRINK_VOLUME_INFORMATION;
6598
6599#define TXFS_RM_FLAG_LOGGING_MODE 0x00000001
6600#define TXFS_RM_FLAG_RENAME_RM 0x00000002
6601#define TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX 0x00000004
6602#define TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN 0x00000008
6603#define TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS 0x00000010
6604#define TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT 0x00000020
6605#define TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE 0x00000040
6606#define TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX 0x00000080
6607#define TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN 0x00000100
6608#define TXFS_RM_FLAG_GROW_LOG 0x00000400
6609#define TXFS_RM_FLAG_SHRINK_LOG 0x00000800
6610#define TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE 0x00001000
6611#define TXFS_RM_FLAG_PRESERVE_CHANGES 0x00002000
6612#define TXFS_RM_FLAG_RESET_RM_AT_NEXT_START 0x00004000
6613#define TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START 0x00008000
6614#define TXFS_RM_FLAG_PREFER_CONSISTENCY 0x00010000
6615#define TXFS_RM_FLAG_PREFER_AVAILABILITY 0x00020000
6616
6617#define TXFS_LOGGING_MODE_SIMPLE (0x0001)
6618#define TXFS_LOGGING_MODE_FULL (0x0002)
6619
6620#define TXFS_TRANSACTION_STATE_NONE 0x00
6621#define TXFS_TRANSACTION_STATE_ACTIVE 0x01
6622#define TXFS_TRANSACTION_STATE_PREPARED 0x02
6623#define TXFS_TRANSACTION_STATE_NOTACTIVE 0x03
6624
6625#define TXFS_MODIFY_RM_VALID_FLAGS (TXFS_RM_FLAG_LOGGING_MODE | \
6626 TXFS_RM_FLAG_RENAME_RM | \
6627 TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX | \
6628 TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN | \
6629 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
6630 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
6631 TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE | \
6632 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
6633 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN | \
6634 TXFS_RM_FLAG_SHRINK_LOG | \
6635 TXFS_RM_FLAG_GROW_LOG | \
6636 TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE | \
6637 TXFS_RM_FLAG_PRESERVE_CHANGES | \
6638 TXFS_RM_FLAG_RESET_RM_AT_NEXT_START | \
6639 TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START | \
6640 TXFS_RM_FLAG_PREFER_CONSISTENCY | \
6641 TXFS_RM_FLAG_PREFER_AVAILABILITY)
6642
6643typedef struct _TXFS_MODIFY_RM {
6644 ULONG Flags;
6645 ULONG LogContainerCountMax;
6646 ULONG LogContainerCountMin;
6647 ULONG LogContainerCount;
6648 ULONG LogGrowthIncrement;
6649 ULONG LogAutoShrinkPercentage;
6651 USHORT LoggingMode;
6652} TXFS_MODIFY_RM, *PTXFS_MODIFY_RM;
6653
6654#define TXFS_RM_STATE_NOT_STARTED 0
6655#define TXFS_RM_STATE_STARTING 1
6656#define TXFS_RM_STATE_ACTIVE 2
6657#define TXFS_RM_STATE_SHUTTING_DOWN 3
6658
6659#define TXFS_QUERY_RM_INFORMATION_VALID_FLAGS \
6660 (TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
6661 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
6662 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
6663 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN | \
6664 TXFS_RM_FLAG_RESET_RM_AT_NEXT_START | \
6665 TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START | \
6666 TXFS_RM_FLAG_PREFER_CONSISTENCY | \
6667 TXFS_RM_FLAG_PREFER_AVAILABILITY)
6668
6669typedef struct _TXFS_QUERY_RM_INFORMATION {
6670 ULONG BytesRequired;
6671 ULONGLONG TailLsn;
6672 ULONGLONG CurrentLsn;
6673 ULONGLONG ArchiveTailLsn;
6674 ULONGLONG LogContainerSize;
6675 LARGE_INTEGER HighestVirtualClock;
6676 ULONG LogContainerCount;
6677 ULONG LogContainerCountMax;
6678 ULONG LogContainerCountMin;
6679 ULONG LogGrowthIncrement;
6680 ULONG LogAutoShrinkPercentage;
6681 ULONG Flags;
6682 USHORT LoggingMode;
6684 ULONG RmState;
6685 ULONGLONG LogCapacity;
6686 ULONGLONG LogFree;
6687 ULONGLONG TopsSize;
6688 ULONGLONG TopsUsed;
6689 ULONGLONG TransactionCount;
6690 ULONGLONG OnePCCount;
6691 ULONGLONG TwoPCCount;
6692 ULONGLONG NumberLogFileFull;
6693 ULONGLONG OldestTransactionAge;
6694 GUID RMName;
6695 ULONG TmLogPathOffset;
6696} TXFS_QUERY_RM_INFORMATION, *PTXFS_QUERY_RM_INFORMATION;
6697
6698#define TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN 0x01
6699#define TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK 0x02
6700
6701#define TXFS_ROLLFORWARD_REDO_VALID_FLAGS \
6702 (TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN | \
6703 TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK)
6704
6705typedef struct _TXFS_ROLLFORWARD_REDO_INFORMATION {
6706 LARGE_INTEGER LastVirtualClock;
6707 ULONGLONG LastRedoLsn;
6708 ULONGLONG HighestRecoveryLsn;
6709 ULONG Flags;
6710} TXFS_ROLLFORWARD_REDO_INFORMATION, *PTXFS_ROLLFORWARD_REDO_INFORMATION;
6711
6712#define TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX 0x00000001
6713#define TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN 0x00000002
6714#define TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE 0x00000004
6715#define TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS 0x00000008
6716#define TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT 0x00000010
6717#define TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE 0x00000020
6718#define TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX 0x00000040
6719#define TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN 0x00000080
6720
6721#define TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT 0x00000200
6722#define TXFS_START_RM_FLAG_LOGGING_MODE 0x00000400
6723#define TXFS_START_RM_FLAG_PRESERVE_CHANGES 0x00000800
6724
6725#define TXFS_START_RM_FLAG_PREFER_CONSISTENCY 0x00001000
6726#define TXFS_START_RM_FLAG_PREFER_AVAILABILITY 0x00002000
6727
6728#define TXFS_START_RM_VALID_FLAGS \
6729 (TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX | \
6730 TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN | \
6731 TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE | \
6732 TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
6733 TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
6734 TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE | \
6735 TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT | \
6736 TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
6737 TXFS_START_RM_FLAG_LOGGING_MODE | \
6738 TXFS_START_RM_FLAG_PRESERVE_CHANGES | \
6739 TXFS_START_RM_FLAG_PREFER_CONSISTENCY | \
6740 TXFS_START_RM_FLAG_PREFER_AVAILABILITY)
6741
6742typedef struct _TXFS_START_RM_INFORMATION {
6743 ULONG Flags;
6744 ULONGLONG LogContainerSize;
6745 ULONG LogContainerCountMin;
6746 ULONG LogContainerCountMax;
6747 ULONG LogGrowthIncrement;
6748 ULONG LogAutoShrinkPercentage;
6749 ULONG TmLogPathOffset;
6750 USHORT TmLogPathLength;
6751 USHORT LoggingMode;
6752 USHORT LogPathLength;
6754 WCHAR LogPath[1];
6755} TXFS_START_RM_INFORMATION, *PTXFS_START_RM_INFORMATION;
6756
6757typedef struct _TXFS_GET_METADATA_INFO_OUT {
6758 struct {
6759 LONGLONG LowPart;
6760 LONGLONG HighPart;
6761 } TxfFileId;
6762 GUID LockingTransaction;
6763 ULONGLONG LastLsn;
6764 ULONG TransactionState;
6765} TXFS_GET_METADATA_INFO_OUT, *PTXFS_GET_METADATA_INFO_OUT;
6766
6767#define TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_CREATED 0x00000001
6768#define TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_DELETED 0x00000002
6769
6770typedef struct _TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY {
6772 ULONG NameFlags;
6773 LONGLONG FileId;
6777 WCHAR FileName[1];
6778} TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY, *PTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY;
6779
6780typedef struct _TXFS_LIST_TRANSACTION_LOCKED_FILES {
6781 GUID KtmTransaction;
6782 ULONGLONG NumberOfFiles;
6783 ULONGLONG BufferSizeRequired;
6785} TXFS_LIST_TRANSACTION_LOCKED_FILES, *PTXFS_LIST_TRANSACTION_LOCKED_FILES;
6786
6787typedef struct _TXFS_LIST_TRANSACTIONS_ENTRY {
6789 ULONG TransactionState;
6793} TXFS_LIST_TRANSACTIONS_ENTRY, *PTXFS_LIST_TRANSACTIONS_ENTRY;
6794
6795typedef struct _TXFS_LIST_TRANSACTIONS {
6796 ULONGLONG NumberOfTransactions;
6797 ULONGLONG BufferSizeRequired;
6798} TXFS_LIST_TRANSACTIONS, *PTXFS_LIST_TRANSACTIONS;
6799
6800typedef struct _TXFS_READ_BACKUP_INFORMATION_OUT {
6801 _ANONYMOUS_UNION union {
6803 UCHAR Buffer[1];
6805} TXFS_READ_BACKUP_INFORMATION_OUT, *PTXFS_READ_BACKUP_INFORMATION_OUT;
6806
6807typedef struct _TXFS_WRITE_BACKUP_INFORMATION {
6808 UCHAR Buffer[1];
6809} TXFS_WRITE_BACKUP_INFORMATION, *PTXFS_WRITE_BACKUP_INFORMATION;
6810
6811#define TXFS_TRANSACTED_VERSION_NONTRANSACTED 0xFFFFFFFE
6812#define TXFS_TRANSACTED_VERSION_UNCOMMITTED 0xFFFFFFFF
6813
6814typedef struct _TXFS_GET_TRANSACTED_VERSION {
6815 ULONG ThisBaseVersion;
6816 ULONG LatestVersion;
6817 USHORT ThisMiniVersion;
6818 USHORT FirstMiniVersion;
6819 USHORT LatestMiniVersion;
6820} TXFS_GET_TRANSACTED_VERSION, *PTXFS_GET_TRANSACTED_VERSION;
6821
6822#define TXFS_SAVEPOINT_SET 0x00000001
6823#define TXFS_SAVEPOINT_ROLLBACK 0x00000002
6824#define TXFS_SAVEPOINT_CLEAR 0x00000004
6825#define TXFS_SAVEPOINT_CLEAR_ALL 0x00000010
6826
6827typedef struct _TXFS_SAVEPOINT_INFORMATION {
6828 HANDLE KtmTransaction;
6829 ULONG ActionCode;
6830 ULONG SavepointId;
6831} TXFS_SAVEPOINT_INFORMATION, *PTXFS_SAVEPOINT_INFORMATION;
6832
6833typedef struct _TXFS_CREATE_MINIVERSION_INFO {
6834 USHORT StructureVersion;
6835 USHORT StructureLength;
6836 ULONG BaseVersion;
6837 USHORT MiniVersion;
6838} TXFS_CREATE_MINIVERSION_INFO, *PTXFS_CREATE_MINIVERSION_INFO;
6839
6840typedef struct _TXFS_TRANSACTION_ACTIVE_INFO {
6841 BOOLEAN TransactionsActiveAtSnapshot;
6842} TXFS_TRANSACTION_ACTIVE_INFO, *PTXFS_TRANSACTION_ACTIVE_INFO;
6843
6844#endif /* (_WIN32_WINNT >= 0x0600) */
6845
6846#if (_WIN32_WINNT >= 0x0601)
6847
6848#define MARK_HANDLE_REALTIME (0x00000020)
6849#define MARK_HANDLE_NOT_REALTIME (0x00000040)
6850
6851#define NO_8DOT3_NAME_PRESENT (0x00000001)
6852#define REMOVED_8DOT3_NAME (0x00000002)
6853
6854#define PERSISTENT_VOLUME_STATE_SHORT_NAME_CREATION_DISABLED (0x00000001)
6855
6856typedef struct _BOOT_AREA_INFO {
6857 ULONG BootSectorCount;
6858 struct {
6860 } BootSectors[2];
6861} BOOT_AREA_INFO, *PBOOT_AREA_INFO;
6862
6863typedef struct _RETRIEVAL_POINTER_BASE {
6864 LARGE_INTEGER FileAreaOffset;
6865} RETRIEVAL_POINTER_BASE, *PRETRIEVAL_POINTER_BASE;
6866
6867typedef struct _FILE_FS_PERSISTENT_VOLUME_INFORMATION {
6868 ULONG VolumeFlags;
6869 ULONG FlagMask;
6870 ULONG Version;
6872} FILE_FS_PERSISTENT_VOLUME_INFORMATION, *PFILE_FS_PERSISTENT_VOLUME_INFORMATION;
6873
6874typedef struct _FILE_SYSTEM_RECOGNITION_INFORMATION {
6875 CHAR FileSystem[9];
6876} FILE_SYSTEM_RECOGNITION_INFORMATION, *PFILE_SYSTEM_RECOGNITION_INFORMATION;
6877
6878#define OPLOCK_LEVEL_CACHE_READ (0x00000001)
6879#define OPLOCK_LEVEL_CACHE_HANDLE (0x00000002)
6880#define OPLOCK_LEVEL_CACHE_WRITE (0x00000004)
6881
6882#define REQUEST_OPLOCK_INPUT_FLAG_REQUEST (0x00000001)
6883#define REQUEST_OPLOCK_INPUT_FLAG_ACK (0x00000002)
6884#define REQUEST_OPLOCK_INPUT_FLAG_COMPLETE_ACK_ON_CLOSE (0x00000004)
6885
6886#define REQUEST_OPLOCK_CURRENT_VERSION 1
6887
6888typedef struct _REQUEST_OPLOCK_INPUT_BUFFER {
6889 USHORT StructureVersion;
6890 USHORT StructureLength;
6891 ULONG RequestedOplockLevel;
6892 ULONG Flags;
6893} REQUEST_OPLOCK_INPUT_BUFFER, *PREQUEST_OPLOCK_INPUT_BUFFER;
6894
6895#define REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED (0x00000001)
6896#define REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED (0x00000002)
6897
6898typedef struct _REQUEST_OPLOCK_OUTPUT_BUFFER {
6899 USHORT StructureVersion;
6900 USHORT StructureLength;
6901 ULONG OriginalOplockLevel;
6902 ULONG NewOplockLevel;
6903 ULONG Flags;
6905 USHORT ShareMode;
6906} REQUEST_OPLOCK_OUTPUT_BUFFER, *PREQUEST_OPLOCK_OUTPUT_BUFFER;
6907
6908#define SD_GLOBAL_CHANGE_TYPE_MACHINE_SID 1
6909
6910typedef struct _SD_CHANGE_MACHINE_SID_INPUT {
6911 USHORT CurrentMachineSIDOffset;
6912 USHORT CurrentMachineSIDLength;
6913 USHORT NewMachineSIDOffset;
6914 USHORT NewMachineSIDLength;
6915} SD_CHANGE_MACHINE_SID_INPUT, *PSD_CHANGE_MACHINE_SID_INPUT;
6916
6917typedef struct _SD_CHANGE_MACHINE_SID_OUTPUT {
6918 ULONGLONG NumSDChangedSuccess;
6919 ULONGLONG NumSDChangedFail;
6920 ULONGLONG NumSDUnused;
6921 ULONGLONG NumSDTotal;
6922 ULONGLONG NumMftSDChangedSuccess;
6923 ULONGLONG NumMftSDChangedFail;
6924 ULONGLONG NumMftSDTotal;
6925} SD_CHANGE_MACHINE_SID_OUTPUT, *PSD_CHANGE_MACHINE_SID_OUTPUT;
6926
6927typedef struct _SD_GLOBAL_CHANGE_INPUT {
6928 ULONG Flags;
6929 ULONG ChangeType;
6930 _ANONYMOUS_UNION union {
6931 SD_CHANGE_MACHINE_SID_INPUT SdChange;
6933} SD_GLOBAL_CHANGE_INPUT, *PSD_GLOBAL_CHANGE_INPUT;
6934
6935typedef struct _SD_GLOBAL_CHANGE_OUTPUT {
6936 ULONG Flags;
6937 ULONG ChangeType;
6938 _ANONYMOUS_UNION union {
6939 SD_CHANGE_MACHINE_SID_OUTPUT SdChange;
6941} SD_GLOBAL_CHANGE_OUTPUT, *PSD_GLOBAL_CHANGE_OUTPUT;
6942
6943#define ENCRYPTED_DATA_INFO_SPARSE_FILE 1
6944
6945typedef struct _EXTENDED_ENCRYPTED_DATA_INFO {
6947 ULONG Length;
6948 ULONG Flags;
6950} EXTENDED_ENCRYPTED_DATA_INFO, *PEXTENDED_ENCRYPTED_DATA_INFO;
6951
6952typedef struct _LOOKUP_STREAM_FROM_CLUSTER_INPUT {
6953 ULONG Flags;
6954 ULONG NumberOfClusters;
6955 LARGE_INTEGER Cluster[1];
6956} LOOKUP_STREAM_FROM_CLUSTER_INPUT, *PLOOKUP_STREAM_FROM_CLUSTER_INPUT;
6957
6958typedef struct _LOOKUP_STREAM_FROM_CLUSTER_OUTPUT {
6959 ULONG Offset;
6960 ULONG NumberOfMatches;
6961 ULONG BufferSizeRequired;
6962} LOOKUP_STREAM_FROM_CLUSTER_OUTPUT, *PLOOKUP_STREAM_FROM_CLUSTER_OUTPUT;
6963
6964#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_PAGE_FILE 0x00000001
6965#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_DENY_DEFRAG_SET 0x00000002
6966#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_FS_SYSTEM_FILE 0x00000004
6967#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_TXF_SYSTEM_FILE 0x00000008
6968
6969#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_MASK 0xff000000
6970#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_DATA 0x01000000
6971#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_INDEX 0x02000000
6972#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_SYSTEM 0x03000000
6973
6974typedef struct _LOOKUP_STREAM_FROM_CLUSTER_ENTRY {
6975 ULONG OffsetToNext;
6976 ULONG Flags;
6978 LARGE_INTEGER Cluster;
6979 WCHAR FileName[1];
6980} LOOKUP_STREAM_FROM_CLUSTER_ENTRY, *PLOOKUP_STREAM_FROM_CLUSTER_ENTRY;
6981
6982typedef struct _FILE_TYPE_NOTIFICATION_INPUT {
6983 ULONG Flags;
6984 ULONG NumFileTypeIDs;
6985 GUID FileTypeID[1];
6986} FILE_TYPE_NOTIFICATION_INPUT, *PFILE_TYPE_NOTIFICATION_INPUT;
6987
6988#define FILE_TYPE_NOTIFICATION_FLAG_USAGE_BEGIN 0x00000001
6989#define FILE_TYPE_NOTIFICATION_FLAG_USAGE_END 0x00000002
6990
6991DEFINE_GUID(FILE_TYPE_NOTIFICATION_GUID_PAGE_FILE, 0x0d0a64a1, 0x38fc, 0x4db8, 0x9f, 0xe7, 0x3f, 0x43, 0x52, 0xcd, 0x7c, 0x5c);
6992DEFINE_GUID(FILE_TYPE_NOTIFICATION_GUID_HIBERNATION_FILE, 0xb7624d64, 0xb9a3, 0x4cf8, 0x80, 0x11, 0x5b, 0x86, 0xc9, 0x40, 0xe7, 0xb7);
6993DEFINE_GUID(FILE_TYPE_NOTIFICATION_GUID_CRASHDUMP_FILE, 0x9d453eb7, 0xd2a6, 0x4dbd, 0xa2, 0xe3, 0xfb, 0xd0, 0xed, 0x91, 0x09, 0xa9);
6994
6995#ifndef _VIRTUAL_STORAGE_TYPE_DEFINED
6996#define _VIRTUAL_STORAGE_TYPE_DEFINED
6997typedef struct _VIRTUAL_STORAGE_TYPE {
6998 ULONG DeviceId;
6999 GUID VendorId;
7000} VIRTUAL_STORAGE_TYPE, *PVIRTUAL_STORAGE_TYPE;
7001#endif
7002
7003typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST {
7004 ULONG RequestLevel;
7005 ULONG RequestFlags;
7006} STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST, *PSTORAGE_QUERY_DEPENDENT_VOLUME_REQUEST;
7007
7008#define QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_HOST_VOLUMES 0x1
7009#define QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_GUEST_VOLUMES 0x2
7010
7011typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY {
7012 ULONG EntryLength;
7013 ULONG DependencyTypeFlags;
7014 ULONG ProviderSpecificFlags;
7015 VIRTUAL_STORAGE_TYPE VirtualStorageType;
7016} STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY, *PSTORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY;
7017
7018typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY {
7019 ULONG EntryLength;
7020 ULONG DependencyTypeFlags;
7021 ULONG ProviderSpecificFlags;
7022 VIRTUAL_STORAGE_TYPE VirtualStorageType;
7023 ULONG AncestorLevel;
7024 ULONG HostVolumeNameOffset;
7025 ULONG HostVolumeNameSize;
7026 ULONG DependentVolumeNameOffset;
7027 ULONG DependentVolumeNameSize;
7028 ULONG RelativePathOffset;
7029 ULONG RelativePathSize;
7030 ULONG DependentDeviceNameOffset;
7031 ULONG DependentDeviceNameSize;
7032} STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY, *PSTORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY;
7033
7034typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE {
7035 ULONG ResponseLevel;
7036 ULONG NumberEntries;
7037 _ANONYMOUS_UNION union {
7038 STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY Lev1Depends[0];
7039 STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY Lev2Depends[0];
7041} STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE, *PSTORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE;
7042
7043#endif /* (_WIN32_WINNT >= 0x0601) */
7044
7045typedef struct _FILESYSTEM_STATISTICS {
7048 ULONG SizeOfCompleteStructure;
7049 ULONG UserFileReads;
7050 ULONG UserFileReadBytes;
7051 ULONG UserDiskReads;
7052 ULONG UserFileWrites;
7053 ULONG UserFileWriteBytes;
7054 ULONG UserDiskWrites;
7055 ULONG MetaDataReads;
7056 ULONG MetaDataReadBytes;
7057 ULONG MetaDataDiskReads;
7058 ULONG MetaDataWrites;
7059 ULONG MetaDataWriteBytes;
7060 ULONG MetaDataDiskWrites;
7062
7063#define FILESYSTEM_STATISTICS_TYPE_NTFS 1
7064#define FILESYSTEM_STATISTICS_TYPE_FAT 2
7065#define FILESYSTEM_STATISTICS_TYPE_EXFAT 3
7066
7067typedef struct _FAT_STATISTICS {
7068 ULONG CreateHits;
7069 ULONG SuccessfulCreates;
7070 ULONG FailedCreates;
7071 ULONG NonCachedReads;
7072 ULONG NonCachedReadBytes;
7073 ULONG NonCachedWrites;
7074 ULONG NonCachedWriteBytes;
7075 ULONG NonCachedDiskReads;
7076 ULONG NonCachedDiskWrites;
7078
7079typedef struct _EXFAT_STATISTICS {
7080 ULONG CreateHits;
7081 ULONG SuccessfulCreates;
7082 ULONG FailedCreates;
7083 ULONG NonCachedReads;
7084 ULONG NonCachedReadBytes;
7085 ULONG NonCachedWrites;
7086 ULONG NonCachedWriteBytes;
7087 ULONG NonCachedDiskReads;
7088 ULONG NonCachedDiskWrites;
7090
7091typedef struct _NTFS_STATISTICS {
7092 ULONG LogFileFullExceptions;
7093 ULONG OtherExceptions;
7094 ULONG MftReads;
7095 ULONG MftReadBytes;
7096 ULONG MftWrites;
7097 ULONG MftWriteBytes;
7098 struct {
7099 USHORT Write;
7100 USHORT Create;
7101 USHORT SetInfo;
7102 USHORT Flush;
7103 } MftWritesUserLevel;
7104 USHORT MftWritesFlushForLogFileFull;
7105 USHORT MftWritesLazyWriter;
7106 USHORT MftWritesUserRequest;
7107 ULONG Mft2Writes;
7108 ULONG Mft2WriteBytes;
7109 struct {
7110 USHORT Write;
7111 USHORT Create;
7112 USHORT SetInfo;
7113 USHORT Flush;
7114 } Mft2WritesUserLevel;
7115 USHORT Mft2WritesFlushForLogFileFull;
7116 USHORT Mft2WritesLazyWriter;
7117 USHORT Mft2WritesUserRequest;
7118 ULONG RootIndexReads;
7119 ULONG RootIndexReadBytes;
7120 ULONG RootIndexWrites;
7121 ULONG RootIndexWriteBytes;
7122 ULONG BitmapReads;
7123 ULONG BitmapReadBytes;
7124 ULONG BitmapWrites;
7125 ULONG BitmapWriteBytes;
7126 USHORT BitmapWritesFlushForLogFileFull;
7127 USHORT BitmapWritesLazyWriter;
7128 USHORT BitmapWritesUserRequest;
7129 struct {
7130 USHORT Write;
7131 USHORT Create;
7132 USHORT SetInfo;
7133 } BitmapWritesUserLevel;
7134 ULONG MftBitmapReads;
7135 ULONG MftBitmapReadBytes;
7136 ULONG MftBitmapWrites;
7137 ULONG MftBitmapWriteBytes;
7138 USHORT MftBitmapWritesFlushForLogFileFull;
7139 USHORT MftBitmapWritesLazyWriter;
7140 USHORT MftBitmapWritesUserRequest;
7141 struct {
7142 USHORT Write;
7143 USHORT Create;
7144 USHORT SetInfo;
7145 USHORT Flush;
7146 } MftBitmapWritesUserLevel;
7147 ULONG UserIndexReads;
7148 ULONG UserIndexReadBytes;
7149 ULONG UserIndexWrites;
7150 ULONG UserIndexWriteBytes;
7151 ULONG LogFileReads;
7152 ULONG LogFileReadBytes;
7153 ULONG LogFileWrites;
7154 ULONG LogFileWriteBytes;
7155 struct {
7156 ULONG Calls;
7157 ULONG Clusters;
7158 ULONG Hints;
7159 ULONG RunsReturned;
7160 ULONG HintsHonored;
7161 ULONG HintsClusters;
7162 ULONG Cache;
7163 ULONG CacheClusters;
7164 ULONG CacheMiss;
7165 ULONG CacheMissClusters;
7168
7169#endif /* _FILESYSTEMFSCTL_ */
7170
7171#define SYMLINK_FLAG_RELATIVE 1
7172
7173typedef struct _REPARSE_DATA_BUFFER {
7174 ULONG ReparseTag;
7175 USHORT ReparseDataLength;
7177 _ANONYMOUS_UNION union {
7178 struct {
7179 USHORT SubstituteNameOffset;
7180 USHORT SubstituteNameLength;
7181 USHORT PrintNameOffset;
7182 USHORT PrintNameLength;
7183 ULONG Flags;
7184 WCHAR PathBuffer[1];
7185 } SymbolicLinkReparseBuffer;
7186 struct {
7187 USHORT SubstituteNameOffset;
7188 USHORT SubstituteNameLength;
7189 USHORT PrintNameOffset;
7190 USHORT PrintNameLength;
7191 WCHAR PathBuffer[1];
7192 } MountPointReparseBuffer;
7193 struct {
7194 UCHAR DataBuffer[1];
7195 } GenericReparseBuffer;
7198
7199#define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer)
7200
7206 struct {
7207 UCHAR DataBuffer[1];
7208 } GenericReparseBuffer;
7210
7211#define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer)
7212
7213#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE ( 16 * 1024 )
7214
7215/* Reserved reparse tags */
7216#define IO_REPARSE_TAG_RESERVED_ZERO (0)
7217#define IO_REPARSE_TAG_RESERVED_ONE (1)
7218#define IO_REPARSE_TAG_RESERVED_RANGE IO_REPARSE_TAG_RESERVED_ONE
7219
7220#define IsReparseTagMicrosoft(_tag) (((_tag) & 0x80000000))
7221#define IsReparseTagNameSurrogate(_tag) (((_tag) & 0x20000000))
7222
7223#define IO_REPARSE_TAG_VALID_VALUES (0xF000FFFF)
7224
7225#define IsReparseTagValid(tag) ( \
7226 !((tag) & ~IO_REPARSE_TAG_VALID_VALUES) && \
7227 ((tag) > IO_REPARSE_TAG_RESERVED_RANGE) \
7228 )
7229
7230/* MicroSoft reparse point tags */
7231#define IO_REPARSE_TAG_MOUNT_POINT (0xA0000003L)
7232#define IO_REPARSE_TAG_HSM (0xC0000004L)
7233#define IO_REPARSE_TAG_DRIVE_EXTENDER (0x80000005L)
7234#define IO_REPARSE_TAG_HSM2 (0x80000006L)
7235#define IO_REPARSE_TAG_SIS (0x80000007L)
7236#define IO_REPARSE_TAG_WIM (0x80000008L)
7237#define IO_REPARSE_TAG_CSV (0x80000009L)
7238#define IO_REPARSE_TAG_DFS (0x8000000AL)
7239#define IO_REPARSE_TAG_FILTER_MANAGER (0x8000000BL)
7240#define IO_REPARSE_TAG_SYMLINK (0xA000000CL)
7241#define IO_REPARSE_TAG_IIS_CACHE (0xA0000010L)
7242#define IO_REPARSE_TAG_DFSR (0x80000012L)
7243
7244#pragma pack(4)
7245typedef struct _REPARSE_INDEX_KEY {
7249#pragma pack()
7250
7251#define FSCTL_LMR_GET_LINK_TRACKING_INFORMATION CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM,58,METHOD_BUFFERED,FILE_ANY_ACCESS)
7252#define FSCTL_LMR_SET_LINK_TRACKING_INFORMATION CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM,59,METHOD_BUFFERED,FILE_ANY_ACCESS)
7253#define IOCTL_LMR_ARE_FILE_OBJECTS_ON_SAME_SERVER CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM,60,METHOD_BUFFERED,FILE_ANY_ACCESS)
7254
7255#define FSCTL_PIPE_ASSIGN_EVENT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
7256#define FSCTL_PIPE_DISCONNECT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
7257#define FSCTL_PIPE_LISTEN CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
7258#define FSCTL_PIPE_PEEK CTL_CODE(FILE_DEVICE_NAMED_PIPE, 3, METHOD_BUFFERED, FILE_READ_DATA)
7259#define FSCTL_PIPE_QUERY_EVENT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
7260#define FSCTL_PIPE_TRANSCEIVE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 5, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
7261#define FSCTL_PIPE_WAIT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
7262#define FSCTL_PIPE_IMPERSONATE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
7263#define FSCTL_PIPE_SET_CLIENT_PROCESS CTL_CODE(FILE_DEVICE_NAMED_PIPE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
7264#define FSCTL_PIPE_QUERY_CLIENT_PROCESS CTL_CODE(FILE_DEVICE_NAMED_PIPE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
7265#define FSCTL_PIPE_GET_PIPE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
7266#define FSCTL_PIPE_SET_PIPE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
7267#define FSCTL_PIPE_GET_CONNECTION_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
7268#define FSCTL_PIPE_SET_CONNECTION_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
7269#define FSCTL_PIPE_GET_HANDLE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
7270#define FSCTL_PIPE_SET_HANDLE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
7271#define FSCTL_PIPE_FLUSH CTL_CODE(FILE_DEVICE_NAMED_PIPE, 16, METHOD_BUFFERED, FILE_WRITE_DATA)
7272
7273#define FSCTL_PIPE_INTERNAL_READ CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2045, METHOD_BUFFERED, FILE_READ_DATA)
7274#define FSCTL_PIPE_INTERNAL_WRITE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2046, METHOD_BUFFERED, FILE_WRITE_DATA)
7275#define FSCTL_PIPE_INTERNAL_TRANSCEIVE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2047, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
7276#define FSCTL_PIPE_INTERNAL_READ_OVFLOW CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2048, METHOD_BUFFERED, FILE_READ_DATA)
7277
7278#define FILE_PIPE_READ_DATA 0x00000000
7279#define FILE_PIPE_WRITE_SPACE 0x00000001
7280
7285
7293
7294typedef struct _FILE_PIPE_PEEK_BUFFER {
7295 ULONG NamedPipeState;
7296 ULONG ReadDataAvailable;
7297 ULONG NumberOfMessages;
7298 ULONG MessageLength;
7299 CHAR Data[1];
7301
7302typedef struct _FILE_PIPE_WAIT_FOR_BUFFER {
7304 ULONG NameLength;
7305 BOOLEAN TimeoutSpecified;
7306 WCHAR Name[1];
7308
7310#if !defined(BUILD_WOW6432)
7313#else
7314 ULONGLONG ClientSession;
7315 ULONGLONG ClientProcess;
7316#endif
7318
7319#define FILE_PIPE_COMPUTER_NAME_LENGTH 15
7320
7322#if !defined(BUILD_WOW6432)
7325#else
7326 ULONGLONG ClientSession;
7327 ULONGLONG ClientProcess;
7328#endif
7330 WCHAR ClientComputerBuffer[FILE_PIPE_COMPUTER_NAME_LENGTH+1];
7332
7333#define FSCTL_MAILSLOT_PEEK CTL_CODE(FILE_DEVICE_MAILSLOT, 0, METHOD_NEITHER, FILE_READ_DATA)
7334
7339
7342 UCHAR VolumeId[16];
7344
7348 UCHAR TargetLinkTrackingInformationBuffer[1];
7350
7351#define IO_OPEN_PAGING_FILE 0x0002
7352#define IO_OPEN_TARGET_DIRECTORY 0x0004
7353#define IO_STOP_ON_SYMLINK 0x0008
7354#define IO_MM_PAGING_FILE 0x0010
7355
7356_Function_class_(DRIVER_FS_NOTIFICATION)
7357typedef VOID
7358(NTAPI DRIVER_FS_NOTIFICATION)(
7361typedef DRIVER_FS_NOTIFICATION *PDRIVER_FS_NOTIFICATION;
7362
7367
7372
7374 struct {
7377 } AcquireForModifiedPageWriter;
7378 struct {
7380 } ReleaseForModifiedPageWriter;
7381 struct {
7384 } AcquireForSectionSynchronization;
7385 struct {
7388 } NotifyStreamFileObject;
7389 struct {
7395 } Others;
7397
7398#define FS_FILTER_ACQUIRE_FOR_SECTION_SYNCHRONIZATION (UCHAR)-1
7399#define FS_FILTER_RELEASE_FOR_SECTION_SYNCHRONIZATION (UCHAR)-2
7400#define FS_FILTER_ACQUIRE_FOR_MOD_WRITE (UCHAR)-3
7401#define FS_FILTER_RELEASE_FOR_MOD_WRITE (UCHAR)-4
7402#define FS_FILTER_ACQUIRE_FOR_CC_FLUSH (UCHAR)-5
7403#define FS_FILTER_RELEASE_FOR_CC_FLUSH (UCHAR)-6
7404
7410 struct _FILE_OBJECT *FileObject;
7413
7418
7419typedef VOID
7424
7425typedef struct _FS_FILTER_CALLBACKS {
7441
7449
7450#define IO_FILE_OBJECT_NON_PAGED_POOL_CHARGE 64
7451#define IO_FILE_OBJECT_PAGED_POOL_CHARGE 1024
7452
7453#if (NTDDI_VERSION >= NTDDI_VISTA)
7454typedef struct _IO_PRIORITY_INFO {
7460#endif
7462
7463$if (_WDMDDK_)
7464
7465#define D3COLD_SUPPORT_INTERFACE_VERSION 1
7466
7467typedef
7468_Function_class_(SET_D3COLD_SUPPORT)
7470VOID
7471SET_D3COLD_SUPPORT(
7472 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7474
7475typedef SET_D3COLD_SUPPORT *PSET_D3COLD_SUPPORT;
7476
7478{
7487
7491 _In_ DEVICE_WAKE_DEPTH WakeDepth)
7492{
7494 {
7501 };
7502
7503 if (WakeDepth < 0 || WakeDepth >= DeviceWakeDepthMaximum)
7504 {
7506 }
7507 else
7508 {
7509 return dstateMap[WakeDepth];
7510 }
7511}
7512
7513typedef
7514_Function_class_(GET_IDLE_WAKE_INFO)
7517GET_IDLE_WAKE_INFO(
7518 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7521
7522typedef GET_IDLE_WAKE_INFO *PGET_IDLE_WAKE_INFO;
7523
7524typedef
7525_Function_class_(GET_D3COLD_CAPABILITY)
7528GET_D3COLD_CAPABILITY(
7529 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7531
7532typedef GET_D3COLD_CAPABILITY *PGET_D3COLD_CAPABILITY;
7533
7535{
7540
7541typedef
7542_Function_class_(GET_D3COLD_LAST_TRANSITION_STATUS)
7544VOID
7545GET_D3COLD_LAST_TRANSITION_STATUS(
7546 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7548
7549typedef GET_D3COLD_LAST_TRANSITION_STATUS *PGET_D3COLD_LAST_TRANSITION_STATUS;
7550
7552{
7564
7565typedef
7566_Function_class_(D3COLD_REQUEST_CORE_POWER_RAIL)
7568VOID
7569D3COLD_REQUEST_CORE_POWER_RAIL(
7570 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7572
7573typedef D3COLD_REQUEST_CORE_POWER_RAIL *PD3COLD_REQUEST_CORE_POWER_RAIL;
7574
7575typedef
7576_Function_class_(D3COLD_REQUEST_AUX_POWER)
7579D3COLD_REQUEST_AUX_POWER(
7580 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7583
7584typedef D3COLD_REQUEST_AUX_POWER *PD3COLD_REQUEST_AUX_POWER;
7585
7586typedef
7587_Function_class_(D3COLD_REQUEST_PERST_DELAY)
7590D3COLD_REQUEST_PERST_DELAY(
7591 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7593
7594typedef D3COLD_REQUEST_PERST_DELAY *PD3COLD_REQUEST_PERST_DELAY;
7595
7597{
struct _IO_STACK_LOCATION * PIO_STACK_LOCATION
struct _IRP * PIRP
struct _IO_STACK_LOCATION IO_STACK_LOCATION
struct _IRP IRP
static UCHAR NotificationContext
static const ENTRY Entries[]
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
struct _IO_RESOURCE_DESCRIPTOR * PIO_RESOURCE_DESCRIPTOR
enum _IRQ_DEVICE_POLICY IRQ_DEVICE_POLICY
struct _IO_RESOURCE_LIST * PIO_RESOURCE_LIST
struct _IO_RESOURCE_LIST IO_RESOURCE_LIST
enum _IRQ_PRIORITY IRQ_PRIORITY
struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR
_IRQ_DEVICE_POLICY
Definition: edit.c:41
@ IrqPolicyOneCloseProcessor
Definition: edit.c:44
@ IrqPolicyAllCloseProcessors
Definition: edit.c:43
@ IrqPolicyAllProcessorsInMachine
Definition: edit.c:45
@ IrqPolicySpreadMessagesAcrossAllProcessors
Definition: edit.c:47
@ IrqPolicyMachineDefault
Definition: edit.c:42
@ IrqPolicySpecifiedProcessors
Definition: edit.c:46
struct _IO_RESOURCE_REQUIREMENTS_LIST * PIO_RESOURCE_REQUIREMENTS_LIST
struct _IO_RESOURCE_REQUIREMENTS_LIST IO_RESOURCE_REQUIREMENTS_LIST
_IRQ_PRIORITY
Definition: edit.c:52
WCHAR FileNameBuffer[MAX_PATH]
Definition: framewnd.c:233
@ 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:293
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
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 DEVICE_TYPE
Definition: guid.c:10
#define NTSTATUS
Definition: precomp.h:21
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:4147
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:2665
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN BOOLEAN ExclusiveLock
Definition: fatprocs.h:2714
IN OUT PVCB IN PDEVICE_OBJECT IN PVPB Vpb
Definition: fatprocs.h:1675
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN CheckForReadOperation
Definition: fatprocs.h:2666
IN PDCB IN POEM_STRING IN PUNICODE_STRING IN OUT POEM_STRING ShortName
Definition: fatprocs.h:1306
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN FailImmediately
Definition: fatprocs.h:2713
@ Flush
Definition: fatprocs.h:1054
IN PDCB IN PCCB IN VBO IN OUT PULONG OUT PDIRENT OUT PBCB OUT PVBO ByteOffset
Definition: fatprocs.h:731
IN PFCB IN PFILE_OBJECT FileObject IN ULONG AllocationSize
Definition: fatprocs.h:322
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2711
struct _FileName FileName
Definition: fatprocs.h:896
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 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
#define _Function_class_(x)
Definition: ms_sal.h:2946
#define _Out_opt_
Definition: ms_sal.h:346
#define _In_reads_bytes_(size)
Definition: ms_sal.h:321
#define _Inout_
Definition: ms_sal.h:378
#define _Out_writes_bytes_(size)
Definition: ms_sal.h:350
#define _Struct_size_bytes_(size)
Definition: ms_sal.h:591
#define _Outptr_
Definition: ms_sal.h:427
#define _Out_writes_(size)
Definition: ms_sal.h:348
#define _At_(target, annos)
Definition: ms_sal.h:244
#define _Inout_opt_
Definition: ms_sal.h:379
#define _Must_inspect_result_
Definition: ms_sal.h:558
#define _Inout_updates_bytes_(size)
Definition: ms_sal.h:399
#define _Out_
Definition: ms_sal.h:345
#define _In_reads_opt_(size)
Definition: ms_sal.h:320
#define _When_(expr, annos)
Definition: ms_sal.h:254
#define _Field_range_(min, max)
Definition: ms_sal.h:609
#define _In_
Definition: ms_sal.h:308
#define _In_reads_bytes_opt_(size)
Definition: ms_sal.h:322
#define _In_opt_
Definition: ms_sal.h:309
#define _Out_writes_bytes_opt_(size)
Definition: ms_sal.h:351
__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:1646
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
Definition: rtlfuncs.h:1133
_In_ ULONG Revision
Definition: rtlfuncs.h:1130
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)
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:388
void *POINTER_64 PVOID64
Definition: ntbasedef.h:323
_NullNull_terminated_ WCHAR * PZZWSTR
Definition: ntbasedef.h:420
#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
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 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:103
struct NTFS_VOLUME_DATA_BUFFER * PNTFS_VOLUME_DATA_BUFFER
struct _FAT_STATISTICS * PFAT_STATISTICS
struct VOLUME_BITMAP_BUFFER * PVOLUME_BITMAP_BUFFER
struct NTFS_EXTENDED_VOLUME_DATA * PNTFS_EXTENDED_VOLUME_DATA
struct RETRIEVAL_POINTERS_BUFFER * PRETRIEVAL_POINTERS_BUFFER
struct STARTING_VCN_INPUT_BUFFER * PSTARTING_VCN_INPUT_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 STARTING_LCN_INPUT_BUFFER * PSTARTING_LCN_INPUT_BUFFER
struct _NTFS_STATISTICS NTFS_STATISTICS
struct _FAT_STATISTICS FAT_STATISTICS
struct MOVE_FILE_DATA * PMOVE_FILE_DATA
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
_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
_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 _BUS_DATA_TYPE BUS_DATA_TYPE
enum _DMA_SPEED DMA_SPEED
struct _INTERFACE * PINTERFACE
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
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
#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:4775
PCI_AGP_ISOCH_COMMAND IsochCommand
Definition: iotypes.h:4780
PCI_AGP_APERTURE_PAGE_SIZE AperturePageSize
Definition: iotypes.h:4777
PCI_AGP_ISOCH_STATUS IsochStatus
Definition: iotypes.h:4774
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:4520
PGET_SET_DEVICE_DATA GetBusData
Definition: iotypes.h:4523
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4521
PGET_SET_DEVICE_DATA SetBusData
Definition: iotypes.h:4522
_In_ PDEVICE_OBJECT ReserveDevice
Definition: iotypes.h:4597
_Inout_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4578
PDEVICE_OBJECT OwningObject
Definition: iotypes.h:4560
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4658
PARBITER_HANDLER ArbiterHandler
Definition: iotypes.h:4660
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4659
Definition: iotypes.h:4630
ULONG BusNumber
Definition: iotypes.h:4640
ARBITER_RESULT Result
Definition: iotypes.h:4643
PIO_RESOURCE_DESCRIPTOR SelectedAlternative
Definition: iotypes.h:4642
LONG_PTR WorkSpace
Definition: iotypes.h:4637
ULONG AlternativeCount
Definition: iotypes.h:4632
PDEVICE_OBJECT PhysicalDeviceObject
Definition: iotypes.h:4634
ULONG Flags
Definition: iotypes.h:4636
PIO_RESOURCE_DESCRIPTOR Alternatives
Definition: iotypes.h:4633
LIST_ENTRY ListEntry
Definition: iotypes.h:4631
ARBITER_REQUEST_SOURCE RequestSource
Definition: iotypes.h:4635
ULONG SlotNumber
Definition: iotypes.h:4639
INTERFACE_TYPE InterfaceType
Definition: iotypes.h:4638
PCM_PARTIAL_RESOURCE_DESCRIPTOR Assignment
Definition: iotypes.h:4641
ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict
Definition: iotypes.h:4606
ARBITER_ADD_RESERVED_PARAMETERS AddReserved
Definition: iotypes.h:4608
ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation
Definition: iotypes.h:4602
ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation
Definition: iotypes.h:4604
ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation
Definition: iotypes.h:4603
ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources
Definition: iotypes.h:4605
ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate
Definition: iotypes.h:4607
_Out_ PCM_PARTIAL_RESOURCE_LIST * AllocatedResources
Definition: iotypes.h:4582
_In_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4593
_In_ PDEVICE_OBJECT PhysicalDeviceObject
Definition: iotypes.h:4586
_In_ PIO_RESOURCE_DESCRIPTOR ConflictingResource
Definition: iotypes.h:4587
_Out_ PARBITER_CONFLICT_INFO * Conflicts
Definition: iotypes.h:4589
_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom
Definition: iotypes.h:4574
_Inout_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4572
_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom
Definition: iotypes.h:4568
_Inout_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4566
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:4482
BOOLEAN AtDiskSecondaryAddressClaimed
Definition: iotypes.h:4483
KDEVICE_QUEUE DeviceWaitQueue
Definition: iotypes.h:4464
LARGE_INTEGER Spare2
Definition: iotypes.h:4466
PVOID ControllerExtension
Definition: iotypes.h:4463
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:7601
PD3COLD_REQUEST_CORE_POWER_RAIL RequestCorePowerRail
Definition: iotypes.h:7603
PD3COLD_REQUEST_AUX_POWER RequestAuxPower
Definition: iotypes.h:7604
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:7602
PD3COLD_REQUEST_PERST_DELAY RequestPerstDelay
Definition: iotypes.h:7605
PGET_D3COLD_CAPABILITY GetBusDriverD3ColdSupport
Definition: iotypes.h:7561
PSET_D3COLD_SUPPORT SetD3ColdSupport
Definition: iotypes.h:7558
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:7557
PGET_D3COLD_CAPABILITY GetD3ColdCapability
Definition: iotypes.h:7560
PGET_D3COLD_LAST_TRANSITION_STATUS GetLastTransitionStatus
Definition: iotypes.h:7562
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:7556
PGET_IDLE_WAKE_INFO GetIdleWakeInfo
Definition: iotypes.h:7559
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:4493
ULONG PartitionStyle
Definition: iotypes.h:4489
ULONG Signature
Definition: iotypes.h:4492
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:5849
LARGE_INTEGER FreeSpaceStopFiltering
Definition: iotypes.h:6037
LARGE_INTEGER FreeSpaceStartFiltering
Definition: iotypes.h:6035
LARGE_INTEGER DefaultQuotaLimit
Definition: iotypes.h:6039
LARGE_INTEGER DefaultQuotaThreshold
Definition: iotypes.h:6038
LARGE_INTEGER FreeSpaceThreshold
Definition: iotypes.h:6036
LARGE_INTEGER ChangeTime
Definition: iotypes.h:5707
LARGE_INTEGER EndOfFile
Definition: iotypes.h:5708
LARGE_INTEGER CreationTime
Definition: iotypes.h:5704
LARGE_INTEGER AllocationSize
Definition: iotypes.h:5709
LARGE_INTEGER LastAccessTime
Definition: iotypes.h:5705
LARGE_INTEGER LastWriteTime
Definition: iotypes.h:5706
LARGE_INTEGER LastWriteTime
Definition: iotypes.h:5754
LARGE_INTEGER LastAccessTime
Definition: iotypes.h:5753
LARGE_INTEGER AllocationSize
Definition: iotypes.h:5757
LARGE_INTEGER CreationTime
Definition: iotypes.h:5752
LARGE_INTEGER LastAccessTime
Definition: iotypes.h:5720
LARGE_INTEGER AllocationSize
Definition: iotypes.h:5724
LARGE_INTEGER CreationTime
Definition: iotypes.h:5719
LARGE_INTEGER LastWriteTime
Definition: iotypes.h:5721
Definition: iotypes.h:5937
ULONG NextEntryOffset
Definition: iotypes.h:5938
ULONG FileNameLength
Definition: iotypes.h:5940
LONGLONG ParentFileId
Definition: iotypes.h:5939
PLARGE_INTEGER ReadTimeout
Definition: iotypes.h:5929
LARGE_INTEGER CollectDataTime
Definition: iotypes.h:5916
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForModifiedPageWriter
Definition: iotypes.h:7437
PFS_FILTER_CALLBACK PreAcquireForCcFlush
Definition: iotypes.h:7432
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForCcFlush
Definition: iotypes.h:7433
ULONG SizeOfFsFilterCallbacks
Definition: iotypes.h:7426
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForCcFlush
Definition: iotypes.h:7435
PFS_FILTER_CALLBACK PreReleaseForModifiedPageWriter
Definition: iotypes.h:7438
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForSectionSynchronization
Definition: iotypes.h:7429
PFS_FILTER_CALLBACK PreAcquireForSectionSynchronization
Definition: iotypes.h:7428
PFS_FILTER_CALLBACK PreReleaseForCcFlush
Definition: iotypes.h:7434
PFS_FILTER_CALLBACK PreAcquireForModifiedPageWriter
Definition: iotypes.h:7436
PFS_FILTER_CALLBACK PreReleaseForSectionSynchronization
Definition: iotypes.h:7430
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForSectionSynchronization
Definition: iotypes.h:7431
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForModifiedPageWriter
Definition: iotypes.h:7439
FS_FILTER_PARAMETERS Parameters
Definition: iotypes.h:7411
struct _DEVICE_OBJECT * DeviceObject
Definition: iotypes.h:7409
ULONG SizeOfFsFilterCallbackData
Definition: iotypes.h:7406
struct _FILE_OBJECT * FileObject
Definition: iotypes.h:7410
Definition: scsiwmi.h:51
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5501
PGET_INTERRUPT_ROUTING GetInterruptRouting
Definition: iotypes.h:5502
PUPDATE_INTERRUPT_LINE UpdateInterruptLine
Definition: iotypes.h:5504
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5500
PSET_INTERRUPT_ROUTING_TOKEN SetInterruptRoutingToken
Definition: iotypes.h:5503
_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:4513
struct _ECP_LIST * ExtraCreateParameter
Definition: iotypes.h:4511
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:7458
ULONG ThreadPriority
Definition: iotypes.h:7456
ULONG PagePriority
Definition: iotypes.h:7457
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
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:5512
PLEGACY_DEVICE_DETECTION_HANDLER LegacyDeviceDetection
Definition: iotypes.h:5513
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5511
Definition: typedefs.h:120
ACCESS_MASK GrantedAccess
Definition: iotypes.h:181
ULONG PathNameLength
Definition: iotypes.h:6229
PciReadWriteConfig WriteConfig
Definition: iotypes.h:5282
PciLine2Pin Line2Pin
Definition: iotypes.h:5284
ULONG Tag
Definition: iotypes.h:5279
PciReadWriteConfig ReadConfig
Definition: iotypes.h:5281
PCI_SLOT_NUMBER ParentSlot
Definition: iotypes.h:5285
ULONG Version
Definition: iotypes.h:5280
PciPin2Line Pin2Line
Definition: iotypes.h:5283
ULONG AdditionalUncorrectableError
Definition: iotypes.h:4847
USHORT SplitCompletionOverrun
Definition: iotypes.h:4810
USHORT DownstreamSplitTransactionCapacity
Definition: iotypes.h:4840
USHORT SplitCompletionDiscarded
Definition: iotypes.h:4808
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:4803
ULONG SplitCompletionDiscarded
Definition: iotypes.h:4827
USHORT UpstreamSplitTransactionLimit
Definition: iotypes.h:4839
ULONG SelectSecondaryRegisters
Definition: iotypes.h:4844
ULONG UnexpectedSplitCompletion
Definition: iotypes.h:4828
USHORT UnexpectedSplitCompletion
Definition: iotypes.h:4809
ULONG AdditionalCorrectableError
Definition: iotypes.h:4846
ULONG DisableSingleBitCorrection
Definition: iotypes.h:4856
USHORT DownstreamSplitTransactionLimit
Definition: iotypes.h:4841
USHORT UpstreamSplitTransactionCapacity
Definition: iotypes.h:4838
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:4698
ULONG GTLB_Enable
Definition: iotypes.h:4755
ULONG CAL_Disable
Definition: iotypes.h:4757
PCI_LINE_TO_PIN LineToPin
Definition: iotypes.h:5331
PCI_PIN_TO_LINE PinToLine
Definition: iotypes.h:5330
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5327
PCI_ROOT_BUS_CAPABILITY RootBusCapability
Definition: iotypes.h:5332
PCI_EXPRESS_WAKE_CONTROL ExpressWakeControl
Definition: iotypes.h:5333
PCI_READ_WRITE_CONFIG ReadConfig
Definition: iotypes.h:5328
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5326
PCI_READ_WRITE_CONFIG WriteConfig
Definition: iotypes.h:5329
PCARDBUSDELETE DeleteCardBus
Definition: iotypes.h:5563
PCARDBUSPCIDISPATCH DispatchPnp
Definition: iotypes.h:5564
PDRIVER_OBJECT DriverObject
Definition: iotypes.h:5561
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5559
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5560
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:5135
PCI_EXPRESS_LINK_CONTROL_REGISTER LinkControl
Definition: iotypes.h:5131
PCI_EXPRESS_DEVICE_STATUS_REGISTER DeviceStatus
Definition: iotypes.h:5129
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:5125
PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER RootCapabilities
Definition: iotypes.h:5137
PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER DeviceCapabilities
Definition: iotypes.h:5127
PCI_EXPRESS_ROOT_CONTROL_REGISTER RootControl
Definition: iotypes.h:5136
PCI_EXPRESS_LINK_CAPABILITIES_REGISTER LinkCapabilities
Definition: iotypes.h:5130
PCI_EXPRESS_ROOT_STATUS_REGISTER RootStatus
Definition: iotypes.h:5138
PCI_EXPRESS_CAPABILITIES_REGISTER ExpressCapabilities
Definition: iotypes.h:5126
PCI_EXPRESS_SLOT_CONTROL_REGISTER SlotControl
Definition: iotypes.h:5134
PCI_EXPRESS_LINK_STATUS_REGISTER LinkStatus
Definition: iotypes.h:5132
PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER SlotCapabilities
Definition: iotypes.h:5133
PCI_EXPRESS_DEVICE_CONTROL_REGISTER DeviceControl
Definition: iotypes.h:5128
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:4293
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4292
PPCI_EXPRESS_ROOT_PORT_WRITE_CONFIG_SPACE WriteConfigSpace
Definition: iotypes.h:4294
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4291
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:4340
PPCI_MSIX_MASKUNMASK_ENTRY UnmaskTableEntry
Definition: iotypes.h:4338
PPCI_MSIX_SET_ENTRY SetTableEntry
Definition: iotypes.h:4336
PPCI_MSIX_MASKUNMASK_ENTRY MaskTableEntry
Definition: iotypes.h:4337
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4335
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4334
PPCI_MSIX_GET_ENTRY GetTableEntry
Definition: iotypes.h:4339
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:5573
PPME_CLEAR_PME_STATUS ClearPmeStatus
Definition: iotypes.h:5574
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5572
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5571
PPME_SET_PME_ENABLE UpdateEnable
Definition: iotypes.h:5575
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:4930
PCI_ROOT_BUS_OSC_CONTROL_FIELD OscControlRequest
Definition: iotypes.h:4931
PCI_HARDWARE_INTERFACE SecondaryInterface
Definition: iotypes.h:4922
PCI_ROOT_BUS_OSC_CONTROL_FIELD OscControlGranted
Definition: iotypes.h:4932
ULONG FunctionNumber
Definition: iotypes.h:3493
ULONG DeviceNumber
Definition: iotypes.h:3492
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:4867
PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE Type
Definition: iotypes.h:5235
PGET_LOCATION_STRING GetLocationString
Definition: iotypes.h:4543
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4541
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4542
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:7246
LARGE_INTEGER FileId
Definition: iotypes.h:7247
PVOID LinkNode
Definition: iotypes.h:5468
ULONG StaticVector
Definition: iotypes.h:5469
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:4691
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4692
PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER TranslateResourceRequirements
Definition: iotypes.h:4694
PTRANSLATE_RESOURCE_HANDLER TranslateResources
Definition: iotypes.h:4693
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:5432
FS_FILTER_SECTION_SYNC_TYPE SyncType
Definition: iotypes.h:7382
BOOLEAN POINTER_ALIGNMENT SafeToRecurse
Definition: iotypes.h:7387
PLARGE_INTEGER EndingOffset
Definition: iotypes.h:7375
FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType
Definition: iotypes.h:7386
PERESOURCE ResourceToRelease
Definition: iotypes.h:7379
PERESOURCE * ResourceToRelease
Definition: iotypes.h:7376
ULONG VFMigrationInterruptNumber
Definition: iotypes.h:4049
static BOOL Write(PBYTE Address, PBYTE Data, SIZE_T Size)
Definition: vmhorizon.c:15
_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 InterfaceType
Definition: wdffdo.h:463
_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:3764
#define CreateMailslot
Definition: winbase.h:3755
_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:4321
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:7584
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:7368
@ NotifyTypeRetired
Definition: iotypes.h:7370
@ NotifyTypeCreate
Definition: iotypes.h:7369
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:5545
struct _PCI_EXPRESS_ROOTPORT_AER_CAPABILITY PCI_EXPRESS_ROOTPORT_AER_CAPABILITY
_PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE
Definition: iotypes.h:5226
@ ResourceTypeMax
Definition: iotypes.h:5231
@ ResourceTypeRange
Definition: iotypes.h:5228
@ ResourceTypeSingle
Definition: iotypes.h:5227
@ ResourceTypeOverflow
Definition: iotypes.h:5230
@ ResourceTypeExtendedCounterConfiguration
Definition: iotypes.h:5229
_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:5196
@ PciXToExpressBridge
Definition: iotypes.h:5203
@ PciExpressToPciXBridge
Definition: iotypes.h:5202
@ PciExpressUpstreamSwitchPort
Definition: iotypes.h:5200
@ PciExpressDownstreamSwitchPort
Definition: iotypes.h:5201
@ PciExpressRootPort
Definition: iotypes.h:5199
@ PciExpressRootComplexIntegratedEndpoint
Definition: iotypes.h:5204
@ PciExpressRootComplexEventCollector
Definition: iotypes.h:5205
@ PciExpressLegacyEndpoint
Definition: iotypes.h:5198
@ PciExpressEndpoint
Definition: iotypes.h:5197
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:5174
@ L0s_Below64ns
Definition: iotypes.h:5175
@ L0s_1us_2us
Definition: iotypes.h:5180
@ L0s_256ns_512ns
Definition: iotypes.h:5178
@ L0s_64ns_128ns
Definition: iotypes.h:5176
@ L0s_2us_4us
Definition: iotypes.h:5181
@ L0s_Above4us
Definition: iotypes.h:5182
@ L0s_128ns_256ns
Definition: iotypes.h:5177
@ L0s_512ns_1us
Definition: iotypes.h:5179
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:4680
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:7360
PCI_EXPRESS_MRL_STATE
Definition: iotypes.h:5141
@ MRLOpen
Definition: iotypes.h:5143
@ MRLClosed
Definition: iotypes.h:5142
_In_ ULONG AuxPowerInMilliWatts
Definition: iotypes.h:7581
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:7319
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:4327
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:4664
@ TranslateChildToParent
Definition: iotypes.h:4665
@ TranslateParentToChild
Definition: iotypes.h:4666
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:7420
_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:7363
@ SyncTypeOther
Definition: iotypes.h:7364
@ SyncTypeCreateSection
Definition: iotypes.h:7365
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
* PIRQ_DEVICE_POLICY
Definition: iotypes.h:161
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:5293
struct _EISA_DMA_CONFIGURATION * PEISA_DMA_CONFIGURATION
VOID(NTAPI * PPME_SET_PME_ENABLE)(IN PDEVICE_OBJECT Pdo, IN BOOLEAN PmeEnable)
Definition: iotypes.h:5540
_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:5307
#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:4670
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:5535
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:5253
_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:4312
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:5487
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:5492
enum _IRQ_PRIORITY * PIRQ_PRIORITY
_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:4305
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:5151
@ IndicatorOff
Definition: iotypes.h:5154
@ IndicatorBlink
Definition: iotypes.h:5153
@ IndicatorOn
Definition: iotypes.h:5152
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 _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:4546
@ ArbiterActionQueryConflict
Definition: iotypes.h:4553
@ ArbiterActionQueryArbitrate
Definition: iotypes.h:4554
@ ArbiterActionBootAllocation
Definition: iotypes.h:4556
@ ArbiterActionWriteReservedResources
Definition: iotypes.h:4552
@ ArbiterActionAddReserved
Definition: iotypes.h:4555
@ ArbiterActionCommitAllocation
Definition: iotypes.h:4549
@ ArbiterActionRollbackAllocation
Definition: iotypes.h:4550
@ ArbiterActionRetestAllocation
Definition: iotypes.h:4548
@ ArbiterActionQueryAllocatedResources
Definition: iotypes.h:4551
@ ArbiterActionTestAllocation
Definition: iotypes.h:4547
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:4455
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:7571
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:5474
_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:4320
struct _CM_EISA_SLOT_INFORMATION * PCM_EISA_SLOT_INFORMATION
PCI_EXPRESS_L1_EXIT_LATENCY
Definition: iotypes.h:5185
@ L1_16us_32us
Definition: iotypes.h:5191
@ L1_Below1us
Definition: iotypes.h:5186
@ L1_8us_16us
Definition: iotypes.h:5190
@ L1_32us_64us
Definition: iotypes.h:5192
@ L1_4us_8us
Definition: iotypes.h:5189
@ L1_Above64us
Definition: iotypes.h:5193
@ L1_2us_4us
Definition: iotypes.h:5188
@ L1_1us_2us
Definition: iotypes.h:5187
struct _PCI_AGP_APERTURE_PAGE_SIZE PCI_AGP_APERTURE_PAGE_SIZE
_IO_QUERY_DEVICE_DATA_FORMAT
Definition: iotypes.h:4447
@ IoQueryDeviceComponentInformation
Definition: iotypes.h:4450
@ IoQueryDeviceMaxData
Definition: iotypes.h:4451
@ IoQueryDeviceConfigurationData
Definition: iotypes.h:4449
@ IoQueryDeviceIdentifier
Definition: iotypes.h:4448
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:5260
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:7335
@ NtfsLinkTrackingInformation
Definition: iotypes.h:7336
@ DfsLinkTrackingInformation
Definition: iotypes.h:7337
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:4303
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:5531
_ARBITER_REQUEST_SOURCE
Definition: iotypes.h:4612
@ ArbiterRequestHalReported
Definition: iotypes.h:4615
@ ArbiterRequestLegacyAssigned
Definition: iotypes.h:4616
@ ArbiterRequestPnpDetected
Definition: iotypes.h:4617
@ ArbiterRequestUndefined
Definition: iotypes.h:4613
@ ArbiterRequestLegacyReported
Definition: iotypes.h:4614
@ ArbiterRequestPnpEnumerated
Definition: iotypes.h:4618
_PCI_HARDWARE_INTERFACE
Definition: iotypes.h:4909
@ PciXMode2
Definition: iotypes.h:4912
@ PciConventional
Definition: iotypes.h:4910
@ PciXMode1
Definition: iotypes.h:4911
@ PciExpress
Definition: iotypes.h:4913
struct _PNP_LOCATION_INTERFACE PNP_LOCATION_INTERFACE
NTSTATUS(NTAPI * PFS_FILTER_CALLBACK)(_In_ PFS_FILTER_CALLBACK_DATA Data, _Out_ PVOID *CompletionContext)
Definition: iotypes.h:7415
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:7592
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:5268
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:5167
@ L0sEntryEnabled
Definition: iotypes.h:5169
@ L0sAndL1EntryEnabled
Definition: iotypes.h:5171
@ L0sAndL1EntryDisabled
Definition: iotypes.h:5168
@ L1EntryEnabled
Definition: iotypes.h:5170
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:5157
@ PowerOff
Definition: iotypes.h:5159
@ PowerOn
Definition: iotypes.h:5158
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:7475
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:4274
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:5208
@ MaxPayload128Bytes
Definition: iotypes.h:5209
@ MaxPayload2048Bytes
Definition: iotypes.h:5213
@ MaxPayload256Bytes
Definition: iotypes.h:5210
@ MaxPayload1024Bytes
Definition: iotypes.h:5212
@ MaxPayload512Bytes
Definition: iotypes.h:5211
@ MaxPayload4096Bytes
Definition: iotypes.h:5214
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:5460
enum _IRQ_PRIORITY IRQ_PRIORITY
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:7520
_EXTENDED_AGP_REGISTER
Definition: iotypes.h:4734
@ AperturePageSize
Definition: iotypes.h:4738
@ ApertureSize
Definition: iotypes.h:4737
@ AgpControl
Definition: iotypes.h:4736
@ GartHigh
Definition: iotypes.h:4740
@ IsochStatus
Definition: iotypes.h:4735
@ GartLow
Definition: iotypes.h:4739
@ IsochCommand
Definition: iotypes.h:4741
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:4328
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:7361
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:4916
@ BusWidth32Bits
Definition: iotypes.h:4917
@ BusWidth64Bits
Definition: iotypes.h:4918
PCI_EXPRESS_ASPM_SUPPORT
Definition: iotypes.h:5162
@ L0sEntrySupport
Definition: iotypes.h:5163
@ L0sAndL1EntrySupport
Definition: iotypes.h:5164
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:5313
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:7532
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:5318
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:5549
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:4252
_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:7535
@ LastDStateTransitionStatusUnknown
Definition: iotypes.h:7536
@ LastDStateTransitionD3hot
Definition: iotypes.h:7537
@ LastDStateTransitionD3cold
Definition: iotypes.h:7538
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:7478
@ DeviceWakeDepthD3cold
Definition: iotypes.h:7484
@ DeviceWakeDepthD1
Definition: iotypes.h:7481
@ DeviceWakeDepthD3hot
Definition: iotypes.h:7483
@ DeviceWakeDepthMaximum
Definition: iotypes.h:7485
@ DeviceWakeDepthD2
Definition: iotypes.h:7482
@ DeviceWakeDepthD0
Definition: iotypes.h:7480
@ DeviceWakeDepthNotWakeable
Definition: iotypes.h:7479
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:7549
D3COLD_REQUEST_CORE_POWER_RAIL * PD3COLD_REQUEST_CORE_POWER_RAIL
Definition: iotypes.h:7573
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:4647
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:7547
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:5146
@ CardPresent
Definition: iotypes.h:5148
@ SlotEmpty
Definition: iotypes.h:5147
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:5302
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:4281
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:7473
_In_ SYSTEM_POWER_STATE SystemPowerState
Definition: iotypes.h:7519
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:7582
_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:4259
enum _PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE
_Must_inspect_result_ typedef _In_ ULONG _In_ ULONG MessageNumber
Definition: iotypes.h:4304
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:7490
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:5526
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:4434
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:4621
@ ArbiterResultUndefined
Definition: iotypes.h:4622
@ ArbiterResultExternalConflict
Definition: iotypes.h:4624
@ ArbiterResultSuccess
Definition: iotypes.h:4623
@ ArbiterResultNullRequest
Definition: iotypes.h:4625
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:7530
struct _REPARSE_GUID_DATA_BUFFER REPARSE_GUID_DATA_BUFFER
enum _LINK_TRACKING_INFORMATION_TYPE LINK_TRACKING_INFORMATION_TYPE
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:7522
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 _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
IRQ_DEVICE_POLICY
Definition: iotypes.h:161
@ IrqPriorityUndefined
Definition: iotypes.h:166
@ IrqPriorityHigh
Definition: iotypes.h:169
@ IrqPriorityNormal
Definition: iotypes.h:168
@ IrqPriorityLow
Definition: iotypes.h:167
#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:7594
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