ReactOS 0.4.16-dev-1946-g52006dd
iotypes.h
Go to the documentation of this file.
2/******************************************************************************
3 * I/O Manager Types *
4 ******************************************************************************/
6
8
9#define STATUS_CONTINUE_COMPLETION STATUS_SUCCESS
10
11#define CONNECT_FULLY_SPECIFIED 0x1
12#define CONNECT_LINE_BASED 0x2
13#define CONNECT_MESSAGE_BASED 0x3
14#define CONNECT_FULLY_SPECIFIED_GROUP 0x4
15#define CONNECT_CURRENT_VERSION 0x4
16
17#define POOL_QUOTA_FAIL_INSTEAD_OF_RAISE 0x8
18#define POOL_RAISE_IF_ALLOCATION_FAILURE 0x10
19#define POOL_COLD_ALLOCATION 0x100
20#define POOL_NX_ALLOCATION 0x200
21#define POOL_ZERO_ALLOCATION 0x400
22
23#define IO_TYPE_ADAPTER 1
24#define IO_TYPE_CONTROLLER 2
25#define IO_TYPE_DEVICE 3
26#define IO_TYPE_DRIVER 4
27#define IO_TYPE_FILE 5
28#define IO_TYPE_IRP 6
29#define IO_TYPE_MASTER_ADAPTER 7
30#define IO_TYPE_OPEN_PACKET 8
31#define IO_TYPE_TIMER 9
32#define IO_TYPE_VPB 10
33#define IO_TYPE_ERROR_LOG 11
34#define IO_TYPE_ERROR_MESSAGE 12
35#define IO_TYPE_DEVICE_OBJECT_EXTENSION 13
36
37#define IO_TYPE_CSQ_IRP_CONTEXT 1
38#define IO_TYPE_CSQ 2
39#define IO_TYPE_CSQ_EX 3
40
41/* IO_RESOURCE_DESCRIPTOR.Option */
42#define IO_RESOURCE_PREFERRED 0x01
43#define IO_RESOURCE_DEFAULT 0x02
44#define IO_RESOURCE_ALTERNATIVE 0x08
45
48/* DEVICE_OBJECT.DeviceType */
49#define DEVICE_TYPE ULONG
50
51#define FILE_DEVICE_BEEP 0x00000001
52#define FILE_DEVICE_CD_ROM 0x00000002
53#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003
54#define FILE_DEVICE_CONTROLLER 0x00000004
55#define FILE_DEVICE_DATALINK 0x00000005
56#define FILE_DEVICE_DFS 0x00000006
57#define FILE_DEVICE_DISK 0x00000007
58#define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008
59#define FILE_DEVICE_FILE_SYSTEM 0x00000009
60#define FILE_DEVICE_INPORT_PORT 0x0000000a
61#define FILE_DEVICE_KEYBOARD 0x0000000b
62#define FILE_DEVICE_MAILSLOT 0x0000000c
63#define FILE_DEVICE_MIDI_IN 0x0000000d
64#define FILE_DEVICE_MIDI_OUT 0x0000000e
65#define FILE_DEVICE_MOUSE 0x0000000f
66#define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010
67#define FILE_DEVICE_NAMED_PIPE 0x00000011
68#define FILE_DEVICE_NETWORK 0x00000012
69#define FILE_DEVICE_NETWORK_BROWSER 0x00000013
70#define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014
71#define FILE_DEVICE_NULL 0x00000015
72#define FILE_DEVICE_PARALLEL_PORT 0x00000016
73#define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017
74#define FILE_DEVICE_PRINTER 0x00000018
75#define FILE_DEVICE_SCANNER 0x00000019
76#define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a
77#define FILE_DEVICE_SERIAL_PORT 0x0000001b
78#define FILE_DEVICE_SCREEN 0x0000001c
79#define FILE_DEVICE_SOUND 0x0000001d
80#define FILE_DEVICE_STREAMS 0x0000001e
81#define FILE_DEVICE_TAPE 0x0000001f
82#define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020
83#define FILE_DEVICE_TRANSPORT 0x00000021
84#define FILE_DEVICE_UNKNOWN 0x00000022
85#define FILE_DEVICE_VIDEO 0x00000023
86#define FILE_DEVICE_VIRTUAL_DISK 0x00000024
87#define FILE_DEVICE_WAVE_IN 0x00000025
88#define FILE_DEVICE_WAVE_OUT 0x00000026
89#define FILE_DEVICE_8042_PORT 0x00000027
90#define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028
91#define FILE_DEVICE_BATTERY 0x00000029
92#define FILE_DEVICE_BUS_EXTENDER 0x0000002a
93#define FILE_DEVICE_MODEM 0x0000002b
94#define FILE_DEVICE_VDM 0x0000002c
95#define FILE_DEVICE_MASS_STORAGE 0x0000002d
96#define FILE_DEVICE_SMB 0x0000002e
97#define FILE_DEVICE_KS 0x0000002f
98#define FILE_DEVICE_CHANGER 0x00000030
99#define FILE_DEVICE_SMARTCARD 0x00000031
100#define FILE_DEVICE_ACPI 0x00000032
101#define FILE_DEVICE_DVD 0x00000033
102#define FILE_DEVICE_FULLSCREEN_VIDEO 0x00000034
103#define FILE_DEVICE_DFS_FILE_SYSTEM 0x00000035
104#define FILE_DEVICE_DFS_VOLUME 0x00000036
105#define FILE_DEVICE_SERENUM 0x00000037
106#define FILE_DEVICE_TERMSRV 0x00000038
107#define FILE_DEVICE_KSEC 0x00000039
108#define FILE_DEVICE_FIPS 0x0000003a
109#define FILE_DEVICE_INFINIBAND 0x0000003b
110#define FILE_DEVICE_VMBUS 0x0000003e
111#define FILE_DEVICE_CRYPT_PROVIDER 0x0000003f
112#define FILE_DEVICE_WPD 0x00000040
113#define FILE_DEVICE_BLUETOOTH 0x00000041
114#define FILE_DEVICE_MT_COMPOSITE 0x00000042
115#define FILE_DEVICE_MT_TRANSPORT 0x00000043
116#define FILE_DEVICE_BIOMETRIC 0x00000044
117#define FILE_DEVICE_PMI 0x00000045
118#define FILE_DEVICE_EHSTOR 0x00000046
119#define FILE_DEVICE_DEVAPI 0x00000047
120#define FILE_DEVICE_GPIO 0x00000048
121#define FILE_DEVICE_USBEX 0x00000049
122#define FILE_DEVICE_CONSOLE 0x00000050
123#define FILE_DEVICE_NFP 0x00000051
124#define FILE_DEVICE_SYSENV 0x00000052
125#define FILE_DEVICE_VIRTUAL_BLOCK 0x00000053
126#define FILE_DEVICE_POINT_OF_SERVICE 0x00000054
127#define FILE_DEVICE_STORAGE_REPLICATION 0x00000055
128#define FILE_DEVICE_TRUST_ENV 0x00000056
129#define FILE_DEVICE_UCM 0x00000057
130#define FILE_DEVICE_UCMTCPCI 0x00000058
131#define FILE_DEVICE_PERSISTENT_MEMORY 0x00000059
132#define FILE_DEVICE_NVDIMM 0x0000005a
133#define FILE_DEVICE_HOLOGRAPHIC 0x0000005b
134#define FILE_DEVICE_SDFXHCI 0x0000005c
135#define FILE_DEVICE_UCMUCSI 0x0000005d
136
139#if defined(NT_PROCESSOR_GROUPS)
140
142
143enum _IRQ_DEVICE_POLICY_USHORT {
148 IrqPolicyAllProcessorsInGroup = 3,
151
152#else /* defined(NT_PROCESSOR_GROUPS) */
153
154typedef enum _IRQ_DEVICE_POLICY {
162
163#endif
164
165typedef enum _IRQ_PRIORITY {
171
172typedef enum _IRQ_GROUP_POLICY {
176
177#define MAXIMUM_VOLUME_LABEL_LENGTH (32 * sizeof(WCHAR))
178
183
184typedef struct _CLIENT_ID {
188
189typedef struct _VPB {
200
206
207_Function_class_(DRIVER_CONTROL)
210(NTAPI DRIVER_CONTROL)(
212 _Inout_ struct _IRP *Irp,
215typedef DRIVER_CONTROL *PDRIVER_CONTROL;
216
217typedef struct _WAIT_CONTEXT_BLOCK {
226
228$if (_NTDDK_)
229/* DEVICE_OBJECT.Flags */
230#define DO_DEVICE_HAS_NAME 0x00000040
231#define DO_SYSTEM_BOOT_PARTITION 0x00000100
232#define DO_LONG_TERM_REQUESTS 0x00000200
233#define DO_NEVER_LAST_DEVICE 0x00000400
234#define DO_LOW_PRIORITY_FILESYSTEM 0x00010000
235#define DO_SUPPORTS_TRANSACTIONS 0x00040000
236#define DO_FORCE_NEITHER_IO 0x00080000
237#define DO_VOLUME_DEVICE_OBJECT 0x00100000
238#define DO_SYSTEM_SYSTEM_PARTITION 0x00200000
239#define DO_SYSTEM_CRITICAL_PARTITION 0x00400000
240#define DO_DISALLOW_EXECUTE 0x00800000
241
244/* DEVICE_OBJECT.Flags */
245#define DO_UNLOAD_PENDING 0x00000001
246#define DO_VERIFY_VOLUME 0x00000002
247#define DO_BUFFERED_IO 0x00000004
248#define DO_EXCLUSIVE 0x00000008
249#define DO_DIRECT_IO 0x00000010
250#define DO_MAP_IO_BUFFER 0x00000020
251#define DO_DEVICE_INITIALIZING 0x00000080
252#define DO_SHUTDOWN_REGISTERED 0x00000800
253#define DO_BUS_ENUMERATED_DEVICE 0x00001000
254#define DO_POWER_PAGABLE 0x00002000
255#define DO_POWER_INRUSH 0x00004000
256
257/* DEVICE_OBJECT.Characteristics */
258#define FILE_REMOVABLE_MEDIA 0x00000001
259#define FILE_READ_ONLY_DEVICE 0x00000002
260#define FILE_FLOPPY_DISKETTE 0x00000004
261#define FILE_WRITE_ONCE_MEDIA 0x00000008
262#define FILE_REMOTE_DEVICE 0x00000010
263#define FILE_DEVICE_IS_MOUNTED 0x00000020
264#define FILE_VIRTUAL_VOLUME 0x00000040
265#define FILE_AUTOGENERATED_DEVICE_NAME 0x00000080
266#define FILE_DEVICE_SECURE_OPEN 0x00000100
267#define FILE_CHARACTERISTIC_PNP_DEVICE 0x00000800
268#define FILE_CHARACTERISTIC_TS_DEVICE 0x00001000
269#define FILE_CHARACTERISTIC_WEBDAV_DEVICE 0x00002000
270#define FILE_PORTABLE_DEVICE 0x00004000
271#define FILE_DEVICE_ALLOW_APPCONTAINER_TRAVERSAL 0x00020000
272
273/* DEVICE_OBJECT.AlignmentRequirement */
274#define FILE_BYTE_ALIGNMENT 0x00000000
275#define FILE_WORD_ALIGNMENT 0x00000001
276#define FILE_LONG_ALIGNMENT 0x00000003
277#define FILE_QUAD_ALIGNMENT 0x00000007
278#define FILE_OCTA_ALIGNMENT 0x0000000f
279#define FILE_32_BYTE_ALIGNMENT 0x0000001f
280#define FILE_64_BYTE_ALIGNMENT 0x0000003f
281#define FILE_128_BYTE_ALIGNMENT 0x0000007f
282#define FILE_256_BYTE_ALIGNMENT 0x000000ff
283#define FILE_512_BYTE_ALIGNMENT 0x000001ff
284
286
288typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _DEVICE_OBJECT {
289 CSHORT Type;
290 USHORT Size;
291 LONG ReferenceCount;
293 struct _DEVICE_OBJECT *NextDevice;
294 struct _DEVICE_OBJECT *AttachedDevice;
295 struct _IRP *CurrentIrp;
297 ULONG Flags;
298 ULONG Characteristics;
299 volatile PVPB Vpb;
300 PVOID DeviceExtension;
303 union {
304 LIST_ENTRY ListEntry;
306 } Queue;
308 KDEVICE_QUEUE DeviceQueue;
309 KDPC Dpc;
310 ULONG ActiveThreadCount;
312 KEVENT DeviceLock;
314 USHORT Spare1;
315 struct _DEVOBJ_EXTENSION *DeviceObjectExtension;
318
319typedef enum _IO_SESSION_STATE {
330
335
346
352
368
378
381 union {
385 } ConnectionContext;
393
396 _ANONYMOUS_UNION union {
402
405 union {
409 } ConnectionContext;
411
413{
415 union
416 {
420 } ConnectionContext;
422
423typedef enum _IO_ACCESS_TYPE {
428
429typedef enum _IO_ACCESS_MODE {
433
438
446
451
457
458#if (NTDDI_VERSION >= NTDDI_WIN7)
459
460typedef NTSTATUS
462 VOID);
463
464typedef NTSTATUS
465(NTAPI IO_SESSION_NOTIFICATION_FUNCTION)(
466 _In_ PVOID SessionObject,
472
473typedef IO_SESSION_NOTIFICATION_FUNCTION *PIO_SESSION_NOTIFICATION_FUNCTION;
474
475#endif
476
478
482 volatile LONG IoCount;
485
498
499typedef struct _IO_REMOVE_LOCK {
501#if DBG
503#endif
505
507
508_Function_class_(IO_WORKITEM_ROUTINE)
511typedef VOID
512(NTAPI IO_WORKITEM_ROUTINE)(
515typedef IO_WORKITEM_ROUTINE *PIO_WORKITEM_ROUTINE;
516
517typedef VOID
518(NTAPI IO_WORKITEM_ROUTINE_EX)(
522typedef IO_WORKITEM_ROUTINE_EX *PIO_WORKITEM_ROUTINE_EX;
523
524typedef struct _SHARE_ACCESS {
533
534typedef enum _CREATE_FILE_TYPE {
539
540#define IO_FORCE_ACCESS_CHECK 0x001
541#define IO_NO_PARAMETER_CHECKING 0x100
542
543#define IO_REPARSE 0x0
544#define IO_REMOUNT 0x1
545
546typedef struct _IO_STATUS_BLOCK {
547 _ANONYMOUS_UNION union {
549 PVOID Pointer;
553
554#if defined(_WIN64)
555typedef struct _IO_STATUS_BLOCK32 {
558} IO_STATUS_BLOCK32, *PIO_STATUS_BLOCK32;
559#endif
560
561typedef VOID
566
567#define PIO_APC_ROUTINE_DEFINED
568
569typedef enum _IO_SESSION_EVENT {
579
580#define IO_SESSION_STATE_ALL_EVENTS 0xffffffff
581#define IO_SESSION_STATE_CREATION_EVENT 0x00000001
582#define IO_SESSION_STATE_TERMINATION_EVENT 0x00000002
583#define IO_SESSION_STATE_CONNECT_EVENT 0x00000004
584#define IO_SESSION_STATE_DISCONNECT_EVENT 0x00000008
585#define IO_SESSION_STATE_LOGON_EVENT 0x00000010
586#define IO_SESSION_STATE_LOGOFF_EVENT 0x00000020
587
588#define IO_SESSION_STATE_VALID_EVENT_MASK 0x0000003f
589
590#define IO_SESSION_MAX_PAYLOAD_SIZE 256L
591
596
597#define EVENT_INCREMENT 1
598#define IO_NO_INCREMENT 0
599#define IO_CD_ROM_INCREMENT 1
600#define IO_DISK_INCREMENT 1
601#define IO_KEYBOARD_INCREMENT 6
602#define IO_MAILSLOT_INCREMENT 2
603#define IO_MOUSE_INCREMENT 6
604#define IO_NAMED_PIPE_INCREMENT 2
605#define IO_NETWORK_INCREMENT 2
606#define IO_PARALLEL_INCREMENT 1
607#define IO_SERIAL_INCREMENT 2
608#define IO_SOUND_INCREMENT 8
609#define IO_VIDEO_INCREMENT 1
610#define SEMAPHORE_INCREMENT 1
611
612#define MM_MAXIMUM_DISK_IO_SIZE (0x10000)
613
614typedef struct _BOOTDISK_INFORMATION {
620
631
632#if (NTDDI_VERSION >= NTDDI_WIN7)
633
637 _ANONYMOUS_UNION union {
643
648
649#else
650
651#if (NTDDI_VERSION >= NTDDI_VISTA)
652typedef struct _BOOTDISK_INFORMATION_LITE {
653 ULONG BootDeviceSignature;
654 ULONG SystemDeviceSignature;
655 GUID BootDeviceGuid;
656 GUID SystemDeviceGuid;
657 BOOLEAN BootDeviceIsGpt;
658 BOOLEAN SystemDeviceIsGpt;
660#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
661
662#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
663
664#include <pshpack1.h>
665
666typedef struct _EISA_MEMORY_TYPE {
675
683
684typedef struct _EISA_IRQ_DESCRIPTOR {
691
696
703
710
715
716typedef struct _EISA_PORT_DESCRIPTOR {
722
727
738
745 UCHAR Selections[26];
747 UCHAR TypeString[80];
754
755#include <poppack.h>
756
757/* CM_EISA_FUNCTION_INFORMATION.FunctionFlags */
758
759#define EISA_FUNCTION_ENABLED 0x80
760#define EISA_FREE_FORM_DATA 0x40
761#define EISA_HAS_PORT_INIT_ENTRY 0x20
762#define EISA_HAS_PORT_RANGE 0x10
763#define EISA_HAS_DMA_ENTRY 0x08
764#define EISA_HAS_IRQ_ENTRY 0x04
765#define EISA_HAS_MEMORY_ENTRY 0x02
766#define EISA_HAS_TYPE_ENTRY 0x01
767#define EISA_HAS_INFORMATION \
768 (EISA_HAS_PORT_RANGE + EISA_HAS_DMA_ENTRY + EISA_HAS_IRQ_ENTRY \
769 + EISA_HAS_MEMORY_ENTRY + EISA_HAS_TYPE_ENTRY)
770
771#define EISA_MORE_ENTRIES 0x80
772#define EISA_SYSTEM_MEMORY 0x00
773#define EISA_MEMORY_TYPE_RAM 0x01
774
775/* CM_EISA_SLOT_INFORMATION.ReturnCode */
776
777#define EISA_INVALID_SLOT 0x80
778#define EISA_INVALID_FUNCTION 0x81
779#define EISA_INVALID_CONFIGURATION 0x82
780#define EISA_EMPTY_SLOT 0x83
781#define EISA_INVALID_BIOS_CALL 0x86
782
783/*
784** Plug and Play structures
785*/
786
787typedef VOID
789 PVOID Context);
790
791typedef VOID
793 PVOID Context);
794
795_Function_class_(TRANSLATE_BUS_ADDRESS)
797typedef BOOLEAN
798(NTAPI TRANSLATE_BUS_ADDRESS)(
804typedef TRANSLATE_BUS_ADDRESS *PTRANSLATE_BUS_ADDRESS;
805
806_Function_class_(GET_DMA_ADAPTER)
808typedef struct _DMA_ADAPTER*
809(NTAPI GET_DMA_ADAPTER)(
813typedef GET_DMA_ADAPTER *PGET_DMA_ADAPTER;
814
815_Function_class_(GET_SET_DEVICE_DATA)
817typedef ULONG
818(NTAPI GET_SET_DEVICE_DATA)(
824typedef GET_SET_DEVICE_DATA *PGET_SET_DEVICE_DATA;
825
832
838
844
845typedef VOID
848
857
858typedef VOID
862
863#define PCI_DEVICE_PRESENT_INTERFACE_VERSION 1
864
865/* PCI_DEVICE_PRESENCE_PARAMETERS.Flags */
866#define PCI_USE_SUBSYSTEM_IDS 0x00000001
867#define PCI_USE_REVISION 0x00000002
868#define PCI_USE_VENDEV_IDS 0x00000004
869#define PCI_USE_CLASS_SUBCLASS 0x00000008
870#define PCI_USE_PROGIF 0x00000010
871#define PCI_USE_LOCAL_BUS 0x00000020
872#define PCI_USE_LOCAL_DEVICE 0x00000040
873
886
889typedef BOOLEAN
890(NTAPI PCI_IS_DEVICE_PRESENT)(
891 _In_ USHORT VendorID,
897typedef PCI_IS_DEVICE_PRESENT *PPCI_IS_DEVICE_PRESENT;
898
901typedef BOOLEAN
902(NTAPI PCI_IS_DEVICE_PRESENT_EX)(
905typedef PCI_IS_DEVICE_PRESENT_EX *PPCI_IS_DEVICE_PRESENT_EX;
906
918
928
930typedef struct _DEVICE_CAPABILITIES {
931 _Field_range_(==, sizeof(struct _DEVICE_CAPABILITIES)) USHORT Size;
933 ULONG DeviceD1:1;
934 ULONG DeviceD2:1;
935 ULONG LockSupported:1;
936 ULONG EjectSupported:1;
938 ULONG DockDevice:1;
939 ULONG UniqueID:1;
940 ULONG SilentInstall:1;
941 ULONG RawDeviceOK:1;
942 ULONG SurpriseRemovalOK:1;
943 ULONG WakeFromD0:1;
944 ULONG WakeFromD1:1;
945 ULONG WakeFromD2:1;
946 ULONG WakeFromD3:1;
947 ULONG HardwareDisabled:1;
948 ULONG NonDynamic:1;
949 ULONG WarmEjectSupported:1;
950 ULONG NoDisplayInUI:1;
952 ULONG WakeFromInterrupt:1;
953 ULONG SecureDevice:1;
954 ULONG ChildOfVgaEnabledBridge:1;
955 ULONG DecodeIoOnBoot:1;
956 ULONG Reserved:9;
958 ULONG UINumber;
960 SYSTEM_POWER_STATE SystemWake;
961 DEVICE_POWER_STATE DeviceWake;
962 ULONG D1Latency;
963 ULONG D2Latency;
964 ULONG D3Latency;
966
974
980
981#undef INTERFACE
982
983typedef struct _INTERFACE {
984 USHORT Size;
990
996
998
999/* PNP_DEVICE_STATE */
1000
1001#define PNP_DEVICE_DISABLED 0x00000001
1002#define PNP_DEVICE_DONT_DISPLAY_IN_UI 0x00000002
1003#define PNP_DEVICE_FAILED 0x00000004
1004#define PNP_DEVICE_REMOVED 0x00000008
1005#define PNP_DEVICE_RESOURCE_REQUIREMENTS_CHANGED 0x00000010
1006#define PNP_DEVICE_NOT_DISABLEABLE 0x00000020
1007
1012 struct _FILE_OBJECT *FileObject;
1014 UCHAR CustomDataBuffer[1];
1016
1021 struct _FILE_OBJECT *FileObject;
1023
1024#if (NTDDI_VERSION >= NTDDI_VISTA)
1025#include <devpropdef.h>
1026#define PLUGPLAY_PROPERTY_PERSISTENT 0x00000001
1027#endif
1028
1029#define PNP_REPLACE_NO_MAP MAXLONGLONG
1030
1033(NTAPI *PREPLACE_MAP_MEMORY)(
1034 _In_ PHYSICAL_ADDRESS TargetPhysicalAddress,
1039
1044 struct {
1047 } Ranges[ANYSIZE_ARRAY];
1049
1052 _Field_range_(<=, MAXIMUM_GROUPS) ULONG GroupCount;
1057
1064
1065#define PNP_REPLACE_PARAMETERS_VERSION 2
1066
1076 PREPLACE_MAP_MEMORY MapMemory;
1078
1079typedef VOID
1081 VOID);
1082
1084typedef NTSTATUS
1085(NTAPI *PREPLACE_BEGIN)(
1088
1090typedef NTSTATUS
1091(NTAPI *PREPLACE_END)(
1093
1095typedef NTSTATUS
1096(NTAPI *PREPLACE_MIRROR_PHYSICAL_MEMORY)(
1100
1102typedef NTSTATUS
1103(NTAPI *PREPLACE_SET_PROCESSOR_ID)(
1107
1109typedef NTSTATUS
1110(NTAPI *PREPLACE_SWAP)(
1112
1114typedef NTSTATUS
1115(NTAPI *PREPLACE_INITIATE_HARDWARE_MIRROR)(
1117
1119typedef NTSTATUS
1120(NTAPI *PREPLACE_MIRROR_PLATFORM_MEMORY)(
1122
1124typedef NTSTATUS
1125(NTAPI *PREPLACE_GET_MEMORY_DESTINATION)(
1129
1131typedef NTSTATUS
1132(NTAPI *PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE)(
1135
1136#define PNP_REPLACE_DRIVER_INTERFACE_VERSION 1
1137#define PNP_REPLACE_DRIVER_INTERFACE_MINIMUM_SIZE \
1138 FIELD_OFFSET(PNP_REPLACE_DRIVER_INTERFACE, InitiateHardwareMirror)
1139
1140#define PNP_REPLACE_MEMORY_SUPPORTED 0x0001
1141#define PNP_REPLACE_PROCESSOR_SUPPORTED 0x0002
1142#define PNP_REPLACE_HARDWARE_MEMORY_MIRRORING 0x0004
1143#define PNP_REPLACE_HARDWARE_PAGE_COPY 0x0008
1144#define PNP_REPLACE_HARDWARE_QUIESCE 0x0010
1145
1151 PREPLACE_BEGIN BeginReplace;
1152 PREPLACE_END EndReplace;
1153 PREPLACE_MIRROR_PHYSICAL_MEMORY MirrorPhysicalMemory;
1154 PREPLACE_SET_PROCESSOR_ID SetProcessorId;
1155 PREPLACE_SWAP Swap;
1156 PREPLACE_INITIATE_HARDWARE_MIRROR InitiateHardwareMirror;
1157 PREPLACE_MIRROR_PLATFORM_MEMORY MirrorPlatformMemory;
1158 PREPLACE_GET_MEMORY_DESTINATION GetMemoryDestination;
1159 PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE EnableDisableHardwareQuiesce;
1161
1163typedef NTSTATUS
1164(NTAPI *PREPLACE_DRIVER_INIT)(
1167
1177
1178typedef struct _POWER_SEQUENCE {
1183
1184#ifdef _PREFAST_
1185#define __string_type 0x1000
1186#define __guid_type 0x2000
1187#define __multiString_type 0x4000
1188#else
1189#define __string_type 0
1190#define __guid_type 0
1191#define __multiString_type 0
1192#endif
1193
1194typedef enum {
1219#undef __string_type
1220#undef __guid_type
1221#undef __multiString_type
1222
1229
1230typedef enum _IO_PRIORITY_HINT {
1238
1239#define PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES 0x00000001
1240
1241_Function_class_(DRIVER_NOTIFICATION_CALLBACK_ROUTINE)
1243typedef NTSTATUS
1244(NTAPI DRIVER_NOTIFICATION_CALLBACK_ROUTINE)(
1247typedef DRIVER_NOTIFICATION_CALLBACK_ROUTINE *PDRIVER_NOTIFICATION_CALLBACK_ROUTINE;
1248
1249_Function_class_(DEVICE_CHANGE_COMPLETE_CALLBACK)
1251typedef VOID
1252(NTAPI DEVICE_CHANGE_COMPLETE_CALLBACK)(
1254typedef DEVICE_CHANGE_COMPLETE_CALLBACK *PDEVICE_CHANGE_COMPLETE_CALLBACK;
1255
1297#if (NTDDI_VERSION >= NTDDI_VISTA)
1307#endif
1308#if (NTDDI_VERSION >= NTDDI_WIN7)
1315#endif
1318
1323
1324typedef struct _FILE_POSITION_INFORMATION {
1325 LARGE_INTEGER CurrentByteOffset;
1327
1328typedef struct _FILE_BASIC_INFORMATION {
1329 LARGE_INTEGER CreationTime;
1330 LARGE_INTEGER LastAccessTime;
1331 LARGE_INTEGER LastWriteTime;
1332 LARGE_INTEGER ChangeTime;
1335
1339
1341 ULONG Flags;
1343
1348
1352
1356
1359 ULONG_PTR ProcessIdList[1];
1361
1362typedef struct _FILE_STANDARD_INFORMATION {
1364 LARGE_INTEGER EndOfFile;
1365 ULONG NumberOfLinks;
1366 BOOLEAN DeletePending;
1369
1370typedef struct _FILE_NETWORK_OPEN_INFORMATION {
1371 LARGE_INTEGER CreationTime;
1372 LARGE_INTEGER LastAccessTime;
1373 LARGE_INTEGER LastWriteTime;
1374 LARGE_INTEGER ChangeTime;
1376 LARGE_INTEGER EndOfFile;
1379
1380typedef enum _FSINFOCLASS {
1393
1394typedef struct _FILE_FS_DEVICE_INFORMATION {
1396 ULONG Characteristics;
1398
1399typedef struct _FILE_FULL_EA_INFORMATION {
1400 ULONG NextEntryOffset;
1401 UCHAR Flags;
1402 UCHAR EaNameLength;
1403 USHORT EaValueLength;
1404 CHAR EaName[1];
1406
1415
1421
1422#define FILE_SKIP_COMPLETION_PORT_ON_SUCCESS 0x1
1423#define FILE_SKIP_SET_EVENT_ON_HANDLE 0x2
1424#define FILE_SKIP_SET_USER_EVENT_ON_FAST_IO 0x4
1425
1426#define FM_LOCK_BIT (0x1)
1427#define FM_LOCK_BIT_V (0x0)
1428#define FM_LOCK_WAITER_WOKEN (0x2)
1429#define FM_LOCK_WAITER_INC (0x4)
1430
1431_Function_class_(FAST_IO_CHECK_IF_POSSIBLE)
1433typedef BOOLEAN
1434(NTAPI FAST_IO_CHECK_IF_POSSIBLE)(
1435 _In_ struct _FILE_OBJECT *FileObject,
1443typedef FAST_IO_CHECK_IF_POSSIBLE *PFAST_IO_CHECK_IF_POSSIBLE;
1444
1445_Function_class_(FAST_IO_READ)
1447typedef BOOLEAN
1448(NTAPI FAST_IO_READ)(
1449 _In_ struct _FILE_OBJECT *FileObject,
1457typedef FAST_IO_READ *PFAST_IO_READ;
1458
1459_Function_class_(FAST_IO_WRITE)
1461typedef BOOLEAN
1462(NTAPI FAST_IO_WRITE)(
1463 _In_ struct _FILE_OBJECT *FileObject,
1471typedef FAST_IO_WRITE *PFAST_IO_WRITE;
1472
1473_Function_class_(FAST_IO_QUERY_BASIC_INFO)
1475typedef BOOLEAN
1476(NTAPI FAST_IO_QUERY_BASIC_INFO)(
1477 _In_ struct _FILE_OBJECT *FileObject,
1482typedef FAST_IO_QUERY_BASIC_INFO *PFAST_IO_QUERY_BASIC_INFO;
1483
1484_Function_class_(FAST_IO_QUERY_STANDARD_INFO)
1486typedef BOOLEAN
1487(NTAPI FAST_IO_QUERY_STANDARD_INFO)(
1488 _In_ struct _FILE_OBJECT *FileObject,
1493typedef FAST_IO_QUERY_STANDARD_INFO *PFAST_IO_QUERY_STANDARD_INFO;
1494
1495_Function_class_(FAST_IO_LOCK)
1497typedef BOOLEAN
1498(NTAPI FAST_IO_LOCK)(
1499 _In_ struct _FILE_OBJECT *FileObject,
1508typedef FAST_IO_LOCK *PFAST_IO_LOCK;
1509
1510_Function_class_(FAST_IO_UNLOCK_SINGLE)
1512typedef BOOLEAN
1513(NTAPI FAST_IO_UNLOCK_SINGLE)(
1514 _In_ struct _FILE_OBJECT *FileObject,
1518 _In_ ULONG Key,
1521typedef FAST_IO_UNLOCK_SINGLE *PFAST_IO_UNLOCK_SINGLE;
1522
1523_Function_class_(FAST_IO_UNLOCK_ALL)
1525typedef BOOLEAN
1526(NTAPI FAST_IO_UNLOCK_ALL)(
1527 _In_ struct _FILE_OBJECT *FileObject,
1531typedef FAST_IO_UNLOCK_ALL *PFAST_IO_UNLOCK_ALL;
1532
1533_Function_class_(FAST_IO_UNLOCK_ALL_BY_KEY)
1535typedef BOOLEAN
1536(NTAPI FAST_IO_UNLOCK_ALL_BY_KEY)(
1537 _In_ struct _FILE_OBJECT *FileObject,
1539 _In_ ULONG Key,
1542typedef FAST_IO_UNLOCK_ALL_BY_KEY *PFAST_IO_UNLOCK_ALL_BY_KEY;
1543
1544_Function_class_(FAST_IO_DEVICE_CONTROL)
1546typedef BOOLEAN
1547(NTAPI FAST_IO_DEVICE_CONTROL)(
1548 _In_ struct _FILE_OBJECT *FileObject,
1557typedef FAST_IO_DEVICE_CONTROL *PFAST_IO_DEVICE_CONTROL;
1558
1559_Function_class_(FAST_IO_ACQUIRE_FILE)
1561typedef VOID
1562(NTAPI FAST_IO_ACQUIRE_FILE)(
1563 _In_ struct _FILE_OBJECT *FileObject);
1564typedef FAST_IO_ACQUIRE_FILE *PFAST_IO_ACQUIRE_FILE;
1565
1566_Function_class_(FAST_IO_RELEASE_FILE)
1568typedef VOID
1569(NTAPI FAST_IO_RELEASE_FILE)(
1570 _In_ struct _FILE_OBJECT *FileObject);
1571typedef FAST_IO_RELEASE_FILE *PFAST_IO_RELEASE_FILE;
1572
1573_Function_class_(FAST_IO_DETACH_DEVICE)
1575typedef VOID
1576(NTAPI FAST_IO_DETACH_DEVICE)(
1579typedef FAST_IO_DETACH_DEVICE *PFAST_IO_DETACH_DEVICE;
1580
1581_Function_class_(FAST_IO_QUERY_NETWORK_OPEN_INFO)
1583typedef BOOLEAN
1584(NTAPI FAST_IO_QUERY_NETWORK_OPEN_INFO)(
1585 _In_ struct _FILE_OBJECT *FileObject,
1590typedef FAST_IO_QUERY_NETWORK_OPEN_INFO *PFAST_IO_QUERY_NETWORK_OPEN_INFO;
1591
1592_Function_class_(FAST_IO_ACQUIRE_FOR_MOD_WRITE)
1594typedef NTSTATUS
1595(NTAPI FAST_IO_ACQUIRE_FOR_MOD_WRITE)(
1596 _In_ struct _FILE_OBJECT *FileObject,
1600typedef FAST_IO_ACQUIRE_FOR_MOD_WRITE *PFAST_IO_ACQUIRE_FOR_MOD_WRITE;
1601
1602_Function_class_(FAST_IO_MDL_READ)
1604typedef BOOLEAN
1605(NTAPI FAST_IO_MDL_READ)(
1606 _In_ struct _FILE_OBJECT *FileObject,
1613typedef FAST_IO_MDL_READ *PFAST_IO_MDL_READ;
1614
1615_Function_class_(FAST_IO_MDL_READ_COMPLETE)
1617typedef BOOLEAN
1618(NTAPI FAST_IO_MDL_READ_COMPLETE)(
1619 _In_ struct _FILE_OBJECT *FileObject,
1622typedef FAST_IO_MDL_READ_COMPLETE *PFAST_IO_MDL_READ_COMPLETE;
1623
1624_Function_class_(FAST_IO_PREPARE_MDL_WRITE)
1626typedef BOOLEAN
1627(NTAPI FAST_IO_PREPARE_MDL_WRITE)(
1628 _In_ struct _FILE_OBJECT *FileObject,
1635typedef FAST_IO_PREPARE_MDL_WRITE *PFAST_IO_PREPARE_MDL_WRITE;
1636
1637_Function_class_(FAST_IO_MDL_WRITE_COMPLETE)
1639typedef BOOLEAN
1640(NTAPI FAST_IO_MDL_WRITE_COMPLETE)(
1641 _In_ struct _FILE_OBJECT *FileObject,
1645typedef FAST_IO_MDL_WRITE_COMPLETE *PFAST_IO_MDL_WRITE_COMPLETE;
1646
1647_Function_class_(FAST_IO_READ_COMPRESSED)
1649typedef BOOLEAN
1650(NTAPI FAST_IO_READ_COMPRESSED)(
1651 _In_ struct _FILE_OBJECT *FileObject,
1661typedef FAST_IO_READ_COMPRESSED *PFAST_IO_READ_COMPRESSED;
1662
1663_Function_class_(FAST_IO_WRITE_COMPRESSED)
1665typedef BOOLEAN
1666(NTAPI FAST_IO_WRITE_COMPRESSED)(
1667 _In_ struct _FILE_OBJECT *FileObject,
1677typedef FAST_IO_WRITE_COMPRESSED *PFAST_IO_WRITE_COMPRESSED;
1678
1679_Function_class_(FAST_IO_MDL_READ_COMPLETE_COMPRESSED)
1681typedef BOOLEAN
1682(NTAPI FAST_IO_MDL_READ_COMPLETE_COMPRESSED)(
1683 _In_ struct _FILE_OBJECT *FileObject,
1686typedef FAST_IO_MDL_READ_COMPLETE_COMPRESSED *PFAST_IO_MDL_READ_COMPLETE_COMPRESSED;
1687
1688_Function_class_(FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED)
1690typedef BOOLEAN
1691(NTAPI FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED)(
1692 _In_ struct _FILE_OBJECT *FileObject,
1696typedef FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED *PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED;
1697
1698_Function_class_(FAST_IO_QUERY_OPEN)
1700typedef BOOLEAN
1701(NTAPI FAST_IO_QUERY_OPEN)(
1702 _Inout_ struct _IRP *Irp,
1705typedef FAST_IO_QUERY_OPEN *PFAST_IO_QUERY_OPEN;
1706
1707_Function_class_(FAST_IO_RELEASE_FOR_MOD_WRITE)
1709typedef NTSTATUS
1710(NTAPI FAST_IO_RELEASE_FOR_MOD_WRITE)(
1711 _In_ struct _FILE_OBJECT *FileObject,
1714typedef FAST_IO_RELEASE_FOR_MOD_WRITE *PFAST_IO_RELEASE_FOR_MOD_WRITE;
1715
1716_Function_class_(FAST_IO_ACQUIRE_FOR_CCFLUSH)
1718typedef NTSTATUS
1719(NTAPI FAST_IO_ACQUIRE_FOR_CCFLUSH)(
1720 _In_ struct _FILE_OBJECT *FileObject,
1722typedef FAST_IO_ACQUIRE_FOR_CCFLUSH *PFAST_IO_ACQUIRE_FOR_CCFLUSH;
1723
1724_Function_class_(FAST_IO_RELEASE_FOR_CCFLUSH)
1726typedef NTSTATUS
1727(NTAPI FAST_IO_RELEASE_FOR_CCFLUSH)(
1728 _In_ struct _FILE_OBJECT *FileObject,
1730typedef FAST_IO_RELEASE_FOR_CCFLUSH *PFAST_IO_RELEASE_FOR_CCFLUSH;
1731
1732typedef struct _FAST_IO_DISPATCH {
1762
1763typedef struct _SECTION_OBJECT_POINTERS {
1764 PVOID DataSectionObject;
1765 PVOID SharedCacheMap;
1766 PVOID ImageSectionObject;
1768
1773
1774/* FILE_OBJECT.Flags */
1775#define FO_FILE_OPEN 0x00000001
1776#define FO_SYNCHRONOUS_IO 0x00000002
1777#define FO_ALERTABLE_IO 0x00000004
1778#define FO_NO_INTERMEDIATE_BUFFERING 0x00000008
1779#define FO_WRITE_THROUGH 0x00000010
1780#define FO_SEQUENTIAL_ONLY 0x00000020
1781#define FO_CACHE_SUPPORTED 0x00000040
1782#define FO_NAMED_PIPE 0x00000080
1783#define FO_STREAM_FILE 0x00000100
1784#define FO_MAILSLOT 0x00000200
1785#define FO_GENERATE_AUDIT_ON_CLOSE 0x00000400
1786#define FO_QUEUE_IRP_TO_THREAD 0x00000400
1787#define FO_DIRECT_DEVICE_OPEN 0x00000800
1788#define FO_FILE_MODIFIED 0x00001000
1789#define FO_FILE_SIZE_CHANGED 0x00002000
1790#define FO_CLEANUP_COMPLETE 0x00004000
1791#define FO_TEMPORARY_FILE 0x00008000
1792#define FO_DELETE_ON_CLOSE 0x00010000
1793#define FO_OPENED_CASE_SENSITIVE 0x00020000
1794#define FO_HANDLE_CREATED 0x00040000
1795#define FO_FILE_FAST_IO_READ 0x00080000
1796#define FO_RANDOM_ACCESS 0x00100000
1797#define FO_FILE_OPEN_CANCELLED 0x00200000
1798#define FO_VOLUME_OPEN 0x00400000
1799#define FO_REMOTE_ORIGIN 0x01000000
1800#define FO_DISALLOW_EXCLUSIVE 0x02000000
1801#define FO_SKIP_COMPLETION_PORT 0x02000000
1802#define FO_SKIP_SET_EVENT 0x04000000
1803#define FO_SKIP_SET_FAST_IO 0x08000000
1804#define FO_FLAGS_VALID_ONLY_DURING_CREATE FO_DISALLOW_EXCLUSIVE
1805
1806/* VPB.Flags */
1807#define VPB_MOUNTED 0x0001
1808#define VPB_LOCKED 0x0002
1809#define VPB_PERSISTENT 0x0004
1810#define VPB_REMOVE_PENDING 0x0008
1811#define VPB_RAW_MOUNT 0x0010
1812#define VPB_DIRECT_WRITES_ALLOWED 0x0020
1813
1814/* IO_STACK_LOCATION.Flags */
1815
1816#define SL_FORCE_ACCESS_CHECK 0x01
1817#define SL_OPEN_PAGING_FILE 0x02
1818#define SL_OPEN_TARGET_DIRECTORY 0x04
1819#define SL_STOP_ON_SYMLINK 0x08
1820#define SL_CASE_SENSITIVE 0x80
1821
1822#define SL_KEY_SPECIFIED 0x01
1823#define SL_OVERRIDE_VERIFY_VOLUME 0x02
1824#define SL_WRITE_THROUGH 0x04
1825#define SL_FT_SEQUENTIAL_WRITE 0x08
1826#define SL_FORCE_DIRECT_WRITE 0x10
1827#define SL_REALTIME_STREAM 0x20
1828
1829#define SL_READ_ACCESS_GRANTED 0x01
1830#define SL_WRITE_ACCESS_GRANTED 0x04
1831
1832#define SL_FAIL_IMMEDIATELY 0x01
1833#define SL_EXCLUSIVE_LOCK 0x02
1834
1835#define SL_RESTART_SCAN 0x01
1836#define SL_RETURN_SINGLE_ENTRY 0x02
1837#define SL_INDEX_SPECIFIED 0x04
1838
1839#define SL_WATCH_TREE 0x01
1840
1841#define SL_ALLOW_RAW_MOUNT 0x01
1842
1845#define CTL_CODE(DeviceType, Function, Method, Access) \
1846 (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
1847
1848#define DEVICE_TYPE_FROM_CTL_CODE(ctl) (((ULONG) (ctl & 0xffff0000)) >> 16)
1849
1850#define METHOD_FROM_CTL_CODE(ctrlCode) ((ULONG)(ctrlCode & 3))
1851
1853$if (_WDMDDK_)
1854
1855/* IRP.Flags */
1856#define IRP_NOCACHE 0x00000001
1857#define IRP_PAGING_IO 0x00000002
1858#define IRP_MOUNT_COMPLETION 0x00000002
1859#define IRP_SYNCHRONOUS_API 0x00000004
1860#define IRP_ASSOCIATED_IRP 0x00000008
1861#define IRP_BUFFERED_IO 0x00000010
1862#define IRP_DEALLOCATE_BUFFER 0x00000020
1863#define IRP_INPUT_OPERATION 0x00000040
1864#define IRP_SYNCHRONOUS_PAGING_IO 0x00000040
1865#define IRP_CREATE_OPERATION 0x00000080
1866#define IRP_READ_OPERATION 0x00000100
1867#define IRP_WRITE_OPERATION 0x00000200
1868#define IRP_CLOSE_OPERATION 0x00000400
1869#define IRP_DEFER_IO_COMPLETION 0x00000800
1870#define IRP_OB_QUERY_NAME 0x00001000
1871#define IRP_HOLD_DEVICE_QUEUE 0x00002000
1872/* The following 2 are missing in latest WDK */
1873#define IRP_RETRY_IO_COMPLETION 0x00004000
1874#define IRP_CLASS_CACHE_OPERATION 0x00008000
1875
1876/* IRP.AllocationFlags */
1877#define IRP_QUOTA_CHARGED 0x01
1878#define IRP_ALLOCATED_MUST_SUCCEED 0x02
1879#define IRP_ALLOCATED_FIXED_SIZE 0x04
1880#define IRP_LOOKASIDE_ALLOCATION 0x08
1881
1882/*
1883** IRP function codes
1884*/
1885
1886#define IRP_MJ_CREATE 0x00
1887#define IRP_MJ_CREATE_NAMED_PIPE 0x01
1888#define IRP_MJ_CLOSE 0x02
1889#define IRP_MJ_READ 0x03
1890#define IRP_MJ_WRITE 0x04
1891#define IRP_MJ_QUERY_INFORMATION 0x05
1892#define IRP_MJ_SET_INFORMATION 0x06
1893#define IRP_MJ_QUERY_EA 0x07
1894#define IRP_MJ_SET_EA 0x08
1895#define IRP_MJ_FLUSH_BUFFERS 0x09
1896#define IRP_MJ_QUERY_VOLUME_INFORMATION 0x0a
1897#define IRP_MJ_SET_VOLUME_INFORMATION 0x0b
1898#define IRP_MJ_DIRECTORY_CONTROL 0x0c
1899#define IRP_MJ_FILE_SYSTEM_CONTROL 0x0d
1900#define IRP_MJ_DEVICE_CONTROL 0x0e
1901#define IRP_MJ_INTERNAL_DEVICE_CONTROL 0x0f
1902#define IRP_MJ_SCSI 0x0f
1903#define IRP_MJ_SHUTDOWN 0x10
1904#define IRP_MJ_LOCK_CONTROL 0x11
1905#define IRP_MJ_CLEANUP 0x12
1906#define IRP_MJ_CREATE_MAILSLOT 0x13
1907#define IRP_MJ_QUERY_SECURITY 0x14
1908#define IRP_MJ_SET_SECURITY 0x15
1909#define IRP_MJ_POWER 0x16
1910#define IRP_MJ_SYSTEM_CONTROL 0x17
1911#define IRP_MJ_DEVICE_CHANGE 0x18
1912#define IRP_MJ_QUERY_QUOTA 0x19
1913#define IRP_MJ_SET_QUOTA 0x1a
1914#define IRP_MJ_PNP 0x1b
1915#define IRP_MJ_PNP_POWER 0x1b
1916#define IRP_MJ_MAXIMUM_FUNCTION 0x1b
1917
1918#define IRP_MN_SCSI_CLASS 0x01
1919
1920#define IRP_MN_START_DEVICE 0x00
1921#define IRP_MN_QUERY_REMOVE_DEVICE 0x01
1922#define IRP_MN_REMOVE_DEVICE 0x02
1923#define IRP_MN_CANCEL_REMOVE_DEVICE 0x03
1924#define IRP_MN_STOP_DEVICE 0x04
1925#define IRP_MN_QUERY_STOP_DEVICE 0x05
1926#define IRP_MN_CANCEL_STOP_DEVICE 0x06
1927
1928#define IRP_MN_QUERY_DEVICE_RELATIONS 0x07
1929#define IRP_MN_QUERY_INTERFACE 0x08
1930#define IRP_MN_QUERY_CAPABILITIES 0x09
1931#define IRP_MN_QUERY_RESOURCES 0x0A
1932#define IRP_MN_QUERY_RESOURCE_REQUIREMENTS 0x0B
1933#define IRP_MN_QUERY_DEVICE_TEXT 0x0C
1934#define IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D
1935
1936#define IRP_MN_READ_CONFIG 0x0F
1937#define IRP_MN_WRITE_CONFIG 0x10
1938#define IRP_MN_EJECT 0x11
1939#define IRP_MN_SET_LOCK 0x12
1940#define IRP_MN_QUERY_ID 0x13
1941#define IRP_MN_QUERY_PNP_DEVICE_STATE 0x14
1942#define IRP_MN_QUERY_BUS_INFORMATION 0x15
1943#define IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16
1944#define IRP_MN_SURPRISE_REMOVAL 0x17
1945#if (NTDDI_VERSION >= NTDDI_WIN7)
1946#define IRP_MN_DEVICE_ENUMERATED 0x19
1947#endif
1948
1949#define IRP_MN_WAIT_WAKE 0x00
1950#define IRP_MN_POWER_SEQUENCE 0x01
1951#define IRP_MN_SET_POWER 0x02
1952#define IRP_MN_QUERY_POWER 0x03
1953
1954#define IRP_MN_QUERY_ALL_DATA 0x00
1955#define IRP_MN_QUERY_SINGLE_INSTANCE 0x01
1956#define IRP_MN_CHANGE_SINGLE_INSTANCE 0x02
1957#define IRP_MN_CHANGE_SINGLE_ITEM 0x03
1958#define IRP_MN_ENABLE_EVENTS 0x04
1959#define IRP_MN_DISABLE_EVENTS 0x05
1960#define IRP_MN_ENABLE_COLLECTION 0x06
1961#define IRP_MN_DISABLE_COLLECTION 0x07
1962#define IRP_MN_REGINFO 0x08
1963#define IRP_MN_EXECUTE_METHOD 0x09
1964
1965#define IRP_MN_REGINFO_EX 0x0b
1966
1967typedef struct _FILE_OBJECT {
1968 CSHORT Type;
1969 CSHORT Size;
1971 PVPB Vpb;
1973 PVOID FsContext2;
1975 PVOID PrivateCacheMap;
1976 NTSTATUS FinalStatus;
1977 struct _FILE_OBJECT *RelatedFileObject;
1978 BOOLEAN LockOperation;
1979 BOOLEAN DeletePending;
1982 BOOLEAN DeleteAccess;
1983 BOOLEAN SharedRead;
1984 BOOLEAN SharedWrite;
1985 BOOLEAN SharedDelete;
1986 ULONG Flags;
1988 LARGE_INTEGER CurrentByteOffset;
1989 volatile ULONG Waiters;
1990 volatile ULONG Busy;
1991 PVOID LastLock;
1992 KEVENT Lock;
1993 KEVENT Event;
1995 KSPIN_LOCK IrpListLock;
1996 LIST_ENTRY IrpList;
1997 volatile PVOID FileObjectExtension;
1999
2000typedef struct _IO_ERROR_LOG_PACKET {
2015
2024
2025/* See ndk/lpctypes.h */
2026#ifdef _WIN64
2027#define PORT_MAXIMUM_MESSAGE_LENGTH 512
2028#else
2029#define PORT_MAXIMUM_MESSAGE_LENGTH 256
2030#endif
2031
2032#define ERROR_LOG_LIMIT_SIZE 240
2033#define IO_ERROR_LOG_MESSAGE_HEADER_LENGTH (sizeof(IO_ERROR_LOG_MESSAGE) - \
2034 sizeof(IO_ERROR_LOG_PACKET) + \
2035 (sizeof(WCHAR) * 40))
2036#define ERROR_LOG_MESSAGE_LIMIT_SIZE \
2037 (ERROR_LOG_LIMIT_SIZE + IO_ERROR_LOG_MESSAGE_HEADER_LENGTH)
2038#define IO_ERROR_LOG_MESSAGE_LENGTH \
2039 ((PORT_MAXIMUM_MESSAGE_LENGTH > ERROR_LOG_MESSAGE_LIMIT_SIZE) ? \
2040 ERROR_LOG_MESSAGE_LIMIT_SIZE : \
2041 PORT_MAXIMUM_MESSAGE_LENGTH)
2042#define ERROR_LOG_MAXIMUM_SIZE (IO_ERROR_LOG_MESSAGE_LENGTH - \
2043 IO_ERROR_LOG_MESSAGE_HEADER_LENGTH)
2044
2045typedef enum _DMA_WIDTH {
2051
2052typedef enum _DMA_SPEED {
2060
2061/* DEVICE_DESCRIPTION.Version */
2062
2063#define DEVICE_DESCRIPTION_VERSION 0x0000
2064#define DEVICE_DESCRIPTION_VERSION1 0x0001
2065#define DEVICE_DESCRIPTION_VERSION2 0x0002
2066#define DEVICE_DESCRIPTION_VERSION3 0x0003
2067
2068typedef struct _DEVICE_DESCRIPTION {
2085#if (NTDDI_VERSION >= NTDDI_WIN8)
2090#endif // NTDDI_WIN8
2092
2093#define DMA_ADAPTER_INFO_VERSION1 1
2094
2095#define ADAPTER_INFO_SYNCHRONOUS_CALLBACK 0x0001
2096#define ADAPTER_INFO_API_BYPASS 0x0002
2097
2099{
2106
2107typedef struct _DMA_ADAPTER_INFO
2108{
2110 union
2111 {
2113 };
2115
2116#define DMA_TRANSFER_INFO_VERSION1 1
2117#define DMA_TRANSFER_INFO_VERSION2 2
2118
2120{
2125
2127{
2133
2135{
2137 union {
2140 };
2142
2143#define DMA_TRANSFER_CONTEXT_VERSION1 1
2144
2145#ifdef _WIN64
2146#define DMA_TRANSFER_CONTEXT_SIZE_V1 128
2147#else
2148#define DMA_TRANSFER_CONTEXT_SIZE_V1 64
2149#endif
2150
2151#define DMA_SYNCHRONOUS_CALLBACK 0x01
2152
2162
2163typedef struct _DEVICE_RELATIONS {
2165 PDEVICE_OBJECT Objects[1];
2167
2168typedef struct _DEVOBJ_EXTENSION {
2173
2179
2180#if defined(_MSC_EXTENSIONS) || defined(__GNUC__)
2181
2182#if defined(_MSC_VER)
2183#if _MSC_VER >= 1200
2184#pragma warning(push)
2185#endif
2186#pragma warning(disable:4200)
2187#endif /* _MSC_VER */
2188
2189typedef struct _SCATTER_GATHER_LIST {
2190 ULONG NumberOfElements;
2192 SCATTER_GATHER_ELEMENT Elements[1];
2194
2195#if defined(_MSC_VER)
2196#if _MSC_VER >= 1200
2197#pragma warning(pop)
2198#else
2199#pragma warning(default:4200)
2200#endif
2201#endif /* _MSC_VER */
2202
2203#else /* defined(_MSC_EXTENSIONS) || defined(__GNUC__) */
2204
2205struct _SCATTER_GATHER_LIST;
2206typedef struct _SCATTER_GATHER_LIST SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
2207
2208#endif /* defined(_MSC_EXTENSIONS) || defined(__GNUC__) */
2209
2210_Function_class_(DRIVER_ADD_DEVICE)
2214typedef NTSTATUS
2215(NTAPI DRIVER_ADD_DEVICE)(
2218typedef DRIVER_ADD_DEVICE *PDRIVER_ADD_DEVICE;
2219
2220typedef struct _DRIVER_EXTENSION {
2226
2227#define DRVO_UNLOAD_INVOKED 0x00000001
2228#define DRVO_LEGACY_DRIVER 0x00000002
2229#define DRVO_BUILTIN_DRIVER 0x00000004
2230
2231_Function_class_(DRIVER_INITIALIZE)
2233typedef NTSTATUS
2234(NTAPI DRIVER_INITIALIZE)(
2237typedef DRIVER_INITIALIZE *PDRIVER_INITIALIZE;
2238
2239_Function_class_(DRIVER_STARTIO)
2243typedef VOID
2244(NTAPI DRIVER_STARTIO)(
2246 _Inout_ struct _IRP *Irp);
2247typedef DRIVER_STARTIO *PDRIVER_STARTIO;
2248
2249_Function_class_(DRIVER_UNLOAD)
2252typedef VOID
2253(NTAPI DRIVER_UNLOAD)(
2255typedef DRIVER_UNLOAD *PDRIVER_UNLOAD;
2256
2260typedef NTSTATUS
2263 _Inout_ struct _IRP *Irp);
2266
2270typedef NTSTATUS
2271(NTAPI DRIVER_DISPATCH_PAGED)(
2273 _Inout_ struct _IRP *Irp);
2274typedef DRIVER_DISPATCH_PAGED *PDRIVER_DISPATCH_PAGED;
2275
2276typedef struct _DRIVER_OBJECT {
2293
2294typedef struct _DMA_ADAPTER {
2299
2300typedef enum
2301{
2307
2308typedef VOID
2310 PDMA_ADAPTER DmaAdapter);
2311
2312typedef PVOID
2314 _In_ PDMA_ADAPTER DmaAdapter,
2316 _Out_ PPHYSICAL_ADDRESS LogicalAddress,
2317 _In_ BOOLEAN CacheEnabled);
2318
2319typedef VOID
2321 _In_ PDMA_ADAPTER DmaAdapter,
2323 _In_ PHYSICAL_ADDRESS LogicalAddress,
2325 _In_ BOOLEAN CacheEnabled);
2326
2329 _In_ PDMA_ADAPTER DmaAdapter,
2334
2335typedef BOOLEAN
2337 _In_ PDMA_ADAPTER DmaAdapter,
2338 _In_ PMDL Mdl,
2340 _In_ PVOID CurrentVa,
2343
2344typedef VOID
2346 _In_ PDMA_ADAPTER DmaAdapter);
2347
2348typedef VOID
2350 _In_ PDMA_ADAPTER DmaAdapter,
2353
2356 _In_ PDMA_ADAPTER DmaAdapter,
2357 _In_ PMDL Mdl,
2359 _In_ PVOID CurrentVa,
2362
2363typedef ULONG
2365 _In_ PDMA_ADAPTER DmaAdapter);
2366
2367typedef ULONG
2369 _In_ PDMA_ADAPTER DmaAdapter);
2370
2371_Function_class_(DRIVER_LIST_CONTROL)
2373typedef VOID
2374(NTAPI DRIVER_LIST_CONTROL)(
2376 _In_ struct _IRP *Irp,
2377 _In_ struct _SCATTER_GATHER_LIST *ScatterGather,
2379typedef DRIVER_LIST_CONTROL *PDRIVER_LIST_CONTROL;
2380
2383 _In_ PDMA_ADAPTER DmaAdapter,
2385 _In_ PMDL Mdl,
2386 _In_ PVOID CurrentVa,
2391
2392typedef VOID
2394 _In_ PDMA_ADAPTER DmaAdapter,
2397
2400 _In_ PDMA_ADAPTER DmaAdapter,
2402 _In_ PVOID CurrentVa,
2404 _Out_ PULONG ScatterGatherListSize,
2405 _Out_ OPTIONAL PULONG pNumberOfMapRegisters);
2406
2409 _In_ PDMA_ADAPTER DmaAdapter,
2411 _In_ PMDL Mdl,
2412 _In_ PVOID CurrentVa,
2417 _In_ PVOID ScatterGatherBuffer,
2418 _In_ ULONG ScatterGatherLength);
2419
2422 _In_ PDMA_ADAPTER DmaAdapter,
2424 _In_ PMDL OriginalMdl,
2426
2429 _In_ PDMA_ADAPTER DmaAdapter,
2430 _Inout_ PDMA_ADAPTER_INFO AdapterInfo);
2431
2434 _In_ PDMA_ADAPTER DmaAdapter,
2435 _In_ PMDL Mdl,
2438 _In_ BOOLEAN WriteOnly,
2439 _Inout_ PDMA_TRANSFER_INFO TransferInfo);
2440
2443 _In_ PDMA_ADAPTER DmaAdapter,
2444 _Out_ PVOID DmaTransferContext);
2445
2446typedef PVOID
2448 _In_ PDMA_ADAPTER DmaAdapter,
2449 _In_opt_ PPHYSICAL_ADDRESS MaximumAddress,
2451 _Out_ PPHYSICAL_ADDRESS LogicalAddress,
2452 _In_ BOOLEAN CacheEnabled,
2453 _In_ NODE_REQUIREMENT PreferredNode);
2454
2457 _In_ PDMA_ADAPTER DmaAdapter,
2459 _In_ PVOID DmaTransferContext,
2463 _In_opt_ PVOID ExecutionContext,
2465
2468 _In_ PDMA_ADAPTER DmaAdapter,
2469 _In_ ULONG FunctionNumber,
2471
2472typedef BOOLEAN
2474 _In_ PDMA_ADAPTER DmaAdapter,
2476 _In_ PVOID DmaTransferContext);
2477
2478typedef
2479_Function_class_(DMA_COMPLETION_ROUTINE)
2482VOID
2483NTAPI
2484DMA_COMPLETION_ROUTINE(
2485 _In_ PDMA_ADAPTER DmaAdapter,
2489
2490typedef DMA_COMPLETION_ROUTINE *PDMA_COMPLETION_ROUTINE;
2491
2494 _In_ PDMA_ADAPTER DmaAdapter,
2495 _In_ PMDL Mdl,
2501 _Out_writes_bytes_opt_(ScatterGatherBufferLength) PSCATTER_GATHER_LIST ScatterGatherBuffer,
2502 _In_ ULONG ScatterGatherBufferLength,
2505
2508 _In_ PDMA_ADAPTER DmaAdapter,
2510 _In_ PVOID DmaTransferContext,
2511 _In_ PMDL Mdl,
2520 _Out_opt_ PSCATTER_GATHER_LIST *ScatterGatherList);
2521
2524 _In_ PDMA_ADAPTER DmaAdapter,
2526 _In_ PVOID DmaTransferContext,
2527 _In_ PMDL Mdl,
2534 _In_ PVOID ScatterGatherBuffer,
2535 _In_ ULONG ScatterGatherLength,
2538 _Out_opt_ PVOID ScatterGatherList);
2539
2542 _In_ PDMA_ADAPTER DmaAdapter,
2543 _In_ PMDL Mdl,
2548
2549typedef VOID
2551 _In_ PDMA_ADAPTER DmaAdapter,
2552 _In_ IO_ALLOCATION_ACTION AllocationAction);
2553
2556 _In_ PDMA_ADAPTER DmaAdapter,
2557 _In_ PVOID DmaTransferContext);
2558
2561 _In_ PDMA_ADAPTER DmaAdapter,
2562 _In_ HANDLE DomainHandle,
2563 _In_opt_ PPHYSICAL_ADDRESS MaximumAddress,
2567 _In_ NODE_REQUIREMENT PreferredNode,
2568 _Out_ PPHYSICAL_ADDRESS LogicalAddress,
2570
2573 _In_ PDMA_ADAPTER DmaAdapter,
2574 _In_ PMDL Mdl,
2575 _In_ BOOLEAN ReadOperation);
2576
2579 _In_ PDMA_ADAPTER DmaAdapter,
2580 _In_ HANDLE DomainHandle);
2581
2584 _In_ PDMA_ADAPTER DmaAdapter);
2585
2586typedef HANDLE
2588 _In_ PDMA_ADAPTER DmaAdapter);
2589
2590typedef PVOID
2592 _In_ PDMA_ADAPTER DmaAdapter,
2593 _In_opt_ PPHYSICAL_ADDRESS MinimumAddress,
2594 _In_opt_ PPHYSICAL_ADDRESS MaximumAddress,
2598 _In_ NODE_REQUIREMENT PreferredNode,
2599 _Out_ PPHYSICAL_ADDRESS LogicalAddress);
2600
2601typedef struct _DMA_COMMON_BUFFER_VECTOR DMA_COMMON_BUFFER_VECTOR, *PDMA_COMMON_BUFFER_VECTOR;
2602
2605 _In_ PDMA_ADAPTER DmaAdapter,
2606 _In_ PHYSICAL_ADDRESS LowAddress,
2609 _In_ ULONG IdealNode,
2611 _In_ ULONG NumberOfElements,
2612 _In_ ULONGLONG SizeOfElements,
2613 _Out_ PDMA_COMMON_BUFFER_VECTOR *VectorOut);
2614
2615typedef VOID
2617 _In_ PDMA_ADAPTER DmaAdapter,
2620 _Out_ PVOID *VirtualAddressOut,
2621 _Out_ PPHYSICAL_ADDRESS LogicalAddressOut);
2622
2623typedef VOID
2625 _In_ PDMA_ADAPTER DmaAdapter,
2627 _In_ ULONG Index);
2628
2629typedef VOID
2631 _In_ PDMA_ADAPTER DmaAdapter,
2633
2634typedef struct _DMA_OPERATIONS {
2675
2676typedef struct _IO_RESOURCE_DESCRIPTOR {
2677 UCHAR Option;
2678 UCHAR Type;
2679 UCHAR ShareDisposition;
2680 UCHAR Spare1;
2681 USHORT Flags;
2682 USHORT Spare2;
2683 union {
2684 struct {
2685 ULONG Length;
2687 PHYSICAL_ADDRESS MinimumAddress;
2688 PHYSICAL_ADDRESS MaximumAddress;
2690 struct {
2691 ULONG Length;
2693 PHYSICAL_ADDRESS MinimumAddress;
2694 PHYSICAL_ADDRESS MaximumAddress;
2696 struct {
2697 ULONG MinimumVector;
2698 ULONG MaximumVector;
2699#if defined(NT_PROCESSOR_GROUPS)
2700 IRQ_DEVICE_POLICY AffinityPolicy;
2701 USHORT Group;
2702#else
2703 IRQ_DEVICE_POLICY AffinityPolicy;
2704#endif
2705 IRQ_PRIORITY PriorityPolicy;
2706 KAFFINITY TargetedProcessors;
2708 struct {
2709 ULONG MinimumChannel;
2710 ULONG MaximumChannel;
2711 } Dma;
2712 struct {
2713 ULONG Length;
2715 PHYSICAL_ADDRESS MinimumAddress;
2716 PHYSICAL_ADDRESS MaximumAddress;
2717 } Generic;
2718 struct {
2719 ULONG Data[3];
2720 } DevicePrivate;
2721 struct {
2722 ULONG Length;
2723 ULONG MinBusNumber;
2724 ULONG MaxBusNumber;
2727 struct {
2731 } ConfigData;
2732 } u;
2734
2735typedef struct _IO_RESOURCE_LIST {
2741
2751
2752_Function_class_(DRIVER_CANCEL)
2753_Requires_lock_held_(_Global_cancel_spin_lock_)
2754_Releases_lock_(_Global_cancel_spin_lock_)
2757typedef VOID
2758(NTAPI DRIVER_CANCEL)(
2761typedef DRIVER_CANCEL *PDRIVER_CANCEL;
2762
2763typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _IRP {
2764 CSHORT Type;
2765 USHORT Size;
2766 struct _MDL *MdlAddress;
2767 ULONG Flags;
2768 union {
2769 struct _IRP *MasterIrp;
2770 volatile LONG IrpCount;
2771 PVOID SystemBuffer;
2772 } AssociatedIrp;
2773 LIST_ENTRY ThreadListEntry;
2775 KPROCESSOR_MODE RequestorMode;
2776 BOOLEAN PendingReturned;
2777 CHAR StackCount;
2778 CHAR CurrentLocation;
2780 KIRQL CancelIrql;
2781 CCHAR ApcEnvironment;
2782 UCHAR AllocationFlags;
2783 PIO_STATUS_BLOCK UserIosb;
2784 PKEVENT UserEvent;
2785 union {
2786 struct {
2787 _ANONYMOUS_UNION union {
2788 PIO_APC_ROUTINE UserApcRoutine;
2789 PVOID IssuingProcess;
2791 PVOID UserApcContext;
2792 } AsynchronousParameters;
2794 } Overlay;
2796 PVOID UserBuffer;
2797 union {
2798 struct {
2799 _ANONYMOUS_UNION union {
2801 _ANONYMOUS_STRUCT struct {
2806 PCHAR AuxiliaryBuffer;
2807 _ANONYMOUS_STRUCT struct {
2808 LIST_ENTRY ListEntry;
2809 _ANONYMOUS_UNION union {
2810 struct _IO_STACK_LOCATION *CurrentStackLocation;
2811 ULONG PacketType;
2814 struct _FILE_OBJECT *OriginalFileObject;
2815 } Overlay;
2816 KAPC Apc;
2817 PVOID CompletionKey;
2818 } Tail;
2820
2828
2829_Function_class_(IO_COMPLETION_ROUTINE)
2832typedef NTSTATUS
2833(NTAPI IO_COMPLETION_ROUTINE)(
2835 _In_ struct _IRP *Irp,
2836 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context);
2837typedef IO_COMPLETION_ROUTINE *PIO_COMPLETION_ROUTINE;
2838
2839_Function_class_(IO_DPC_ROUTINE)
2843typedef VOID
2844(NTAPI IO_DPC_ROUTINE)(
2849typedef IO_DPC_ROUTINE *PIO_DPC_ROUTINE;
2850
2854
2857 VOID);
2858
2859_Function_class_(IO_TIMER_ROUTINE)
2861typedef VOID
2862(NTAPI IO_TIMER_ROUTINE)(
2865typedef IO_TIMER_ROUTINE *PIO_TIMER_ROUTINE;
2866
2873
2874struct _IO_CSQ;
2875
2876typedef struct _IO_CSQ_IRP_CONTEXT {
2877 ULONG Type;
2878 struct _IRP *Irp;
2879 struct _IO_CSQ *Csq;
2881
2882typedef VOID
2883(NTAPI IO_CSQ_INSERT_IRP)(
2884 _In_ struct _IO_CSQ *Csq,
2886typedef IO_CSQ_INSERT_IRP *PIO_CSQ_INSERT_IRP;
2887
2888typedef NTSTATUS
2889(NTAPI IO_CSQ_INSERT_IRP_EX)(
2890 _In_ struct _IO_CSQ *Csq,
2891 _In_ PIRP Irp,
2893typedef IO_CSQ_INSERT_IRP_EX *PIO_CSQ_INSERT_IRP_EX;
2894
2895typedef VOID
2896(NTAPI IO_CSQ_REMOVE_IRP)(
2897 _In_ struct _IO_CSQ *Csq,
2898 _In_ PIRP Irp);
2899typedef IO_CSQ_REMOVE_IRP *PIO_CSQ_REMOVE_IRP;
2900
2901typedef PIRP
2902(NTAPI IO_CSQ_PEEK_NEXT_IRP)(
2903 _In_ struct _IO_CSQ *Csq,
2904 _In_ PIRP Irp,
2906typedef IO_CSQ_PEEK_NEXT_IRP *PIO_CSQ_PEEK_NEXT_IRP;
2907
2908typedef VOID
2909(NTAPI IO_CSQ_ACQUIRE_LOCK)(
2910 _In_ struct _IO_CSQ *Csq,
2912typedef IO_CSQ_ACQUIRE_LOCK *PIO_CSQ_ACQUIRE_LOCK;
2913
2914typedef VOID
2915(NTAPI IO_CSQ_RELEASE_LOCK)(
2916 _In_ struct _IO_CSQ *Csq,
2917 _In_ KIRQL Irql);
2918typedef IO_CSQ_RELEASE_LOCK *PIO_CSQ_RELEASE_LOCK;
2919
2920typedef VOID
2921(NTAPI IO_CSQ_COMPLETE_CANCELED_IRP)(
2922 _In_ struct _IO_CSQ *Csq,
2923 _In_ PIRP Irp);
2924typedef IO_CSQ_COMPLETE_CANCELED_IRP *PIO_CSQ_COMPLETE_CANCELED_IRP;
2925
2926typedef struct _IO_CSQ {
2927 ULONG Type;
2934 PVOID ReservePointer;
2936
2945
2946typedef enum _DEVICE_TEXT_TYPE {
2950
2951typedef BOOLEAN
2953 PVOID,
2954 PVOID);
2955
2958typedef NTSTATUS
2959(NTAPI *PGPE_CONNECT_VECTOR)(
2966 PVOID);
2967
2970typedef NTSTATUS
2971(NTAPI *PGPE_DISCONNECT_VECTOR)(
2972 PVOID);
2973
2976typedef NTSTATUS
2977(NTAPI *PGPE_ENABLE_EVENT)(
2979 PVOID);
2980
2983typedef NTSTATUS
2984(NTAPI *PGPE_DISABLE_EVENT)(
2986 PVOID);
2987
2990typedef NTSTATUS
2991(NTAPI *PGPE_CLEAR_STATUS)(
2993 PVOID);
2994
2995typedef VOID
2997 PVOID,
2998 ULONG);
2999
3002typedef NTSTATUS
3003(NTAPI *PREGISTER_FOR_DEVICE_NOTIFICATIONS)(
3006 PVOID);
3007
3009typedef VOID
3010(NTAPI *PUNREGISTER_FOR_DEVICE_NOTIFICATIONS)(
3013
3020 PGPE_CONNECT_VECTOR GpeConnectVector;
3021 PGPE_DISCONNECT_VECTOR GpeDisconnectVector;
3022 PGPE_ENABLE_EVENT GpeEnableEvent;
3023 PGPE_DISABLE_EVENT GpeDisableEvent;
3024 PGPE_CLEAR_STATUS GpeClearStatus;
3025 PREGISTER_FOR_DEVICE_NOTIFICATIONS RegisterForDeviceNotifications;
3026 PUNREGISTER_FOR_DEVICE_NOTIFICATIONS UnregisterForDeviceNotifications;
3028
3029typedef BOOLEAN
3033
3036typedef NTSTATUS
3037(NTAPI *PGPE_CONNECT_VECTOR2)(
3038 PVOID Context,
3045
3048typedef NTSTATUS
3049(NTAPI *PGPE_DISCONNECT_VECTOR2)(
3050 PVOID Context,
3052
3055typedef NTSTATUS
3056(NTAPI *PGPE_ENABLE_EVENT2)(
3057 PVOID Context,
3059
3062typedef NTSTATUS
3063(NTAPI *PGPE_DISABLE_EVENT2)(
3064 PVOID Context,
3066
3069typedef NTSTATUS
3070(NTAPI *PGPE_CLEAR_STATUS2)(
3071 PVOID Context,
3073
3075typedef VOID
3076(NTAPI *PDEVICE_NOTIFY_CALLBACK2)(
3079
3082typedef NTSTATUS
3083(NTAPI *PREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
3084 PVOID Context,
3085 PDEVICE_NOTIFY_CALLBACK2 NotificationHandler,
3087
3089typedef VOID
3090(NTAPI *PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
3091 PVOID Context);
3092
3099 PGPE_CONNECT_VECTOR2 GpeConnectVector;
3100 PGPE_DISCONNECT_VECTOR2 GpeDisconnectVector;
3101 PGPE_ENABLE_EVENT2 GpeEnableEvent;
3102 PGPE_DISABLE_EVENT2 GpeDisableEvent;
3103 PGPE_CLEAR_STATUS2 GpeClearStatus;
3104 PREGISTER_FOR_DEVICE_NOTIFICATIONS2 RegisterForDeviceNotifications;
3105 PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2 UnregisterForDeviceNotifications;
3107
3108#if !defined(_AMD64_) && !defined(_ARM_)
3109#include <pshpack4.h>
3110#endif
3111
3112typedef struct _IO_STACK_LOCATION {
3117 union {
3118 struct {
3125 struct {
3127 ULONG Options;
3132 struct {
3133 PIO_SECURITY_CONTEXT SecurityContext;
3134 ULONG Options;
3139 struct {
3144 struct {
3145 ULONG Length;
3149 struct {
3150 ULONG Length;
3154 } QueryDirectory;
3155 struct {
3156 ULONG Length;
3158 } NotifyDirectory;
3159 struct {
3160 ULONG Length;
3163 } NotifyDirectoryEx;
3164 struct {
3165 ULONG Length;
3167 } QueryFile;
3168 struct {
3169 ULONG Length;
3172 _ANONYMOUS_UNION union {
3173 _ANONYMOUS_STRUCT struct {
3180 } SetFile;
3181 struct {
3182 ULONG Length;
3186 } QueryEa;
3187 struct {
3188 ULONG Length;
3189 } SetEa;
3190 struct {
3191 ULONG Length;
3193 } QueryVolume;
3194 struct {
3195 ULONG Length;
3197 } SetVolume;
3198 struct {
3203 } FileSystemControl;
3204 struct {
3208 } LockControl;
3209 struct {
3213 PVOID Type3InputBuffer;
3215 struct {
3218 } QuerySecurity;
3219 struct {
3222 } SetSecurity;
3223 struct {
3227 struct {
3228 PVPB Vpb;
3230 } VerifyVolume;
3231 struct {
3233 } Scsi;
3234 struct {
3235 ULONG Length;
3239 } QueryQuota;
3240 struct {
3241 ULONG Length;
3242 } SetQuota;
3243 struct {
3245 } QueryDeviceRelations;
3246 struct {
3253 struct {
3256 struct {
3258 } FilterResourceRequirements;
3259 struct {
3264 } ReadWriteConfig;
3265 struct {
3267 } SetLock;
3268 struct {
3270 } QueryId;
3271 struct {
3274 } QueryDeviceText;
3275 struct {
3279 } UsageNotification;
3280 struct {
3282 } WaitWake;
3283 struct {
3285 } PowerSequence;
3286 struct {
3287 union {
3289#if (NTDDI_VERSION >= NTDDI_VISTA)
3291#endif // (NTDDI_VERSION >= NTDDI_VISTA)
3292 };
3296 } Power;
3297 struct {
3301 struct {
3305 PVOID Buffer;
3306 } WMI;
3307 struct {
3312 } Others;
3319
3320#if !defined(_AMD64_) && !defined(_ARM_)
3321#include "poppack.h"
3322#endif
3323
3324
3325/* IO_STACK_LOCATION.Control */
3326
3327#define SL_PENDING_RETURNED 0x01
3328#define SL_ERROR_RETURNED 0x02
3329#define SL_INVOKE_ON_CANCEL 0x20
3330#define SL_INVOKE_ON_SUCCESS 0x40
3331#define SL_INVOKE_ON_ERROR 0x80
3332
3335#define METHOD_BUFFERED 0
3336#define METHOD_IN_DIRECT 1
3337#define METHOD_OUT_DIRECT 2
3338#define METHOD_NEITHER 3
3339
3340#define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT
3341#define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT
3342
3344$if (_WDMDDK_)
3345#define FILE_SUPERSEDED 0x00000000
3346#define FILE_OPENED 0x00000001
3347#define FILE_CREATED 0x00000002
3348#define FILE_OVERWRITTEN 0x00000003
3349#define FILE_EXISTS 0x00000004
3350#define FILE_DOES_NOT_EXIST 0x00000005
3351
3352#define FILE_USE_FILE_POINTER_POSITION 0xfffffffe
3353#define FILE_WRITE_TO_END_OF_FILE 0xffffffff
3354
3355/* also in winnt.h */
3356#define FILE_LIST_DIRECTORY 0x00000001
3357#define FILE_READ_DATA 0x00000001
3358#define FILE_ADD_FILE 0x00000002
3359#define FILE_WRITE_DATA 0x00000002
3360#define FILE_ADD_SUBDIRECTORY 0x00000004
3361#define FILE_APPEND_DATA 0x00000004
3362#define FILE_CREATE_PIPE_INSTANCE 0x00000004
3363#define FILE_READ_EA 0x00000008
3364#define FILE_WRITE_EA 0x00000010
3365#define FILE_EXECUTE 0x00000020
3366#define FILE_TRAVERSE 0x00000020
3367#define FILE_DELETE_CHILD 0x00000040
3368#define FILE_READ_ATTRIBUTES 0x00000080
3369#define FILE_WRITE_ATTRIBUTES 0x00000100
3370
3371#define FILE_SHARE_READ 0x00000001
3372#define FILE_SHARE_WRITE 0x00000002
3373#define FILE_SHARE_DELETE 0x00000004
3374#define FILE_SHARE_VALID_FLAGS 0x00000007
3375
3376#define FILE_ATTRIBUTE_READONLY 0x00000001
3377#define FILE_ATTRIBUTE_HIDDEN 0x00000002
3378#define FILE_ATTRIBUTE_SYSTEM 0x00000004
3379#define FILE_ATTRIBUTE_DIRECTORY 0x00000010
3380#define FILE_ATTRIBUTE_ARCHIVE 0x00000020
3381#define FILE_ATTRIBUTE_DEVICE 0x00000040
3382#define FILE_ATTRIBUTE_NORMAL 0x00000080
3383#define FILE_ATTRIBUTE_TEMPORARY 0x00000100
3384#define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
3385#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
3386#define FILE_ATTRIBUTE_COMPRESSED 0x00000800
3387#define FILE_ATTRIBUTE_OFFLINE 0x00001000
3388#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
3389#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000
3390#define FILE_ATTRIBUTE_INTEGRITY_STREAM 0x00008000
3391#define FILE_ATTRIBUTE_VIRTUAL 0x00010000
3392
3393#define FILE_ATTRIBUTE_VALID_FLAGS 0x00007fb7
3394#define FILE_ATTRIBUTE_VALID_SET_FLAGS 0x000031a7
3395
3396#define FILE_VALID_OPTION_FLAGS 0x00ffffff
3397#define FILE_VALID_PIPE_OPTION_FLAGS 0x00000032
3398#define FILE_VALID_MAILSLOT_OPTION_FLAGS 0x00000032
3399#define FILE_VALID_SET_FLAGS 0x00000036
3400
3401#define FILE_SUPERSEDE 0x00000000
3402#define FILE_OPEN 0x00000001
3403#define FILE_CREATE 0x00000002
3404#define FILE_OPEN_IF 0x00000003
3405#define FILE_OVERWRITE 0x00000004
3406#define FILE_OVERWRITE_IF 0x00000005
3407#define FILE_MAXIMUM_DISPOSITION 0x00000005
3408
3409#define FILE_DIRECTORY_FILE 0x00000001
3410#define FILE_WRITE_THROUGH 0x00000002
3411#define FILE_SEQUENTIAL_ONLY 0x00000004
3412#define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008
3413#define FILE_SYNCHRONOUS_IO_ALERT 0x00000010
3414#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
3415#define FILE_NON_DIRECTORY_FILE 0x00000040
3416#define FILE_CREATE_TREE_CONNECTION 0x00000080
3417#define FILE_COMPLETE_IF_OPLOCKED 0x00000100
3418#define FILE_NO_EA_KNOWLEDGE 0x00000200
3419#define FILE_OPEN_REMOTE_INSTANCE 0x00000400
3420#define FILE_RANDOM_ACCESS 0x00000800
3421#define FILE_DELETE_ON_CLOSE 0x00001000
3422#define FILE_OPEN_BY_FILE_ID 0x00002000
3423#define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000
3424#define FILE_NO_COMPRESSION 0x00008000
3425#if (NTDDI_VERSION >= NTDDI_WIN7)
3426#define FILE_OPEN_REQUIRING_OPLOCK 0x00010000
3427#define FILE_DISALLOW_EXCLUSIVE 0x00020000
3428#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
3429#define FILE_RESERVE_OPFILTER 0x00100000
3430#define FILE_OPEN_REPARSE_POINT 0x00200000
3431#define FILE_OPEN_NO_RECALL 0x00400000
3432#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000
3433
3436#define FILE_ANY_ACCESS 0x00000000
3437#define FILE_SPECIAL_ACCESS FILE_ANY_ACCESS
3438#define FILE_READ_ACCESS 0x00000001
3439#define FILE_WRITE_ACCESS 0x00000002
3440
3442$if (_WDMDDK_)
3443#define FILE_ALL_ACCESS \
3444 (STANDARD_RIGHTS_REQUIRED | \
3445 SYNCHRONIZE | \
3446 0x1FF)
3447
3448#define FILE_GENERIC_EXECUTE \
3449 (STANDARD_RIGHTS_EXECUTE | \
3450 FILE_READ_ATTRIBUTES | \
3451 FILE_EXECUTE | \
3452 SYNCHRONIZE)
3453
3454#define FILE_GENERIC_READ \
3455 (STANDARD_RIGHTS_READ | \
3456 FILE_READ_DATA | \
3457 FILE_READ_ATTRIBUTES | \
3458 FILE_READ_EA | \
3459 SYNCHRONIZE)
3460
3461#define FILE_GENERIC_WRITE \
3462 (STANDARD_RIGHTS_WRITE | \
3463 FILE_WRITE_DATA | \
3464 FILE_WRITE_ATTRIBUTES | \
3465 FILE_WRITE_EA | \
3466 FILE_APPEND_DATA | \
3467 SYNCHRONIZE)
3468
3469/* end winnt.h */
3470
3471#define WMIREG_ACTION_REGISTER 1
3472#define WMIREG_ACTION_DEREGISTER 2
3473#define WMIREG_ACTION_REREGISTER 3
3474#define WMIREG_ACTION_UPDATE_GUIDS 4
3475#define WMIREG_ACTION_BLOCK_IRPS 5
3476
3477#define WMIREGISTER 0
3478#define WMIUPDATE 1
3479
3482typedef VOID
3483(NTAPI FWMI_NOTIFICATION_CALLBACK)(
3484 PVOID Wnode,
3485 PVOID Context);
3486typedef FWMI_NOTIFICATION_CALLBACK *WMI_NOTIFICATION_CALLBACK;
3487
3488#ifndef _PCI_X_
3489#define _PCI_X_
3490
3491typedef struct _PCI_SLOT_NUMBER {
3492 union {
3493 struct {
3499 } u;
3501
3502#define PCI_TYPE0_ADDRESSES 6
3503#define PCI_TYPE1_ADDRESSES 2
3504#define PCI_TYPE2_ADDRESSES 5
3505
3506/* While MS WDK uses inheritance in C++, we cannot do this with gcc, as
3507 inheritance, even from a struct renders the type non-POD. So we use
3508 this hack */
3509#define PCI_COMMON_HEADER_LAYOUT \
3510 USHORT VendorID; \
3511 USHORT DeviceID; \
3512 USHORT Command; \
3513 USHORT Status; \
3514 UCHAR RevisionID; \
3515 UCHAR ProgIf; \
3516 UCHAR SubClass; \
3517 UCHAR BaseClass; \
3518 UCHAR CacheLineSize; \
3519 UCHAR LatencyTimer; \
3520 UCHAR HeaderType; \
3521 UCHAR BIST; \
3522 union { \
3523 struct _PCI_HEADER_TYPE_0 { \
3524 ULONG BaseAddresses[PCI_TYPE0_ADDRESSES]; \
3525 ULONG CIS; \
3526 USHORT SubVendorID; \
3527 USHORT SubSystemID; \
3528 ULONG ROMBaseAddress; \
3529 UCHAR CapabilitiesPtr; \
3530 UCHAR Reserved1[3]; \
3531 ULONG Reserved2; \
3532 UCHAR InterruptLine; \
3533 UCHAR InterruptPin; \
3534 UCHAR MinimumGrant; \
3535 UCHAR MaximumLatency; \
3536 } type0; \
3537 struct _PCI_HEADER_TYPE_1 { \
3538 ULONG BaseAddresses[PCI_TYPE1_ADDRESSES]; \
3539 UCHAR PrimaryBus; \
3540 UCHAR SecondaryBus; \
3541 UCHAR SubordinateBus; \
3542 UCHAR SecondaryLatency; \
3543 UCHAR IOBase; \
3544 UCHAR IOLimit; \
3545 USHORT SecondaryStatus; \
3546 USHORT MemoryBase; \
3547 USHORT MemoryLimit; \
3548 USHORT PrefetchBase; \
3549 USHORT PrefetchLimit; \
3550 ULONG PrefetchBaseUpper32; \
3551 ULONG PrefetchLimitUpper32; \
3552 USHORT IOBaseUpper16; \
3553 USHORT IOLimitUpper16; \
3554 UCHAR CapabilitiesPtr; \
3555 UCHAR Reserved1[3]; \
3556 ULONG ROMBaseAddress; \
3557 UCHAR InterruptLine; \
3558 UCHAR InterruptPin; \
3559 USHORT BridgeControl; \
3560 } type1; \
3561 struct _PCI_HEADER_TYPE_2 { \
3562 ULONG SocketRegistersBaseAddress; \
3563 UCHAR CapabilitiesPtr; \
3564 UCHAR Reserved; \
3565 USHORT SecondaryStatus; \
3566 UCHAR PrimaryBus; \
3567 UCHAR SecondaryBus; \
3568 UCHAR SubordinateBus; \
3569 UCHAR SecondaryLatency; \
3570 struct { \
3571 ULONG Base; \
3572 ULONG Limit; \
3573 } Range[PCI_TYPE2_ADDRESSES-1]; \
3574 UCHAR InterruptLine; \
3575 UCHAR InterruptPin; \
3576 USHORT BridgeControl; \
3577 } type2; \
3578 } u;
3579
3580typedef struct _PCI_COMMON_HEADER {
3583
3584#ifdef __cplusplus
3585typedef struct _PCI_COMMON_CONFIG {
3587 UCHAR DeviceSpecific[192];
3589#else
3590typedef struct _PCI_COMMON_CONFIG {
3592 UCHAR DeviceSpecific[192];
3594#endif
3595
3596#define PCI_COMMON_HDR_LENGTH (FIELD_OFFSET(PCI_COMMON_CONFIG, DeviceSpecific))
3597
3598#define PCI_EXTENDED_CONFIG_LENGTH 0x1000
3599
3600#define PCI_MAX_DEVICES 32
3601#define PCI_MAX_FUNCTION 8
3602#define PCI_MAX_BRIDGE_NUMBER 0xFF
3603#define PCI_INVALID_VENDORID 0xFFFF
3604
3605/* PCI_COMMON_CONFIG.HeaderType */
3606#define PCI_MULTIFUNCTION 0x80
3607#define PCI_DEVICE_TYPE 0x00
3608#define PCI_BRIDGE_TYPE 0x01
3609#define PCI_CARDBUS_BRIDGE_TYPE 0x02
3610
3611#define PCI_CONFIGURATION_TYPE(PciData) \
3612 (((PPCI_COMMON_CONFIG) (PciData))->HeaderType & ~PCI_MULTIFUNCTION)
3613
3614#define PCI_MULTIFUNCTION_DEVICE(PciData) \
3615 ((((PPCI_COMMON_CONFIG) (PciData))->HeaderType & PCI_MULTIFUNCTION) != 0)
3616
3617/* PCI_COMMON_CONFIG.Command */
3618#define PCI_ENABLE_IO_SPACE 0x0001
3619#define PCI_ENABLE_MEMORY_SPACE 0x0002
3620#define PCI_ENABLE_BUS_MASTER 0x0004
3621#define PCI_ENABLE_SPECIAL_CYCLES 0x0008
3622#define PCI_ENABLE_WRITE_AND_INVALIDATE 0x0010
3623#define PCI_ENABLE_VGA_COMPATIBLE_PALETTE 0x0020
3624#define PCI_ENABLE_PARITY 0x0040
3625#define PCI_ENABLE_WAIT_CYCLE 0x0080
3626#define PCI_ENABLE_SERR 0x0100
3627#define PCI_ENABLE_FAST_BACK_TO_BACK 0x0200
3628#define PCI_DISABLE_LEVEL_INTERRUPT 0x0400
3629
3630/* PCI_COMMON_CONFIG.Status */
3631#define PCI_STATUS_INTERRUPT_PENDING 0x0008
3632#define PCI_STATUS_CAPABILITIES_LIST 0x0010
3633#define PCI_STATUS_66MHZ_CAPABLE 0x0020
3634#define PCI_STATUS_UDF_SUPPORTED 0x0040
3635#define PCI_STATUS_FAST_BACK_TO_BACK 0x0080
3636#define PCI_STATUS_DATA_PARITY_DETECTED 0x0100
3637#define PCI_STATUS_DEVSEL 0x0600
3638#define PCI_STATUS_SIGNALED_TARGET_ABORT 0x0800
3639#define PCI_STATUS_RECEIVED_TARGET_ABORT 0x1000
3640#define PCI_STATUS_RECEIVED_MASTER_ABORT 0x2000
3641#define PCI_STATUS_SIGNALED_SYSTEM_ERROR 0x4000
3642#define PCI_STATUS_DETECTED_PARITY_ERROR 0x8000
3643
3644/* IO_STACK_LOCATION.Parameters.ReadWriteControl.WhichSpace */
3645
3646#define PCI_WHICHSPACE_CONFIG 0x0
3647#define PCI_WHICHSPACE_ROM 0x52696350 /* 'PciR' */
3648
3649#define PCI_CAPABILITY_ID_POWER_MANAGEMENT 0x01
3650#define PCI_CAPABILITY_ID_AGP 0x02
3651#define PCI_CAPABILITY_ID_VPD 0x03
3652#define PCI_CAPABILITY_ID_SLOT_ID 0x04
3653#define PCI_CAPABILITY_ID_MSI 0x05
3654#define PCI_CAPABILITY_ID_CPCI_HOTSWAP 0x06
3655#define PCI_CAPABILITY_ID_PCIX 0x07
3656#define PCI_CAPABILITY_ID_HYPERTRANSPORT 0x08
3657#define PCI_CAPABILITY_ID_VENDOR_SPECIFIC 0x09
3658#define PCI_CAPABILITY_ID_DEBUG_PORT 0x0A
3659#define PCI_CAPABILITY_ID_CPCI_RES_CTRL 0x0B
3660#define PCI_CAPABILITY_ID_SHPC 0x0C
3661#define PCI_CAPABILITY_ID_P2P_SSID 0x0D
3662#define PCI_CAPABILITY_ID_AGP_TARGET 0x0E
3663#define PCI_CAPABILITY_ID_SECURE 0x0F
3664#define PCI_CAPABILITY_ID_PCI_EXPRESS 0x10
3665#define PCI_CAPABILITY_ID_MSIX 0x11
3666
3671
3672typedef struct _PCI_PMC {
3687 } Support;
3689
3690typedef struct _PCI_PMCSR {
3698
3699typedef struct _PCI_PMCSR_BSE {
3704
3705typedef struct _PCI_PM_CAPABILITY {
3707 union {
3710 } PMC;
3711 union {
3713 USHORT AsUSHORT;
3714 } PMCSR;
3715 union {
3718 } PMCSR_BSE;
3721
3722typedef struct {
3724 union {
3725 struct {
3734 union {
3735 struct {
3754
3755#define PCI_EXPRESS_ADVANCED_ERROR_REPORTING_CAP_ID 0x0001
3756#define PCI_EXPRESS_VIRTUAL_CHANNEL_CAP_ID 0x0002
3757#define PCI_EXPRESS_DEVICE_SERIAL_NUMBER_CAP_ID 0x0003
3758#define PCI_EXPRESS_POWER_BUDGETING_CAP_ID 0x0004
3759#define PCI_EXPRESS_RC_LINK_DECLARATION_CAP_ID 0x0005
3760#define PCI_EXPRESS_RC_INTERNAL_LINK_CONTROL_CAP_ID 0x0006
3761#define PCI_EXPRESS_RC_EVENT_COLLECTOR_ENDPOINT_ASSOCIATION_CAP_ID 0x0007
3762#define PCI_EXPRESS_MFVC_CAP_ID 0x0008
3763#define PCI_EXPRESS_VC_AND_MFVC_CAP_ID 0x0009
3764#define PCI_EXPRESS_RCRB_HEADER_CAP_ID 0x000A
3765#define PCI_EXPRESS_SINGLE_ROOT_IO_VIRTUALIZATION_CAP_ID 0x0010
3766
3772
3778
3780 _ANONYMOUS_STRUCT struct {
3799
3801 _ANONYMOUS_STRUCT struct {
3820
3822 _ANONYMOUS_STRUCT struct {
3841
3843 _ANONYMOUS_STRUCT struct {
3856
3858 _ANONYMOUS_STRUCT struct {
3871
3873 _ANONYMOUS_STRUCT struct {
3883
3885 _ANONYMOUS_STRUCT struct {
3893
3895 _ANONYMOUS_STRUCT struct {
3908
3910 _ANONYMOUS_STRUCT struct {
3920
3922 _ANONYMOUS_STRUCT struct {
3941
3943 _ANONYMOUS_STRUCT struct {
3962
3964 _ANONYMOUS_STRUCT struct {
3983
3985 _ANONYMOUS_STRUCT struct {
3991
3992#define ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING 0x00000001
3993#define ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING 0x00000002
3994#define ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING 0x00000004
3995
3996#define ROOT_CMD_ERROR_REPORTING_ENABLE_MASK \
3997 (ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING | \
3998 ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING | \
3999 ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING)
4000
4009 ULONG HeaderLog[4];
4014 ULONG SecHeaderLog[4];
4016
4025 ULONG HeaderLog[4];
4030
4039 ULONG HeaderLog[4];
4044 ULONG SecHeaderLog[4];
4046
4048 _ANONYMOUS_STRUCT struct {
4055
4057 _ANONYMOUS_STRUCT struct {
4067
4069 _ANONYMOUS_STRUCT struct {
4075
4077 _ANONYMOUS_STRUCT struct {
4083
4103
4104/* PCI device classes */
4105#define PCI_CLASS_PRE_20 0x00
4106#define PCI_CLASS_MASS_STORAGE_CTLR 0x01
4107#define PCI_CLASS_NETWORK_CTLR 0x02
4108#define PCI_CLASS_DISPLAY_CTLR 0x03
4109#define PCI_CLASS_MULTIMEDIA_DEV 0x04
4110#define PCI_CLASS_MEMORY_CTLR 0x05
4111#define PCI_CLASS_BRIDGE_DEV 0x06
4112#define PCI_CLASS_SIMPLE_COMMS_CTLR 0x07
4113#define PCI_CLASS_BASE_SYSTEM_DEV 0x08
4114#define PCI_CLASS_INPUT_DEV 0x09
4115#define PCI_CLASS_DOCKING_STATION 0x0a
4116#define PCI_CLASS_PROCESSOR 0x0b
4117#define PCI_CLASS_SERIAL_BUS_CTLR 0x0c
4118#define PCI_CLASS_WIRELESS_CTLR 0x0d
4119#define PCI_CLASS_INTELLIGENT_IO_CTLR 0x0e
4120#define PCI_CLASS_SATELLITE_COMMS_CTLR 0x0f
4121#define PCI_CLASS_ENCRYPTION_DECRYPTION 0x10
4122#define PCI_CLASS_DATA_ACQ_SIGNAL_PROC 0x11
4123#define PCI_CLASS_NOT_DEFINED 0xff
4124
4125/* PCI device subclasses for class 0 */
4126#define PCI_SUBCLASS_PRE_20_NON_VGA 0x00
4127#define PCI_SUBCLASS_PRE_20_VGA 0x01
4128
4129/* PCI device subclasses for class 1 (mass storage controllers)*/
4130#define PCI_SUBCLASS_MSC_SCSI_BUS_CTLR 0x00
4131#define PCI_SUBCLASS_MSC_IDE_CTLR 0x01
4132#define PCI_SUBCLASS_MSC_FLOPPY_CTLR 0x02
4133#define PCI_SUBCLASS_MSC_IPI_CTLR 0x03
4134#define PCI_SUBCLASS_MSC_RAID_CTLR 0x04
4135#define PCI_SUBCLASS_MSC_AHCI_CTLR 0x06
4136#define PCI_SUBCLASS_MSC_OTHER 0x80
4137
4138/* PCI device subclasses for class 2 (network controllers)*/
4139#define PCI_SUBCLASS_NET_ETHERNET_CTLR 0x00
4140#define PCI_SUBCLASS_NET_TOKEN_RING_CTLR 0x01
4141#define PCI_SUBCLASS_NET_FDDI_CTLR 0x02
4142#define PCI_SUBCLASS_NET_ATM_CTLR 0x03
4143#define PCI_SUBCLASS_NET_ISDN_CTLR 0x04
4144#define PCI_SUBCLASS_NET_OTHER 0x80
4145
4146/* PCI device subclasses for class 3 (display controllers)*/
4147#define PCI_SUBCLASS_VID_VGA_CTLR 0x00
4148#define PCI_SUBCLASS_VID_XGA_CTLR 0x01
4149#define PCI_SUBCLASS_VID_3D_CTLR 0x02
4150#define PCI_SUBCLASS_VID_OTHER 0x80
4151
4152/* PCI device subclasses for class 4 (multimedia device)*/
4153#define PCI_SUBCLASS_MM_VIDEO_DEV 0x00
4154#define PCI_SUBCLASS_MM_AUDIO_DEV 0x01
4155#define PCI_SUBCLASS_MM_TELEPHONY_DEV 0x02
4156#define PCI_SUBCLASS_MM_OTHER 0x80
4157
4158/* PCI device subclasses for class 5 (memory controller)*/
4159#define PCI_SUBCLASS_MEM_RAM 0x00
4160#define PCI_SUBCLASS_MEM_FLASH 0x01
4161#define PCI_SUBCLASS_MEM_OTHER 0x80
4162
4163/* PCI device subclasses for class 6 (bridge device)*/
4164#define PCI_SUBCLASS_BR_HOST 0x00
4165#define PCI_SUBCLASS_BR_ISA 0x01
4166#define PCI_SUBCLASS_BR_EISA 0x02
4167#define PCI_SUBCLASS_BR_MCA 0x03
4168#define PCI_SUBCLASS_BR_PCI_TO_PCI 0x04
4169#define PCI_SUBCLASS_BR_PCMCIA 0x05
4170#define PCI_SUBCLASS_BR_NUBUS 0x06
4171#define PCI_SUBCLASS_BR_CARDBUS 0x07
4172#define PCI_SUBCLASS_BR_RACEWAY 0x08
4173#define PCI_SUBCLASS_BR_OTHER 0x80
4174
4175#define PCI_SUBCLASS_COM_SERIAL 0x00
4176#define PCI_SUBCLASS_COM_PARALLEL 0x01
4177#define PCI_SUBCLASS_COM_MULTIPORT 0x02
4178#define PCI_SUBCLASS_COM_MODEM 0x03
4179#define PCI_SUBCLASS_COM_OTHER 0x80
4180
4181#define PCI_SUBCLASS_SYS_INTERRUPT_CTLR 0x00
4182#define PCI_SUBCLASS_SYS_DMA_CTLR 0x01
4183#define PCI_SUBCLASS_SYS_SYSTEM_TIMER 0x02
4184#define PCI_SUBCLASS_SYS_REAL_TIME_CLOCK 0x03
4185#define PCI_SUBCLASS_SYS_GEN_HOTPLUG_CTLR 0x04
4186#define PCI_SUBCLASS_SYS_SDIO_CTRL 0x05
4187#define PCI_SUBCLASS_SYS_OTHER 0x80
4188
4189#define PCI_SUBCLASS_INP_KEYBOARD 0x00
4190#define PCI_SUBCLASS_INP_DIGITIZER 0x01
4191#define PCI_SUBCLASS_INP_MOUSE 0x02
4192#define PCI_SUBCLASS_INP_SCANNER 0x03
4193#define PCI_SUBCLASS_INP_GAMEPORT 0x04
4194#define PCI_SUBCLASS_INP_OTHER 0x80
4195
4196#define PCI_SUBCLASS_DOC_GENERIC 0x00
4197#define PCI_SUBCLASS_DOC_OTHER 0x80
4198
4199#define PCI_SUBCLASS_PROC_386 0x00
4200#define PCI_SUBCLASS_PROC_486 0x01
4201#define PCI_SUBCLASS_PROC_PENTIUM 0x02
4202#define PCI_SUBCLASS_PROC_ALPHA 0x10
4203#define PCI_SUBCLASS_PROC_POWERPC 0x20
4204#define PCI_SUBCLASS_PROC_COPROCESSOR 0x40
4205
4206/* PCI device subclasses for class C (serial bus controller)*/
4207#define PCI_SUBCLASS_SB_IEEE1394 0x00
4208#define PCI_SUBCLASS_SB_ACCESS 0x01
4209#define PCI_SUBCLASS_SB_SSA 0x02
4210#define PCI_SUBCLASS_SB_USB 0x03
4211#define PCI_SUBCLASS_SB_FIBRE_CHANNEL 0x04
4212#define PCI_SUBCLASS_SB_SMBUS 0x05
4213
4214#define PCI_SUBCLASS_WIRELESS_IRDA 0x00
4215#define PCI_SUBCLASS_WIRELESS_CON_IR 0x01
4216#define PCI_SUBCLASS_WIRELESS_RF 0x10
4217#define PCI_SUBCLASS_WIRELESS_OTHER 0x80
4218
4219#define PCI_SUBCLASS_INTIO_I2O 0x00
4220
4221#define PCI_SUBCLASS_SAT_TV 0x01
4222#define PCI_SUBCLASS_SAT_AUDIO 0x02
4223#define PCI_SUBCLASS_SAT_VOICE 0x03
4224#define PCI_SUBCLASS_SAT_DATA 0x04
4225
4226#define PCI_SUBCLASS_CRYPTO_NET_COMP 0x00
4227#define PCI_SUBCLASS_CRYPTO_ENTERTAINMENT 0x10
4228#define PCI_SUBCLASS_CRYPTO_OTHER 0x80
4229
4230#define PCI_SUBCLASS_DASP_DPIO 0x00
4231#define PCI_SUBCLASS_DASP_OTHER 0x80
4232
4233#define PCI_ADDRESS_IO_SPACE 0x00000001
4234#define PCI_ADDRESS_MEMORY_TYPE_MASK 0x00000006
4235#define PCI_ADDRESS_MEMORY_PREFETCHABLE 0x00000008
4236#define PCI_ADDRESS_IO_ADDRESS_MASK 0xfffffffc
4237#define PCI_ADDRESS_MEMORY_ADDRESS_MASK 0xfffffff0
4238#define PCI_ADDRESS_ROM_ADDRESS_MASK 0xfffff800
4239
4240#define PCI_TYPE_32BIT 0
4241#define PCI_TYPE_20BIT 2
4242#define PCI_TYPE_64BIT 4
4243
4244#define PCI_ROMADDRESS_ENABLED 0x00000001
4245
4246#endif /* _PCI_X_ */
4247
4248#define PCI_EXPRESS_LINK_QUIESCENT_INTERFACE_VERSION 1
4249
4252typedef NTSTATUS
4253(NTAPI PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE)(
4255typedef PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE *PPCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE;
4256
4259typedef NTSTATUS
4260(NTAPI PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE)(
4262typedef PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE *PPCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE;
4263
4273
4274#define PCI_EXPRESS_ROOT_PORT_INTERFACE_VERSION 1
4275
4276typedef ULONG
4281 _In_ ULONG Length);
4282
4283typedef ULONG
4288 _In_ ULONG Length);
4289
4299
4300#define PCI_MSIX_TABLE_CONFIG_INTERFACE_VERSION 1
4301
4303typedef NTSTATUS
4304(NTAPI PCI_MSIX_SET_ENTRY)(
4308typedef PCI_MSIX_SET_ENTRY *PPCI_MSIX_SET_ENTRY;
4309
4311typedef NTSTATUS
4312(NTAPI PCI_MSIX_MASKUNMASK_ENTRY)(
4315typedef PCI_MSIX_MASKUNMASK_ENTRY *PPCI_MSIX_MASKUNMASK_ENTRY;
4316
4318typedef NTSTATUS
4319(NTAPI PCI_MSIX_GET_ENTRY)(
4324typedef PCI_MSIX_GET_ENTRY *PPCI_MSIX_GET_ENTRY;
4325
4327typedef NTSTATUS
4328(NTAPI PCI_MSIX_GET_TABLE_SIZE)(
4331typedef PCI_MSIX_GET_TABLE_SIZE *PPCI_MSIX_GET_TABLE_SIZE;
4332
4345
4346#define PCI_MSIX_TABLE_CONFIG_MINIMUM_SIZE \
4347 RTL_SIZEOF_THROUGH_FIELD(PCI_MSIX_TABLE_CONFIG_INTERFACE, UnmaskTableEntry)
4348
4350$if (_NTDDK_)
4351#ifndef _ARC_DDK_
4352#define _ARC_DDK_
4353typedef enum _CONFIGURATION_TYPE {
4354 ArcSystem,
4363 TcAdapter,
4365 DtiAdapter,
4397#endif /* !_ARC_DDK_ */
4398
4399/*
4400** IRP function codes
4401*/
4402
4403#define IRP_MN_QUERY_DIRECTORY 0x01
4404#define IRP_MN_NOTIFY_CHANGE_DIRECTORY 0x02
4405
4406#define IRP_MN_USER_FS_REQUEST 0x00
4407#define IRP_MN_MOUNT_VOLUME 0x01
4408#define IRP_MN_VERIFY_VOLUME 0x02
4409#define IRP_MN_LOAD_FILE_SYSTEM 0x03
4410#define IRP_MN_TRACK_LINK 0x04
4411#define IRP_MN_KERNEL_CALL 0x04
4412
4413#define IRP_MN_LOCK 0x01
4414#define IRP_MN_UNLOCK_SINGLE 0x02
4415#define IRP_MN_UNLOCK_ALL 0x03
4416#define IRP_MN_UNLOCK_ALL_BY_KEY 0x04
4417
4418#define IRP_MN_FLUSH_AND_PURGE 0x01
4419
4420#define IRP_MN_NORMAL 0x00
4421#define IRP_MN_DPC 0x01
4422#define IRP_MN_MDL 0x02
4423#define IRP_MN_COMPLETE 0x04
4424#define IRP_MN_COMPRESSED 0x08
4425
4426#define IRP_MN_MDL_DPC (IRP_MN_MDL | IRP_MN_DPC)
4427#define IRP_MN_COMPLETE_MDL (IRP_MN_COMPLETE | IRP_MN_MDL)
4428#define IRP_MN_COMPLETE_MDL_DPC (IRP_MN_COMPLETE_MDL | IRP_MN_DPC)
4429
4430#define IRP_MN_QUERY_LEGACY_BUS_INFORMATION 0x18
4431
4432#define IO_CHECK_CREATE_PARAMETERS 0x0200
4433#define IO_ATTACH_DEVICE 0x0400
4434#define IO_IGNORE_SHARE_ACCESS_CHECK 0x0800
4435
4439 _In_ PUNICODE_STRING PathName,
4443 _In_ CONFIGURATION_TYPE ControllerType,
4444 _In_ ULONG ControllerNumber,
4445 _In_ PKEY_VALUE_FULL_INFORMATION *ControllerInformation,
4446 _In_ CONFIGURATION_TYPE PeripheralType,
4447 _In_ ULONG PeripheralNumber,
4448 _In_ PKEY_VALUE_FULL_INFORMATION *PeripheralInformation);
4449
4456
4457typedef VOID
4461 _In_ ULONG Count);
4462
4463typedef struct _CONTROLLER_OBJECT {
4471
4472#define DRVO_REINIT_REGISTERED 0x00000008
4473#define DRVO_INITIALIZED 0x00000010
4474#define DRVO_BOOTREINIT_REGISTERED 0x00000020
4475#define DRVO_LEGACY_RESOURCES 0x00000040
4476
4490
4491typedef struct _DISK_SIGNATURE {
4493 _ANONYMOUS_UNION union {
4494 struct {
4497 } Mbr;
4498 struct {
4500 } Gpt;
4503
4504typedef struct _TXN_PARAMETER_BLOCK {
4509
4510#define TXF_MINIVERSION_DEFAULT_VIEW (0xFFFE)
4511
4518
4529
4532typedef NTSTATUS
4533(NTAPI *PGET_LOCATION_STRING)(
4535 _Outptr_
4537 _When_(return == 0, __drv_allocatesMem(Mem)))
4539
4546 PGET_LOCATION_STRING GetLocationString;
4548
4549typedef enum _ARBITER_ACTION {
4561
4567
4573
4579
4583
4587
4594
4598
4602
4603typedef struct _ARBITER_PARAMETERS {
4604 union {
4614
4623
4624typedef enum _ARBITER_RESULT {
4630
4631#define ARBITER_FLAG_BOOT_CONFIG 0x00000001
4632
4633typedef struct _ARBITER_LIST_ENTRY {
4648
4654
4655#define ARBITER_PARTIAL 0x00000001
4656
4657typedef struct _ARBITER_INTERFACE {
4666
4671
4677 _In_opt_ ULONG AlternativesCount,
4678 _In_reads_opt_(AlternativesCount) IO_RESOURCE_DESCRIPTOR Alternatives[],
4681
4687 _Out_ PULONG TargetCount,
4689
4699
4700typedef struct _PCI_AGP_CAPABILITY {
4720 } AGPStatus;
4734 } AGPCommand;
4736
4746
4755
4756typedef struct _PCI_AGP_CONTROL {
4763
4769
4775
4785
4786#define PCI_AGP_RATE_1X 0x1
4787#define PCI_AGP_RATE_2X 0x2
4788#define PCI_AGP_RATE_4X 0x4
4789
4790#define PCIX_MODE_CONVENTIONAL_PCI 0x0
4791#define PCIX_MODE1_66MHZ 0x1
4792#define PCIX_MODE1_100MHZ 0x2
4793#define PCIX_MODE1_133MHZ 0x3
4794#define PCIX_MODE2_266_66MHZ 0x9
4795#define PCIX_MODE2_266_100MHZ 0xA
4796#define PCIX_MODE2_266_133MHZ 0xB
4797#define PCIX_MODE2_533_66MHZ 0xD
4798#define PCIX_MODE2_533_100MHZ 0xE
4799#define PCIX_MODE2_533_133MHZ 0xF
4800
4801#define PCIX_VERSION_MODE1_ONLY 0x0
4802#define PCIX_VERSION_MODE2_ECC 0x1
4803#define PCIX_VERSION_DUAL_MODE_ECC 0x2
4804
4807 union {
4808 _ANONYMOUS_STRUCT struct {
4822 } SecondaryStatus;
4823 union {
4824 _ANONYMOUS_STRUCT struct {
4840 } BridgeStatus;
4845 union {
4846 _ANONYMOUS_STRUCT struct {
4858 ULONG Rsvd:1;
4862 ULONG AsULONG;
4863 } EccControlStatus;
4868
4875
4876#define OSC_FIRMWARE_FAILURE 0x02
4877#define OSC_UNRECOGNIZED_UUID 0x04
4878#define OSC_UNRECOGNIZED_REVISION 0x08
4879#define OSC_CAPABILITIES_MASKED 0x10
4880
4881#define PCI_ROOT_BUS_OSC_METHOD_CAPABILITY_REVISION 0x01
4882
4884 union {
4885 _ANONYMOUS_STRUCT struct {
4895 } u;
4897
4899 union {
4900 _ANONYMOUS_STRUCT struct {
4909 } u;
4911
4918
4919typedef enum {
4923
4926 _ANONYMOUS_STRUCT struct {
4937
4939 _ANONYMOUS_STRUCT struct {
4948
4950 _ANONYMOUS_STRUCT struct {
4965
4966#define PCI_EXPRESS_AER_DEVICE_CONTROL_MASK 0x07;
4967
4969 _ANONYMOUS_STRUCT struct {
4985
4986#define PCI_EXPRESS_AER_DEVICE_STATUS_MASK 0x0F;
4987
4989 _ANONYMOUS_STRUCT struct {
5000
5002 _ANONYMOUS_STRUCT struct {
5016
5018 _ANONYMOUS_STRUCT struct {
5031
5033 _ANONYMOUS_STRUCT struct {
5044
5046 _ANONYMOUS_STRUCT struct {
5062
5064 _ANONYMOUS_STRUCT struct {
5080
5082 _ANONYMOUS_STRUCT struct {
5096
5098 _ANONYMOUS_STRUCT struct {
5108
5110 _ANONYMOUS_STRUCT struct {
5116
5118 _ANONYMOUS_STRUCT struct {
5126
5143
5144typedef enum {
5146 MRLOpen
5148
5149typedef enum {
5153
5154typedef enum {
5159
5160typedef enum {
5162 PowerOff
5164
5165typedef enum {
5169
5170typedef enum {
5176
5177typedef enum {
5187
5188typedef enum {
5198
5199typedef enum {
5210
5211typedef enum {
5219
5221 _ANONYMOUS_STRUCT struct {
5228
5236
5240 union {
5243 struct {
5246 } Range;
5247 } u;
5249
5254
5255typedef VOID
5257 _In_ struct _BUS_HANDLER *BusHandler,
5258 _In_ struct _BUS_HANDLER *RootHandler,
5260 _In_ PPCI_COMMON_CONFIG PciData);
5261
5262typedef VOID
5264 _In_ struct _BUS_HANDLER *BusHandler,
5265 _In_ struct _BUS_HANDLER *RootHandler,
5267 _In_ PPCI_COMMON_CONFIG PciNewData,
5268 _In_ PPCI_COMMON_CONFIG PciOldData);
5269
5270typedef VOID
5272 _In_ struct _BUS_HANDLER *BusHandler,
5273 _In_ PCI_SLOT_NUMBER Slot,
5276 _In_ ULONG Length);
5277
5278#define PCI_DATA_TAG ' ICP'
5279#define PCI_DATA_VERSION 1
5280
5281typedef struct _PCIBUSDATA {
5291
5292#ifndef _PCIINTRF_X_
5293#define _PCIINTRF_X_
5294
5295typedef ULONG
5298 _In_ ULONG BusOffset,
5299 _In_ ULONG Slot,
5302 _In_ ULONG Length);
5303
5304typedef VOID
5307 _In_ PPCI_COMMON_CONFIG PciData);
5308
5309typedef VOID
5312 _In_ PPCI_COMMON_CONFIG PciNewData,
5313 _In_ PPCI_COMMON_CONFIG PciOldData);
5314
5315typedef VOID
5318 _Out_ PPCI_ROOT_BUS_HARDWARE_CAPABILITY HardwareCapability);
5319
5320typedef VOID
5323 _In_ BOOLEAN EnableWake);
5324
5338
5339#define PCI_BUS_INTERFACE_STANDARD_VERSION 1
5340
5341#endif /* _PCIINTRF_X_ */
5342
5343#if (NTDDI_VERSION >= NTDDI_WIN7)
5344
5345#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX 0x00004000
5346#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX 0x00008000
5347#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX \
5348 (FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX | \
5349 FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX)
5350
5351#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_DEPRECATED 0x00000200
5352#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_DEPRECATED 0x00000300
5353#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_DEPRECATED 0x00000300
5354
5355#else
5356
5357#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL 0x00000200
5358#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL 0x00000300
5359#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK 0x00000300
5360
5361#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL
5362#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL
5363#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK
5364
5365#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
5366
5367#define FILE_CHARACTERISTICS_PROPAGATED (FILE_REMOVABLE_MEDIA | \
5368 FILE_READ_ONLY_DEVICE | \
5369 FILE_FLOPPY_DISKETTE | \
5370 FILE_WRITE_ONCE_MEDIA | \
5371 FILE_DEVICE_SECURE_OPEN)
5372
5373typedef struct _FILE_ALIGNMENT_INFORMATION {
5376
5377typedef struct _FILE_NAME_INFORMATION {
5379 WCHAR FileName[1];
5381
5382
5383typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION {
5385 ULONG ReparseTag;
5387
5388typedef struct _FILE_DISPOSITION_INFORMATION {
5391
5392typedef struct _FILE_END_OF_FILE_INFORMATION {
5393 LARGE_INTEGER EndOfFile;
5395
5399
5402 WCHAR VolumeLabel[1];
5404
5405typedef struct _FILE_FS_VOLUME_INFORMATION {
5406 LARGE_INTEGER VolumeCreationTime;
5407 ULONG VolumeSerialNumber;
5408 ULONG VolumeLabelLength;
5409 BOOLEAN SupportsObjects;
5410 WCHAR VolumeLabel[1];
5412
5413typedef struct _FILE_FS_SIZE_INFORMATION {
5414 LARGE_INTEGER TotalAllocationUnits;
5415 LARGE_INTEGER AvailableAllocationUnits;
5416 ULONG SectorsPerAllocationUnit;
5417 ULONG BytesPerSector;
5419
5420typedef struct _FILE_FS_FULL_SIZE_INFORMATION {
5421 LARGE_INTEGER TotalAllocationUnits;
5422 LARGE_INTEGER CallerAvailableAllocationUnits;
5423 LARGE_INTEGER ActualAvailableAllocationUnits;
5424 ULONG SectorsPerAllocationUnit;
5425 ULONG BytesPerSector;
5427
5429 UCHAR ObjectId[16];
5430 UCHAR ExtendedInfo[48];
5432
5437
5438#define IOCTL_AVIO_ALLOCATE_STREAM CTL_CODE(FILE_DEVICE_AVIO, 1, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
5439#define IOCTL_AVIO_FREE_STREAM CTL_CODE(FILE_DEVICE_AVIO, 2, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
5440#define IOCTL_AVIO_MODIFY_STREAM CTL_CODE(FILE_DEVICE_AVIO, 3, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
5441
5442typedef enum _BUS_DATA_TYPE {
5458
5459/* Some Server 2003 DDK definitions */
5460#define PCI_INT_ROUTE_INTRF_STANDARD_VER 1
5461
5469
5470typedef struct _ROUTING_TOKEN {
5475
5479 OUT ULONG *Bus,
5480 OUT ULONG *PciSlot,
5481 OUT UCHAR *InterruptLine,
5482 OUT UCHAR *InterruptPin,
5483 OUT UCHAR *ClassCode,
5484 OUT UCHAR *SubClassCode,
5485 OUT PDEVICE_OBJECT *ParentPdo,
5486 OUT ROUTING_TOKEN *RoutingToken,
5487 OUT UCHAR *Flags);
5488
5492 IN PROUTING_TOKEN RoutingToken);
5493
5494typedef VOID
5497 IN UCHAR LineRegister);
5498
5509
5518
5519/* FIXME : These definitions don't exist in public headers */
5520
5521#define PCI_CB_INTRF_VERSION 1
5522#define PCI_PME_INTRF_STANDARD_VER 1
5523#define PNP_LOCATION_INTERFACE_VERSION 1
5524
5525DEFINE_GUID(GUID_PCI_CARDBUS_INTERFACE_PRIVATE, 0xcca82f31, 0x54d6, 0x11d1, 0x82, 0x24, 0x00, 0xa0, 0xc9, 0x32, 0x43, 0x85);
5526DEFINE_GUID(GUID_PCI_PME_INTERFACE, 0xaac7e6ac, 0xbb0b, 0x11d2, 0xb4, 0x84, 0x00, 0xc0, 0x4f, 0x72, 0xde, 0x8b);
5527
5532
5536
5540 IN PIRP Irp);
5541
5542typedef VOID
5545 IN BOOLEAN PmeEnable);
5546
5547typedef VOID
5550
5551typedef VOID
5554 OUT PBOOLEAN PmeCapable,
5555 OUT PBOOLEAN PmeStatus,
5556 OUT PBOOLEAN PmeEnable);
5557
5569
5570typedef struct _PCI_PME_INTERFACE {
5580
5582$if (_NTIFS_)
5583
5584#define FILE_OPLOCK_BROKEN_TO_LEVEL_2 0x00000007
5585#define FILE_OPLOCK_BROKEN_TO_NONE 0x00000008
5586#define FILE_OPBATCH_BREAK_UNDERWAY 0x00000009
5587
5588/* also in winnt.h */
5589#define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001
5590#define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002
5591#define FILE_NOTIFY_CHANGE_NAME 0x00000003
5592#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004
5593#define FILE_NOTIFY_CHANGE_SIZE 0x00000008
5594#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010
5595#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020
5596#define FILE_NOTIFY_CHANGE_CREATION 0x00000040
5597#define FILE_NOTIFY_CHANGE_EA 0x00000080
5598#define FILE_NOTIFY_CHANGE_SECURITY 0x00000100
5599#define FILE_NOTIFY_CHANGE_STREAM_NAME 0x00000200
5600#define FILE_NOTIFY_CHANGE_STREAM_SIZE 0x00000400
5601#define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800
5602#define FILE_NOTIFY_VALID_MASK 0x00000fff
5603
5604#define FILE_ACTION_ADDED 0x00000001
5605#define FILE_ACTION_REMOVED 0x00000002
5606#define FILE_ACTION_MODIFIED 0x00000003
5607#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004
5608#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005
5609#define FILE_ACTION_ADDED_STREAM 0x00000006
5610#define FILE_ACTION_REMOVED_STREAM 0x00000007
5611#define FILE_ACTION_MODIFIED_STREAM 0x00000008
5612#define FILE_ACTION_REMOVED_BY_DELETE 0x00000009
5613#define FILE_ACTION_ID_NOT_TUNNELLED 0x0000000A
5614#define FILE_ACTION_TUNNELLED_ID_COLLISION 0x0000000B
5615/* end winnt.h */
5616
5617#define FILE_PIPE_BYTE_STREAM_TYPE 0x00000000
5618#define FILE_PIPE_MESSAGE_TYPE 0x00000001
5619
5620#define FILE_PIPE_ACCEPT_REMOTE_CLIENTS 0x00000000
5621#define FILE_PIPE_REJECT_REMOTE_CLIENTS 0x00000002
5622
5623#define FILE_PIPE_ACCEPT_REMOTE_CLIENTS 0x00000000
5624#define FILE_PIPE_REJECT_REMOTE_CLIENTS 0x00000002
5625#define FILE_PIPE_TYPE_VALID_MASK 0x00000003
5626
5627#define FILE_PIPE_BYTE_STREAM_MODE 0x00000000
5628#define FILE_PIPE_MESSAGE_MODE 0x00000001
5629
5630#define FILE_PIPE_QUEUE_OPERATION 0x00000000
5631#define FILE_PIPE_COMPLETE_OPERATION 0x00000001
5632
5633#define FILE_PIPE_INBOUND 0x00000000
5634#define FILE_PIPE_OUTBOUND 0x00000001
5635#define FILE_PIPE_FULL_DUPLEX 0x00000002
5636
5637#define FILE_PIPE_DISCONNECTED_STATE 0x00000001
5638#define FILE_PIPE_LISTENING_STATE 0x00000002
5639#define FILE_PIPE_CONNECTED_STATE 0x00000003
5640#define FILE_PIPE_CLOSING_STATE 0x00000004
5641
5642#define FILE_PIPE_CLIENT_END 0x00000000
5643#define FILE_PIPE_SERVER_END 0x00000001
5644
5645#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
5646#define FILE_CASE_PRESERVED_NAMES 0x00000002
5647#define FILE_UNICODE_ON_DISK 0x00000004
5648#define FILE_PERSISTENT_ACLS 0x00000008
5649#define FILE_FILE_COMPRESSION 0x00000010
5650#define FILE_VOLUME_QUOTAS 0x00000020
5651#define FILE_SUPPORTS_SPARSE_FILES 0x00000040
5652#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
5653#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
5654#define FILE_VOLUME_IS_COMPRESSED 0x00008000
5655#define FILE_SUPPORTS_OBJECT_IDS 0x00010000
5656#define FILE_SUPPORTS_ENCRYPTION 0x00020000
5657#define FILE_NAMED_STREAMS 0x00040000
5658#define FILE_READ_ONLY_VOLUME 0x00080000
5659#define FILE_SEQUENTIAL_WRITE_ONCE 0x00100000
5660#define FILE_SUPPORTS_TRANSACTIONS 0x00200000
5661#define FILE_SUPPORTS_HARD_LINKS 0x00400000
5662#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000
5663#define FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000
5664#define FILE_SUPPORTS_USN_JOURNAL 0x02000000
5665#define FILE_SUPPORTS_INTEGRITY_STREAMS 0x04000000
5666#define FILE_SUPPORTS_BLOCK_REFCOUNTING 0x08000000
5667#define FILE_SUPPORTS_SPARSE_VDL 0x10000000
5668#define FILE_DAX_VOLUME 0x20000000
5669
5670#define FILE_NEED_EA 0x00000080
5671
5672#define FILE_EA_TYPE_BINARY 0xfffe
5673#define FILE_EA_TYPE_ASCII 0xfffd
5674#define FILE_EA_TYPE_BITMAP 0xfffb
5675#define FILE_EA_TYPE_METAFILE 0xfffa
5676#define FILE_EA_TYPE_ICON 0xfff9
5677#define FILE_EA_TYPE_EA 0xffee
5678#define FILE_EA_TYPE_MVMT 0xffdf
5679#define FILE_EA_TYPE_MVST 0xffde
5680#define FILE_EA_TYPE_ASN1 0xffdd
5681#define FILE_EA_TYPE_FAMILY_IDS 0xff01
5682
5683typedef struct _FILE_NOTIFY_INFORMATION {
5684 ULONG NextEntryOffset;
5685 ULONG Action;
5687 WCHAR FileName[1];
5689
5690typedef struct _FILE_DIRECTORY_INFORMATION {
5691 ULONG NextEntryOffset;
5692 ULONG FileIndex;
5693 LARGE_INTEGER CreationTime;
5694 LARGE_INTEGER LastAccessTime;
5695 LARGE_INTEGER LastWriteTime;
5696 LARGE_INTEGER ChangeTime;
5697 LARGE_INTEGER EndOfFile;
5701 WCHAR FileName[1];
5703
5718
5734
5735typedef struct _FILE_BOTH_DIR_INFORMATION {
5736 ULONG NextEntryOffset;
5737 ULONG FileIndex;
5738 LARGE_INTEGER CreationTime;
5739 LARGE_INTEGER LastAccessTime;
5740 LARGE_INTEGER LastWriteTime;
5741 LARGE_INTEGER ChangeTime;
5742 LARGE_INTEGER EndOfFile;
5746 ULONG EaSize;
5747 CCHAR ShortNameLength;
5748 WCHAR ShortName[12];
5749 WCHAR FileName[1];
5751
5769
5770typedef struct _FILE_NAMES_INFORMATION {
5771 ULONG NextEntryOffset;
5772 ULONG FileIndex;
5774 WCHAR FileName[1];
5776
5778 ULONG NextEntryOffset;
5779 ULONG FileIndex;
5780 LARGE_INTEGER CreationTime;
5781 LARGE_INTEGER LastAccessTime;
5782 LARGE_INTEGER LastWriteTime;
5783 LARGE_INTEGER ChangeTime;
5784 LARGE_INTEGER EndOfFile;
5788 LARGE_INTEGER FileId;
5789 GUID LockingTransactionId;
5790 ULONG TxInfoFlags;
5791 WCHAR FileName[1];
5793
5794#define FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_WRITELOCKED 0x00000001
5795#define FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_VISIBLE_TO_TX 0x00000002
5796#define FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_VISIBLE_OUTSIDE_TX 0x00000004
5797
5798typedef struct _FILE_OBJECTID_INFORMATION {
5799 LONGLONG FileReference;
5800 UCHAR ObjectId[16];
5801 _ANONYMOUS_UNION union {
5802 _ANONYMOUS_STRUCT struct {
5803 UCHAR BirthVolumeId[16];
5804 UCHAR BirthObjectId[16];
5805 UCHAR DomainId[16];
5807 UCHAR ExtendedInfo[48];
5810
5811#define ANSI_DOS_STAR ('<')
5812#define ANSI_DOS_QM ('>')
5813#define ANSI_DOS_DOT ('"')
5814
5815#define DOS_STAR (L'<')
5816#define DOS_QM (L'>')
5817#define DOS_DOT (L'"')
5818
5819typedef struct _FILE_INTERNAL_INFORMATION {
5820 LARGE_INTEGER IndexNumber;
5822
5823typedef struct _FILE_EA_INFORMATION {
5824 ULONG EaSize;
5826
5827typedef struct _FILE_ACCESS_INFORMATION {
5828 ACCESS_MASK AccessFlags;
5830
5831typedef struct _FILE_MODE_INFORMATION {
5832 ULONG Mode;
5834
5835typedef struct _FILE_ALL_INFORMATION {
5836 FILE_BASIC_INFORMATION BasicInformation;
5837 FILE_STANDARD_INFORMATION StandardInformation;
5838 FILE_INTERNAL_INFORMATION InternalInformation;
5839 FILE_EA_INFORMATION EaInformation;
5840 FILE_ACCESS_INFORMATION AccessInformation;
5841 FILE_POSITION_INFORMATION PositionInformation;
5842 FILE_MODE_INFORMATION ModeInformation;
5843 FILE_ALIGNMENT_INFORMATION AlignmentInformation;
5844 FILE_NAME_INFORMATION NameInformation;
5846
5847typedef struct _FILE_ALLOCATION_INFORMATION {
5850
5859
5860typedef struct _FILE_LINK_INFORMATION {
5861 BOOLEAN ReplaceIfExists;
5864 WCHAR FileName[1];
5866
5873
5874typedef struct _FILE_RENAME_INFORMATION {
5875 BOOLEAN ReplaceIfExists;
5878 WCHAR FileName[1];
5880
5881typedef struct _FILE_STREAM_INFORMATION {
5882 ULONG NextEntryOffset;
5883 ULONG StreamNameLength;
5884 LARGE_INTEGER StreamSize;
5885 LARGE_INTEGER StreamAllocationSize;
5886 WCHAR StreamName[1];
5888
5894
5895typedef struct _FILE_COMPLETION_INFORMATION {
5899
5900typedef struct _FILE_PIPE_INFORMATION {
5901 ULONG ReadMode;
5902 ULONG CompletionMode;
5904
5905typedef struct _FILE_PIPE_LOCAL_INFORMATION {
5906 ULONG NamedPipeType;
5907 ULONG NamedPipeConfiguration;
5908 ULONG MaximumInstances;
5909 ULONG CurrentInstances;
5910 ULONG InboundQuota;
5911 ULONG ReadDataAvailable;
5912 ULONG OutboundQuota;
5913 ULONG WriteQuotaAvailable;
5914 ULONG NamedPipeState;
5915 ULONG NamedPipeEnd;
5917
5922
5923typedef struct _FILE_MAILSLOT_QUERY_INFORMATION {
5924 ULONG MaximumMessageSize;
5925 ULONG MailslotQuota;
5926 ULONG NextMessageSize;
5927 ULONG MessagesAvailable;
5928 LARGE_INTEGER ReadTimeout;
5930
5931typedef struct _FILE_MAILSLOT_SET_INFORMATION {
5934
5935typedef struct _FILE_REPARSE_POINT_INFORMATION {
5936 LONGLONG FileReference;
5937 ULONG Tag;
5939
5946
5952
5957
5964
5965typedef struct _FILE_GET_EA_INFORMATION {
5966 ULONG NextEntryOffset;
5967 UCHAR EaNameLength;
5968 CHAR EaName[1];
5970
5971#define REMOTE_PROTOCOL_FLAG_LOOPBACK 0x00000001
5972#define REMOTE_PROTOCOL_FLAG_OFFLINE 0x00000002
5973
5983 struct {
5985 } GenericReserved;
5986 struct {
5987 ULONG Reserved[16];
5988 } ProtocolSpecificReserved;
5990
5996
5997typedef struct _FILE_QUOTA_INFORMATION {
5998 ULONG NextEntryOffset;
5999 ULONG SidLength;
6000 LARGE_INTEGER ChangeTime;
6001 LARGE_INTEGER QuotaUsed;
6002 LARGE_INTEGER QuotaThreshold;
6003 LARGE_INTEGER QuotaLimit;
6004 SID Sid;
6006
6007typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
6008 ULONG FileSystemAttributes;
6010 ULONG FileSystemNameLength;
6011 WCHAR FileSystemName[1];
6013
6017 WCHAR DriverName[1];
6019
6023
6024#define FILE_VC_QUOTA_NONE 0x00000000
6025#define FILE_VC_QUOTA_TRACK 0x00000001
6026#define FILE_VC_QUOTA_ENFORCE 0x00000002
6027#define FILE_VC_QUOTA_MASK 0x00000003
6028#define FILE_VC_CONTENT_INDEX_DISABLED 0x00000008
6029#define FILE_VC_LOG_QUOTA_THRESHOLD 0x00000010
6030#define FILE_VC_LOG_QUOTA_LIMIT 0x00000020
6031#define FILE_VC_LOG_VOLUME_THRESHOLD 0x00000040
6032#define FILE_VC_LOG_VOLUME_LIMIT 0x00000080
6033#define FILE_VC_QUOTAS_INCOMPLETE 0x00000100
6034#define FILE_VC_QUOTAS_REBUILDING 0x00000200
6035#define FILE_VC_VALID_MASK 0x000003ff
6036
6045
6046#ifndef _FILESYSTEMFSCTL_
6047#define _FILESYSTEMFSCTL_
6048
6049#define FSCTL_REQUEST_OPLOCK_LEVEL_1 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
6050#define FSCTL_REQUEST_OPLOCK_LEVEL_2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
6051#define FSCTL_REQUEST_BATCH_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
6052#define FSCTL_OPLOCK_BREAK_ACKNOWLEDGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
6053#define FSCTL_OPBATCH_ACK_CLOSE_PENDING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
6054#define FSCTL_OPLOCK_BREAK_NOTIFY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
6055#define FSCTL_LOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
6056#define FSCTL_UNLOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
6057#define FSCTL_DISMOUNT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
6058#define FSCTL_IS_VOLUME_MOUNTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
6059#define FSCTL_IS_PATHNAME_VALID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
6060#define FSCTL_MARK_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
6061#define FSCTL_QUERY_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 14, METHOD_NEITHER, FILE_ANY_ACCESS)
6062#define FSCTL_GET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
6063#define FSCTL_SET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6064#define FSCTL_SET_BOOTLOADER_ACCESSED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 19, METHOD_NEITHER, FILE_ANY_ACCESS)
6065
6066#define FSCTL_OPLOCK_BREAK_ACK_NO_2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
6067#define FSCTL_INVALIDATE_VOLUMES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
6068#define FSCTL_QUERY_FAT_BPB CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
6069#define FSCTL_REQUEST_FILTER_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
6070#define FSCTL_FILESYSTEM_GET_STATISTICS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
6071
6072#if (_WIN32_WINNT >= 0x0400)
6073
6074#define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)
6075#define FSCTL_GET_NTFS_FILE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS)
6076#define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 27, METHOD_NEITHER, FILE_ANY_ACCESS)
6077#define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 28, METHOD_NEITHER, FILE_ANY_ACCESS)
6078#define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6079#define FSCTL_IS_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
6080#define FSCTL_ALLOW_EXTENDED_DASD_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 32, METHOD_NEITHER, FILE_ANY_ACCESS)
6081
6082#endif
6083
6084#if (_WIN32_WINNT >= 0x0500)
6085
6086#define FSCTL_FIND_FILES_BY_SID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS)
6087#define FSCTL_SET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6088#define FSCTL_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS)
6089#define FSCTL_DELETE_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6090#define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6091#define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
6092#define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6093#define FSCTL_ENUM_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44, METHOD_NEITHER, FILE_ANY_ACCESS)
6094#define FSCTL_SECURITY_ID_CHECK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45, METHOD_NEITHER, FILE_READ_DATA)
6095#define FSCTL_READ_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46, METHOD_NEITHER, FILE_ANY_ACCESS)
6096#define FSCTL_SET_OBJECT_ID_EXTENDED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6097#define FSCTL_CREATE_OR_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS)
6098#define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6099#define FSCTL_SET_ZERO_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_DATA)
6100#define FSCTL_QUERY_ALLOCATED_RANGES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51, METHOD_NEITHER, FILE_READ_DATA)
6101#define FSCTL_ENABLE_UPGRADE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 52, METHOD_BUFFERED, FILE_WRITE_DATA)
6102#define FSCTL_SET_ENCRYPTION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_NEITHER, FILE_ANY_ACCESS)
6103#define FSCTL_ENCRYPTION_FSCTL_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54, METHOD_NEITHER, FILE_ANY_ACCESS)
6104#define FSCTL_WRITE_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55, METHOD_NEITHER, FILE_SPECIAL_ACCESS)
6105#define FSCTL_READ_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56, METHOD_NEITHER, FILE_SPECIAL_ACCESS)
6106#define FSCTL_CREATE_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57, METHOD_NEITHER, FILE_ANY_ACCESS)
6107#define FSCTL_READ_FILE_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58, METHOD_NEITHER, FILE_ANY_ACCESS)
6108#define FSCTL_WRITE_USN_CLOSE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59, METHOD_NEITHER, FILE_ANY_ACCESS)
6109#define FSCTL_EXTEND_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS)
6110#define FSCTL_QUERY_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 61, METHOD_BUFFERED, FILE_ANY_ACCESS)
6111#define FSCTL_DELETE_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 62, METHOD_BUFFERED, FILE_ANY_ACCESS)
6112#define FSCTL_MARK_HANDLE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 63, METHOD_BUFFERED, FILE_ANY_ACCESS)
6113#define FSCTL_SIS_COPYFILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 64, METHOD_BUFFERED, FILE_ANY_ACCESS)
6114#define FSCTL_SIS_LINK_FILES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 65, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6115#define FSCTL_RECALL_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 69, METHOD_NEITHER, FILE_ANY_ACCESS)
6116#define FSCTL_READ_FROM_PLEX CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 71, METHOD_OUT_DIRECT, FILE_READ_DATA)
6117#define FSCTL_FILE_PREFETCH CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 72, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6118
6119#endif
6120
6121#if (_WIN32_WINNT >= 0x0600)
6122
6123#define FSCTL_MAKE_MEDIA_COMPATIBLE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 76, METHOD_BUFFERED, FILE_WRITE_DATA)
6124#define FSCTL_SET_DEFECT_MANAGEMENT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 77, METHOD_BUFFERED, FILE_WRITE_DATA)
6125#define FSCTL_QUERY_SPARING_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 78, METHOD_BUFFERED, FILE_ANY_ACCESS)
6126#define FSCTL_QUERY_ON_DISK_VOLUME_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 79, METHOD_BUFFERED, FILE_ANY_ACCESS)
6127#define FSCTL_SET_VOLUME_COMPRESSION_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 80, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6128#define FSCTL_TXFS_MODIFY_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 81, METHOD_BUFFERED, FILE_WRITE_DATA)
6129#define FSCTL_TXFS_QUERY_RM_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 82, METHOD_BUFFERED, FILE_READ_DATA)
6130#define FSCTL_TXFS_ROLLFORWARD_REDO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 84, METHOD_BUFFERED, FILE_WRITE_DATA)
6131#define FSCTL_TXFS_ROLLFORWARD_UNDO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 85, METHOD_BUFFERED, FILE_WRITE_DATA)
6132#define FSCTL_TXFS_START_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 86, METHOD_BUFFERED, FILE_WRITE_DATA)
6133#define FSCTL_TXFS_SHUTDOWN_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 87, METHOD_BUFFERED, FILE_WRITE_DATA)
6134#define FSCTL_TXFS_READ_BACKUP_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 88, METHOD_BUFFERED, FILE_READ_DATA)
6135#define FSCTL_TXFS_WRITE_BACKUP_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 89, METHOD_BUFFERED, FILE_WRITE_DATA)
6136#define FSCTL_TXFS_CREATE_SECONDARY_RM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 90, METHOD_BUFFERED, FILE_WRITE_DATA)
6137#define FSCTL_TXFS_GET_METADATA_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 91, METHOD_BUFFERED, FILE_READ_DATA)
6138#define FSCTL_TXFS_GET_TRANSACTED_VERSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 92, METHOD_BUFFERED, FILE_READ_DATA)
6139#define FSCTL_TXFS_SAVEPOINT_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 94, METHOD_BUFFERED, FILE_WRITE_DATA)
6140#define FSCTL_TXFS_CREATE_MINIVERSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 95, METHOD_BUFFERED, FILE_WRITE_DATA)
6141#define FSCTL_TXFS_TRANSACTION_ACTIVE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 99, METHOD_BUFFERED, FILE_READ_DATA)
6142#define FSCTL_SET_ZERO_ON_DEALLOCATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 101, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6143#define FSCTL_SET_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 102, METHOD_BUFFERED, FILE_ANY_ACCESS)
6144#define FSCTL_GET_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 103, METHOD_BUFFERED, FILE_ANY_ACCESS)
6145#define FSCTL_WAIT_FOR_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 104, METHOD_BUFFERED, FILE_ANY_ACCESS)
6146#define FSCTL_INITIATE_REPAIR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 106, METHOD_BUFFERED, FILE_ANY_ACCESS)
6147#define FSCTL_CSC_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 107, METHOD_NEITHER, FILE_ANY_ACCESS)
6148#define FSCTL_SHRINK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 108, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
6149#define FSCTL_SET_SHORT_NAME_BEHAVIOR CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 109, METHOD_BUFFERED, FILE_ANY_ACCESS)
6150#define FSCTL_DFSR_SET_GHOST_HANDLE_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 110, METHOD_BUFFERED, FILE_ANY_ACCESS)
6151#define FSCTL_TXFS_LIST_TRANSACTION_LOCKED_FILES \
6152 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_READ_DATA)
6153#define FSCTL_TXFS_LIST_TRANSACTIONS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 121, METHOD_BUFFERED, FILE_READ_DATA)
6154#define FSCTL_QUERY_PAGEFILE_ENCRYPTION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 122, METHOD_BUFFERED, FILE_ANY_ACCESS)
6155#define FSCTL_RESET_VOLUME_ALLOCATION_HINTS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 123, METHOD_BUFFERED, FILE_ANY_ACCESS)
6156#define FSCTL_TXFS_READ_BACKUP_INFORMATION2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 126, METHOD_BUFFERED, FILE_ANY_ACCESS)
6157
6158#endif
6159
6160#if (_WIN32_WINNT >= 0x0601)
6161
6162#define FSCTL_QUERY_DEPENDENT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 124, METHOD_BUFFERED, FILE_ANY_ACCESS)
6163#define FSCTL_SD_GLOBAL_CHANGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 125, METHOD_BUFFERED, FILE_ANY_ACCESS)
6164#define FSCTL_LOOKUP_STREAM_FROM_CLUSTER CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 127, METHOD_BUFFERED, FILE_ANY_ACCESS)
6165#define FSCTL_TXFS_WRITE_BACKUP_INFORMATION2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 128, METHOD_BUFFERED, FILE_ANY_ACCESS)
6166#define FSCTL_FILE_TYPE_NOTIFICATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 129, METHOD_BUFFERED, FILE_ANY_ACCESS)
6167#define FSCTL_GET_BOOT_AREA_INFO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 140, METHOD_BUFFERED, FILE_ANY_ACCESS)
6168#define FSCTL_GET_RETRIEVAL_POINTER_BASE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 141, METHOD_BUFFERED, FILE_ANY_ACCESS)
6169#define FSCTL_SET_PERSISTENT_VOLUME_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 142, METHOD_BUFFERED, FILE_ANY_ACCESS)
6170#define FSCTL_QUERY_PERSISTENT_VOLUME_STATE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 143, METHOD_BUFFERED, FILE_ANY_ACCESS)
6171#define FSCTL_REQUEST_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 144, METHOD_BUFFERED, FILE_ANY_ACCESS)
6172#define FSCTL_CSV_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 145, METHOD_BUFFERED, FILE_ANY_ACCESS)
6173#define FSCTL_IS_CSV_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 146, METHOD_BUFFERED, FILE_ANY_ACCESS)
6174#define FSCTL_QUERY_FILE_SYSTEM_RECOGNITION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 147, METHOD_BUFFERED, FILE_ANY_ACCESS)
6175#define FSCTL_CSV_GET_VOLUME_PATH_NAME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 148, METHOD_BUFFERED, FILE_ANY_ACCESS)
6176#define FSCTL_CSV_GET_VOLUME_NAME_FOR_VOLUME_MOUNT_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 149, METHOD_BUFFERED, FILE_ANY_ACCESS)
6177#define FSCTL_CSV_GET_VOLUME_PATH_NAMES_FOR_VOLUME_NAME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 150, METHOD_BUFFERED, FILE_ANY_ACCESS)
6178#define FSCTL_IS_FILE_ON_CSV_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 151, METHOD_BUFFERED, FILE_ANY_ACCESS)
6179#define FSCTL_CSV_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 155, METHOD_BUFFERED, FILE_ANY_ACCESS)
6180
6181typedef struct _CSV_NAMESPACE_INFO {
6182 ULONG Version;
6186} CSV_NAMESPACE_INFO, *PCSV_NAMESPACE_INFO;
6187
6188#define CSV_NAMESPACE_INFO_V1 (sizeof(CSV_NAMESPACE_INFO))
6189#define CSV_INVALID_DEVICE_NUMBER 0xFFFFFFFF
6190
6191#endif
6192
6193#if (_WIN32_WINNT >= 0x0602)
6194
6195#define FSCTL_FILE_LEVEL_TRIM CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 130, METHOD_BUFFERED, FILE_WRITE_DATA)
6196#define FSCTL_CORRUPTION_HANDLING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 152, METHOD_BUFFERED, FILE_ANY_ACCESS)
6197#define FSCTL_OFFLOAD_READ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 153, METHOD_BUFFERED, FILE_READ_ACCESS)
6198#define FSCTL_OFFLOAD_WRITE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 154, METHOD_BUFFERED, FILE_WRITE_ACCESS)
6199#define FSCTL_SET_PURGE_FAILURE_MODE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 156, METHOD_BUFFERED, FILE_ANY_ACCESS)
6200#define FSCTL_QUERY_FILE_LAYOUT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 157, METHOD_NEITHER, FILE_ANY_ACCESS)
6201#define FSCTL_IS_VOLUME_OWNED_BYCSVFS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 158, METHOD_BUFFERED, FILE_ANY_ACCESS)
6202#define FSCTL_GET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 159, METHOD_BUFFERED, FILE_ANY_ACCESS)
6203#define FSCTL_SET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 160, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6204#define FSCTL_QUERY_FILE_REGIONS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 161, METHOD_BUFFERED, FILE_ANY_ACCESS)
6205#define FSCTL_DEDUP_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 165, METHOD_BUFFERED, FILE_ANY_ACCESS)
6206#define FSCTL_DEDUP_QUERY_FILE_HASHES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 166, METHOD_NEITHER, FILE_READ_DATA)
6207#define FSCTL_RKF_INTERNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 171, METHOD_NEITHER, FILE_ANY_ACCESS)
6208#define FSCTL_SCRUB_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 172, METHOD_BUFFERED, FILE_ANY_ACCESS)
6209#define FSCTL_REPAIR_COPIES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 173, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
6210#define FSCTL_DISABLE_LOCAL_BUFFERING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 174, METHOD_BUFFERED, FILE_ANY_ACCESS)
6211#define FSCTL_CSV_MGMT_LOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 175, METHOD_BUFFERED, FILE_ANY_ACCESS)
6212#define FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICS \
6213 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 176, METHOD_BUFFERED, FILE_ANY_ACCESS)
6214#define FSCTL_ADVANCE_FILE_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 177, METHOD_BUFFERED, FILE_ANY_ACCESS)
6215#define FSCTL_CSV_SYNC_TUNNEL_REQUEST CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 178, METHOD_BUFFERED, FILE_ANY_ACCESS)
6216#define FSCTL_CSV_QUERY_VETO_FILE_DIRECT_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 179, METHOD_BUFFERED, FILE_ANY_ACCESS)
6217#define FSCTL_WRITE_USN_REASON CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 180, METHOD_BUFFERED, FILE_ANY_ACCESS)
6218#define FSCTL_CSV_CONTROL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 181, METHOD_BUFFERED, FILE_ANY_ACCESS)
6219#define FSCTL_GET_REFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 182, METHOD_BUFFERED, FILE_ANY_ACCESS)
6220
6221#endif
6222
6223#if (_WIN32_WINNT >= 0x0603)
6224
6225#define FSCTL_DUPLICATE_EXTENTS_TO_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 209, METHOD_BUFFERED, FILE_WRITE_DATA)
6226
6227#endif
6228
6229#define FSCTL_MARK_AS_SYSTEM_HIVE FSCTL_SET_BOOTLOADER_ACCESSED
6230
6231typedef struct _PATHNAME_BUFFER {
6235
6237 UCHAR First0x24BytesOfBootSector[0x24];
6239
6240#if (_WIN32_WINNT >= 0x0400)
6241
6242typedef struct _NTFS_VOLUME_DATA_BUFFER {
6243 LARGE_INTEGER VolumeSerialNumber;
6244 LARGE_INTEGER NumberSectors;
6245 LARGE_INTEGER TotalClusters;
6247 LARGE_INTEGER TotalReserved;
6248 ULONG BytesPerSector;
6249 ULONG BytesPerCluster;
6250 ULONG BytesPerFileRecordSegment;
6251 ULONG ClustersPerFileRecordSegment;
6252 LARGE_INTEGER MftValidDataLength;
6253 LARGE_INTEGER MftStartLcn;
6254 LARGE_INTEGER Mft2StartLcn;
6255 LARGE_INTEGER MftZoneStart;
6256 LARGE_INTEGER MftZoneEnd;
6258
6259typedef struct _NTFS_EXTENDED_VOLUME_DATA {
6264
6265typedef struct _STARTING_LCN_INPUT_BUFFER {
6266 LARGE_INTEGER StartingLcn;
6268
6269typedef struct _VOLUME_BITMAP_BUFFER {
6270 LARGE_INTEGER StartingLcn;
6271 LARGE_INTEGER BitmapSize;
6272 UCHAR Buffer[1];
6274
6275typedef struct _STARTING_VCN_INPUT_BUFFER {
6276 LARGE_INTEGER StartingVcn;
6278
6279typedef struct _RETRIEVAL_POINTERS_BUFFER {
6280 ULONG ExtentCount;
6281 LARGE_INTEGER StartingVcn;
6282 struct {
6283 LARGE_INTEGER NextVcn;
6284 LARGE_INTEGER Lcn;
6285 } Extents[1];
6287
6288typedef struct _NTFS_FILE_RECORD_INPUT_BUFFER {
6289 LARGE_INTEGER FileReferenceNumber;
6291
6292typedef struct _NTFS_FILE_RECORD_OUTPUT_BUFFER {
6293 LARGE_INTEGER FileReferenceNumber;
6294 ULONG FileRecordLength;
6295 UCHAR FileRecordBuffer[1];
6297
6298typedef struct _MOVE_FILE_DATA {
6300 LARGE_INTEGER StartingVcn;
6301 LARGE_INTEGER StartingLcn;
6302 ULONG ClusterCount;
6304
6305typedef struct _MOVE_FILE_RECORD_DATA {
6307 LARGE_INTEGER SourceFileRecord;
6308 LARGE_INTEGER TargetFileRecord;
6309} MOVE_FILE_RECORD_DATA, *PMOVE_FILE_RECORD_DATA;
6310
6311#if defined(_WIN64)
6312typedef struct _MOVE_FILE_DATA32 {
6314 LARGE_INTEGER StartingVcn;
6315 LARGE_INTEGER StartingLcn;
6316 ULONG ClusterCount;
6317} MOVE_FILE_DATA32, *PMOVE_FILE_DATA32;
6318#endif
6319
6320#endif /* (_WIN32_WINNT >= 0x0400) */
6321
6322#if (_WIN32_WINNT >= 0x0500)
6323
6324typedef struct _FIND_BY_SID_DATA {
6325 ULONG Restart;
6326 SID Sid;
6327} FIND_BY_SID_DATA, *PFIND_BY_SID_DATA;
6328
6329typedef struct _FIND_BY_SID_OUTPUT {
6330 ULONG NextEntryOffset;
6331 ULONG FileIndex;
6333 WCHAR FileName[1];
6334} FIND_BY_SID_OUTPUT, *PFIND_BY_SID_OUTPUT;
6335
6336typedef struct _MFT_ENUM_DATA {
6337 ULONGLONG StartFileReferenceNumber;
6338 USN LowUsn;
6339 USN HighUsn;
6340} MFT_ENUM_DATA, *PMFT_ENUM_DATA;
6341
6342typedef struct _CREATE_USN_JOURNAL_DATA {
6344 ULONGLONG AllocationDelta;
6345} CREATE_USN_JOURNAL_DATA, *PCREATE_USN_JOURNAL_DATA;
6346
6347typedef struct _READ_USN_JOURNAL_DATA {
6348 USN StartUsn;
6349 ULONG ReasonMask;
6350 ULONG ReturnOnlyOnClose;
6352 ULONGLONG BytesToWaitFor;
6353 ULONGLONG UsnJournalID;
6354} READ_USN_JOURNAL_DATA, *PREAD_USN_JOURNAL_DATA;
6355
6356typedef struct _USN_RECORD {
6357 ULONG RecordLength;
6360 ULONGLONG FileReferenceNumber;
6361 ULONGLONG ParentFileReferenceNumber;
6362 USN Usn;
6364 ULONG Reason;
6365 ULONG SourceInfo;
6366 ULONG SecurityId;
6369 USHORT FileNameOffset;
6370 WCHAR FileName[1];
6371} USN_RECORD, *PUSN_RECORD;
6372
6373#define USN_PAGE_SIZE (0x1000)
6374
6375#define USN_REASON_DATA_OVERWRITE (0x00000001)
6376#define USN_REASON_DATA_EXTEND (0x00000002)
6377#define USN_REASON_DATA_TRUNCATION (0x00000004)
6378#define USN_REASON_NAMED_DATA_OVERWRITE (0x00000010)
6379#define USN_REASON_NAMED_DATA_EXTEND (0x00000020)
6380#define USN_REASON_NAMED_DATA_TRUNCATION (0x00000040)
6381#define USN_REASON_FILE_CREATE (0x00000100)
6382#define USN_REASON_FILE_DELETE (0x00000200)
6383#define USN_REASON_EA_CHANGE (0x00000400)
6384#define USN_REASON_SECURITY_CHANGE (0x00000800)
6385#define USN_REASON_RENAME_OLD_NAME (0x00001000)
6386#define USN_REASON_RENAME_NEW_NAME (0x00002000)
6387#define USN_REASON_INDEXABLE_CHANGE (0x00004000)
6388#define USN_REASON_BASIC_INFO_CHANGE (0x00008000)
6389#define USN_REASON_HARD_LINK_CHANGE (0x00010000)
6390#define USN_REASON_COMPRESSION_CHANGE (0x00020000)
6391#define USN_REASON_ENCRYPTION_CHANGE (0x00040000)
6392#define USN_REASON_OBJECT_ID_CHANGE (0x00080000)
6393#define USN_REASON_REPARSE_POINT_CHANGE (0x00100000)
6394#define USN_REASON_STREAM_CHANGE (0x00200000)
6395#define USN_REASON_TRANSACTED_CHANGE (0x00400000)
6396#define USN_REASON_CLOSE (0x80000000)
6397
6398typedef struct _USN_JOURNAL_DATA {
6399 ULONGLONG UsnJournalID;
6400 USN FirstUsn;
6401 USN NextUsn;
6402 USN LowestValidUsn;
6403 USN MaxUsn;
6405 ULONGLONG AllocationDelta;
6406} USN_JOURNAL_DATA, *PUSN_JOURNAL_DATA;
6407
6408typedef struct _DELETE_USN_JOURNAL_DATA {
6409 ULONGLONG UsnJournalID;
6410 ULONG DeleteFlags;
6411} DELETE_USN_JOURNAL_DATA, *PDELETE_USN_JOURNAL_DATA;
6412
6413#define USN_DELETE_FLAG_DELETE (0x00000001)
6414#define USN_DELETE_FLAG_NOTIFY (0x00000002)
6415#define USN_DELETE_VALID_FLAGS (0x00000003)
6416
6417typedef struct _MARK_HANDLE_INFO {
6418 ULONG UsnSourceInfo;
6420 ULONG HandleInfo;
6421} MARK_HANDLE_INFO, *PMARK_HANDLE_INFO;
6422
6423#if defined(_WIN64)
6424typedef struct _MARK_HANDLE_INFO32 {
6425 ULONG UsnSourceInfo;
6427 ULONG HandleInfo;
6428} MARK_HANDLE_INFO32, *PMARK_HANDLE_INFO32;
6429#endif
6430
6431#define USN_SOURCE_DATA_MANAGEMENT (0x00000001)
6432#define USN_SOURCE_AUXILIARY_DATA (0x00000002)
6433#define USN_SOURCE_REPLICATION_MANAGEMENT (0x00000004)
6434
6435#define MARK_HANDLE_PROTECT_CLUSTERS (0x00000001)
6436#define MARK_HANDLE_TXF_SYSTEM_LOG (0x00000004)
6437#define MARK_HANDLE_NOT_TXF_SYSTEM_LOG (0x00000008)
6438
6439typedef struct _BULK_SECURITY_TEST_DATA {
6441 ULONG SecurityIds[1];
6442} BULK_SECURITY_TEST_DATA, *PBULK_SECURITY_TEST_DATA;
6443
6444#define VOLUME_IS_DIRTY (0x00000001)
6445#define VOLUME_UPGRADE_SCHEDULED (0x00000002)
6446#define VOLUME_SESSION_OPEN (0x00000004)
6447
6448typedef struct _FILE_PREFETCH {
6449 ULONG Type;
6450 ULONG Count;
6451 ULONGLONG Prefetch[1];
6452} FILE_PREFETCH, *PFILE_PREFETCH;
6453
6454typedef struct _FILE_PREFETCH_EX {
6455 ULONG Type;
6456 ULONG Count;
6457 PVOID Context;
6458 ULONGLONG Prefetch[1];
6459} FILE_PREFETCH_EX, *PFILE_PREFETCH_EX;
6460
6461#define FILE_PREFETCH_TYPE_FOR_CREATE 0x1
6462#define FILE_PREFETCH_TYPE_FOR_DIRENUM 0x2
6463#define FILE_PREFETCH_TYPE_FOR_CREATE_EX 0x3
6464#define FILE_PREFETCH_TYPE_FOR_DIRENUM_EX 0x4
6465
6466#define FILE_PREFETCH_TYPE_MAX 0x4
6467
6468typedef struct _FILE_OBJECTID_BUFFER {
6469 UCHAR ObjectId[16];
6470 _ANONYMOUS_UNION union {
6471 _ANONYMOUS_STRUCT struct {
6472 UCHAR BirthVolumeId[16];
6473 UCHAR BirthObjectId[16];
6474 UCHAR DomainId[16];
6476 UCHAR ExtendedInfo[48];
6479
6480typedef struct _FILE_SET_SPARSE_BUFFER {
6481 BOOLEAN SetSparse;
6482} FILE_SET_SPARSE_BUFFER, *PFILE_SET_SPARSE_BUFFER;
6483
6484typedef struct _FILE_ZERO_DATA_INFORMATION {
6486 LARGE_INTEGER BeyondFinalZero;
6487} FILE_ZERO_DATA_INFORMATION, *PFILE_ZERO_DATA_INFORMATION;
6488
6489typedef struct _FILE_ALLOCATED_RANGE_BUFFER {
6492} FILE_ALLOCATED_RANGE_BUFFER, *PFILE_ALLOCATED_RANGE_BUFFER;
6493
6494typedef struct _ENCRYPTION_BUFFER {
6495 ULONG EncryptionOperation;
6496 UCHAR Private[1];
6497} ENCRYPTION_BUFFER, *PENCRYPTION_BUFFER;
6498
6499#define FILE_SET_ENCRYPTION 0x00000001
6500#define FILE_CLEAR_ENCRYPTION 0x00000002
6501#define STREAM_SET_ENCRYPTION 0x00000003
6502#define STREAM_CLEAR_ENCRYPTION 0x00000004
6503
6504#define MAXIMUM_ENCRYPTION_VALUE 0x00000004
6505
6506typedef struct _DECRYPTION_STATUS_BUFFER {
6507 BOOLEAN NoEncryptedStreams;
6508} DECRYPTION_STATUS_BUFFER, *PDECRYPTION_STATUS_BUFFER;
6509
6510#define ENCRYPTION_FORMAT_DEFAULT (0x01)
6511
6512#define COMPRESSION_FORMAT_SPARSE (0x4000)
6513
6514typedef struct _REQUEST_RAW_ENCRYPTED_DATA {
6516 ULONG Length;
6517} REQUEST_RAW_ENCRYPTED_DATA, *PREQUEST_RAW_ENCRYPTED_DATA;
6518
6519typedef struct _ENCRYPTED_DATA_INFO {
6520 ULONGLONG StartingFileOffset;
6522 ULONG BytesWithinFileSize;
6523 ULONG BytesWithinValidDataLength;
6524 USHORT CompressionFormat;
6525 UCHAR DataUnitShift;
6526 UCHAR ChunkShift;
6527 UCHAR ClusterShift;
6528 UCHAR EncryptionFormat;
6529 USHORT NumberOfDataBlocks;
6530 ULONG DataBlockSize[ANYSIZE_ARRAY];
6531} ENCRYPTED_DATA_INFO, *PENCRYPTED_DATA_INFO;
6532
6533typedef struct _PLEX_READ_DATA_REQUEST {
6535 ULONG ByteLength;
6536 ULONG PlexNumber;
6537} PLEX_READ_DATA_REQUEST, *PPLEX_READ_DATA_REQUEST;
6538
6539typedef struct _SI_COPYFILE {
6540 ULONG SourceFileNameLength;
6541 ULONG DestinationFileNameLength;
6542 ULONG Flags;
6544} SI_COPYFILE, *PSI_COPYFILE;
6545
6546#define COPYFILE_SIS_LINK 0x0001
6547#define COPYFILE_SIS_REPLACE 0x0002
6548#define COPYFILE_SIS_FLAGS 0x0003
6549
6550#endif /* (_WIN32_WINNT >= 0x0500) */
6551
6552#if (_WIN32_WINNT >= 0x0600)
6553
6554typedef struct _FILE_MAKE_COMPATIBLE_BUFFER {
6555 BOOLEAN CloseDisc;
6556} FILE_MAKE_COMPATIBLE_BUFFER, *PFILE_MAKE_COMPATIBLE_BUFFER;
6557
6558typedef struct _FILE_SET_DEFECT_MGMT_BUFFER {
6559 BOOLEAN Disable;
6560} FILE_SET_DEFECT_MGMT_BUFFER, *PFILE_SET_DEFECT_MGMT_BUFFER;
6561
6562typedef struct _FILE_QUERY_SPARING_BUFFER {
6563 ULONG SparingUnitBytes;
6564 BOOLEAN SoftwareSparing;
6565 ULONG TotalSpareBlocks;
6566 ULONG FreeSpareBlocks;
6567} FILE_QUERY_SPARING_BUFFER, *PFILE_QUERY_SPARING_BUFFER;
6568
6569typedef struct _FILE_QUERY_ON_DISK_VOL_INFO_BUFFER {
6570 LARGE_INTEGER DirectoryCount;
6572 USHORT FsFormatMajVersion;
6573 USHORT FsFormatMinVersion;
6574 WCHAR FsFormatName[12];
6576 LARGE_INTEGER LastUpdateTime;
6577 WCHAR CopyrightInfo[34];
6578 WCHAR AbstractInfo[34];
6579 WCHAR FormattingImplementationInfo[34];
6580 WCHAR LastModifyingImplementationInfo[34];
6581} FILE_QUERY_ON_DISK_VOL_INFO_BUFFER, *PFILE_QUERY_ON_DISK_VOL_INFO_BUFFER;
6582
6583#define SET_REPAIR_ENABLED (0x00000001)
6584#define SET_REPAIR_VOLUME_BITMAP_SCAN (0x00000002)
6585#define SET_REPAIR_DELETE_CROSSLINK (0x00000004)
6586#define SET_REPAIR_WARN_ABOUT_DATA_LOSS (0x00000008)
6587#define SET_REPAIR_DISABLED_AND_BUGCHECK_ON_CORRUPT (0x00000010)
6588#define SET_REPAIR_VALID_MASK (0x0000001F)
6589
6590typedef enum _SHRINK_VOLUME_REQUEST_TYPES {
6591 ShrinkPrepare = 1,
6592 ShrinkCommit,
6593 ShrinkAbort
6594} SHRINK_VOLUME_REQUEST_TYPES, *PSHRINK_VOLUME_REQUEST_TYPES;
6595
6596typedef struct _SHRINK_VOLUME_INFORMATION {
6597 SHRINK_VOLUME_REQUEST_TYPES ShrinkRequestType;
6599 LONGLONG NewNumberOfSectors;
6600} SHRINK_VOLUME_INFORMATION, *PSHRINK_VOLUME_INFORMATION;
6601
6602#define TXFS_RM_FLAG_LOGGING_MODE 0x00000001
6603#define TXFS_RM_FLAG_RENAME_RM 0x00000002
6604#define TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX 0x00000004
6605#define TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN 0x00000008
6606#define TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS 0x00000010
6607#define TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT 0x00000020
6608#define TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE 0x00000040
6609#define TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX 0x00000080
6610#define TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN 0x00000100
6611#define TXFS_RM_FLAG_GROW_LOG 0x00000400
6612#define TXFS_RM_FLAG_SHRINK_LOG 0x00000800
6613#define TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE 0x00001000
6614#define TXFS_RM_FLAG_PRESERVE_CHANGES 0x00002000
6615#define TXFS_RM_FLAG_RESET_RM_AT_NEXT_START 0x00004000
6616#define TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START 0x00008000
6617#define TXFS_RM_FLAG_PREFER_CONSISTENCY 0x00010000
6618#define TXFS_RM_FLAG_PREFER_AVAILABILITY 0x00020000
6619
6620#define TXFS_LOGGING_MODE_SIMPLE (0x0001)
6621#define TXFS_LOGGING_MODE_FULL (0x0002)
6622
6623#define TXFS_TRANSACTION_STATE_NONE 0x00
6624#define TXFS_TRANSACTION_STATE_ACTIVE 0x01
6625#define TXFS_TRANSACTION_STATE_PREPARED 0x02
6626#define TXFS_TRANSACTION_STATE_NOTACTIVE 0x03
6627
6628#define TXFS_MODIFY_RM_VALID_FLAGS (TXFS_RM_FLAG_LOGGING_MODE | \
6629 TXFS_RM_FLAG_RENAME_RM | \
6630 TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX | \
6631 TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN | \
6632 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
6633 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
6634 TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE | \
6635 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
6636 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN | \
6637 TXFS_RM_FLAG_SHRINK_LOG | \
6638 TXFS_RM_FLAG_GROW_LOG | \
6639 TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE | \
6640 TXFS_RM_FLAG_PRESERVE_CHANGES | \
6641 TXFS_RM_FLAG_RESET_RM_AT_NEXT_START | \
6642 TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START | \
6643 TXFS_RM_FLAG_PREFER_CONSISTENCY | \
6644 TXFS_RM_FLAG_PREFER_AVAILABILITY)
6645
6646typedef struct _TXFS_MODIFY_RM {
6647 ULONG Flags;
6648 ULONG LogContainerCountMax;
6649 ULONG LogContainerCountMin;
6650 ULONG LogContainerCount;
6651 ULONG LogGrowthIncrement;
6652 ULONG LogAutoShrinkPercentage;
6654 USHORT LoggingMode;
6655} TXFS_MODIFY_RM, *PTXFS_MODIFY_RM;
6656
6657#define TXFS_RM_STATE_NOT_STARTED 0
6658#define TXFS_RM_STATE_STARTING 1
6659#define TXFS_RM_STATE_ACTIVE 2
6660#define TXFS_RM_STATE_SHUTTING_DOWN 3
6661
6662#define TXFS_QUERY_RM_INFORMATION_VALID_FLAGS \
6663 (TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
6664 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
6665 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
6666 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN | \
6667 TXFS_RM_FLAG_RESET_RM_AT_NEXT_START | \
6668 TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START | \
6669 TXFS_RM_FLAG_PREFER_CONSISTENCY | \
6670 TXFS_RM_FLAG_PREFER_AVAILABILITY)
6671
6672typedef struct _TXFS_QUERY_RM_INFORMATION {
6673 ULONG BytesRequired;
6674 ULONGLONG TailLsn;
6675 ULONGLONG CurrentLsn;
6676 ULONGLONG ArchiveTailLsn;
6677 ULONGLONG LogContainerSize;
6678 LARGE_INTEGER HighestVirtualClock;
6679 ULONG LogContainerCount;
6680 ULONG LogContainerCountMax;
6681 ULONG LogContainerCountMin;
6682 ULONG LogGrowthIncrement;
6683 ULONG LogAutoShrinkPercentage;
6684 ULONG Flags;
6685 USHORT LoggingMode;
6687 ULONG RmState;
6688 ULONGLONG LogCapacity;
6689 ULONGLONG LogFree;
6690 ULONGLONG TopsSize;
6691 ULONGLONG TopsUsed;
6692 ULONGLONG TransactionCount;
6693 ULONGLONG OnePCCount;
6694 ULONGLONG TwoPCCount;
6695 ULONGLONG NumberLogFileFull;
6696 ULONGLONG OldestTransactionAge;
6697 GUID RMName;
6698 ULONG TmLogPathOffset;
6699} TXFS_QUERY_RM_INFORMATION, *PTXFS_QUERY_RM_INFORMATION;
6700
6701#define TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN 0x01
6702#define TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK 0x02
6703
6704#define TXFS_ROLLFORWARD_REDO_VALID_FLAGS \
6705 (TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN | \
6706 TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK)
6707
6708typedef struct _TXFS_ROLLFORWARD_REDO_INFORMATION {
6709 LARGE_INTEGER LastVirtualClock;
6710 ULONGLONG LastRedoLsn;
6711 ULONGLONG HighestRecoveryLsn;
6712 ULONG Flags;
6713} TXFS_ROLLFORWARD_REDO_INFORMATION, *PTXFS_ROLLFORWARD_REDO_INFORMATION;
6714
6715#define TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX 0x00000001
6716#define TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN 0x00000002
6717#define TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE 0x00000004
6718#define TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS 0x00000008
6719#define TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT 0x00000010
6720#define TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE 0x00000020
6721#define TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX 0x00000040
6722#define TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN 0x00000080
6723
6724#define TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT 0x00000200
6725#define TXFS_START_RM_FLAG_LOGGING_MODE 0x00000400
6726#define TXFS_START_RM_FLAG_PRESERVE_CHANGES 0x00000800
6727
6728#define TXFS_START_RM_FLAG_PREFER_CONSISTENCY 0x00001000
6729#define TXFS_START_RM_FLAG_PREFER_AVAILABILITY 0x00002000
6730
6731#define TXFS_START_RM_VALID_FLAGS \
6732 (TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX | \
6733 TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN | \
6734 TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE | \
6735 TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
6736 TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
6737 TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE | \
6738 TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT | \
6739 TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
6740 TXFS_START_RM_FLAG_LOGGING_MODE | \
6741 TXFS_START_RM_FLAG_PRESERVE_CHANGES | \
6742 TXFS_START_RM_FLAG_PREFER_CONSISTENCY | \
6743 TXFS_START_RM_FLAG_PREFER_AVAILABILITY)
6744
6745typedef struct _TXFS_START_RM_INFORMATION {
6746 ULONG Flags;
6747 ULONGLONG LogContainerSize;
6748 ULONG LogContainerCountMin;
6749 ULONG LogContainerCountMax;
6750 ULONG LogGrowthIncrement;
6751 ULONG LogAutoShrinkPercentage;
6752 ULONG TmLogPathOffset;
6753 USHORT TmLogPathLength;
6754 USHORT LoggingMode;
6755 USHORT LogPathLength;
6757 WCHAR LogPath[1];
6758} TXFS_START_RM_INFORMATION, *PTXFS_START_RM_INFORMATION;
6759
6760typedef struct _TXFS_GET_METADATA_INFO_OUT {
6761 struct {
6762 LONGLONG LowPart;
6763 LONGLONG HighPart;
6764 } TxfFileId;
6765 GUID LockingTransaction;
6766 ULONGLONG LastLsn;
6767 ULONG TransactionState;
6768} TXFS_GET_METADATA_INFO_OUT, *PTXFS_GET_METADATA_INFO_OUT;
6769
6770#define TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_CREATED 0x00000001
6771#define TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_DELETED 0x00000002
6772
6773typedef struct _TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY {
6775 ULONG NameFlags;
6776 LONGLONG FileId;
6780 WCHAR FileName[1];
6781} TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY, *PTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY;
6782
6783typedef struct _TXFS_LIST_TRANSACTION_LOCKED_FILES {
6784 GUID KtmTransaction;
6785 ULONGLONG NumberOfFiles;
6786 ULONGLONG BufferSizeRequired;
6788} TXFS_LIST_TRANSACTION_LOCKED_FILES, *PTXFS_LIST_TRANSACTION_LOCKED_FILES;
6789
6790typedef struct _TXFS_LIST_TRANSACTIONS_ENTRY {
6792 ULONG TransactionState;
6796} TXFS_LIST_TRANSACTIONS_ENTRY, *PTXFS_LIST_TRANSACTIONS_ENTRY;
6797
6798typedef struct _TXFS_LIST_TRANSACTIONS {
6799 ULONGLONG NumberOfTransactions;
6800 ULONGLONG BufferSizeRequired;
6801} TXFS_LIST_TRANSACTIONS, *PTXFS_LIST_TRANSACTIONS;
6802
6803typedef struct _TXFS_READ_BACKUP_INFORMATION_OUT {
6804 _ANONYMOUS_UNION union {
6806 UCHAR Buffer[1];
6808} TXFS_READ_BACKUP_INFORMATION_OUT, *PTXFS_READ_BACKUP_INFORMATION_OUT;
6809
6810typedef struct _TXFS_WRITE_BACKUP_INFORMATION {
6811 UCHAR Buffer[1];
6812} TXFS_WRITE_BACKUP_INFORMATION, *PTXFS_WRITE_BACKUP_INFORMATION;
6813
6814#define TXFS_TRANSACTED_VERSION_NONTRANSACTED 0xFFFFFFFE
6815#define TXFS_TRANSACTED_VERSION_UNCOMMITTED 0xFFFFFFFF
6816
6817typedef struct _TXFS_GET_TRANSACTED_VERSION {
6818 ULONG ThisBaseVersion;
6819 ULONG LatestVersion;
6820 USHORT ThisMiniVersion;
6821 USHORT FirstMiniVersion;
6822 USHORT LatestMiniVersion;
6823} TXFS_GET_TRANSACTED_VERSION, *PTXFS_GET_TRANSACTED_VERSION;
6824
6825#define TXFS_SAVEPOINT_SET 0x00000001
6826#define TXFS_SAVEPOINT_ROLLBACK 0x00000002
6827#define TXFS_SAVEPOINT_CLEAR 0x00000004
6828#define TXFS_SAVEPOINT_CLEAR_ALL 0x00000010
6829
6830typedef struct _TXFS_SAVEPOINT_INFORMATION {
6831 HANDLE KtmTransaction;
6832 ULONG ActionCode;
6833 ULONG SavepointId;
6834} TXFS_SAVEPOINT_INFORMATION, *PTXFS_SAVEPOINT_INFORMATION;
6835
6836typedef struct _TXFS_CREATE_MINIVERSION_INFO {
6837 USHORT StructureVersion;
6838 USHORT StructureLength;
6839 ULONG BaseVersion;
6840 USHORT MiniVersion;
6841} TXFS_CREATE_MINIVERSION_INFO, *PTXFS_CREATE_MINIVERSION_INFO;
6842
6843typedef struct _TXFS_TRANSACTION_ACTIVE_INFO {
6844 BOOLEAN TransactionsActiveAtSnapshot;
6845} TXFS_TRANSACTION_ACTIVE_INFO, *PTXFS_TRANSACTION_ACTIVE_INFO;
6846
6847#endif /* (_WIN32_WINNT >= 0x0600) */
6848
6849#if (_WIN32_WINNT >= 0x0601)
6850
6851#define MARK_HANDLE_REALTIME (0x00000020)
6852#define MARK_HANDLE_NOT_REALTIME (0x00000040)
6853
6854#define NO_8DOT3_NAME_PRESENT (0x00000001)
6855#define REMOVED_8DOT3_NAME (0x00000002)
6856
6857#define PERSISTENT_VOLUME_STATE_SHORT_NAME_CREATION_DISABLED (0x00000001)
6858
6859typedef struct _BOOT_AREA_INFO {
6860 ULONG BootSectorCount;
6861 struct {
6863 } BootSectors[2];
6864} BOOT_AREA_INFO, *PBOOT_AREA_INFO;
6865
6866typedef struct _RETRIEVAL_POINTER_BASE {
6867 LARGE_INTEGER FileAreaOffset;
6868} RETRIEVAL_POINTER_BASE, *PRETRIEVAL_POINTER_BASE;
6869
6870typedef struct _FILE_FS_PERSISTENT_VOLUME_INFORMATION {
6871 ULONG VolumeFlags;
6872 ULONG FlagMask;
6873 ULONG Version;
6875} FILE_FS_PERSISTENT_VOLUME_INFORMATION, *PFILE_FS_PERSISTENT_VOLUME_INFORMATION;
6876
6877typedef struct _FILE_SYSTEM_RECOGNITION_INFORMATION {
6878 CHAR FileSystem[9];
6879} FILE_SYSTEM_RECOGNITION_INFORMATION, *PFILE_SYSTEM_RECOGNITION_INFORMATION;
6880
6881#define OPLOCK_LEVEL_CACHE_READ (0x00000001)
6882#define OPLOCK_LEVEL_CACHE_HANDLE (0x00000002)
6883#define OPLOCK_LEVEL_CACHE_WRITE (0x00000004)
6884
6885#define REQUEST_OPLOCK_INPUT_FLAG_REQUEST (0x00000001)
6886#define REQUEST_OPLOCK_INPUT_FLAG_ACK (0x00000002)
6887#define REQUEST_OPLOCK_INPUT_FLAG_COMPLETE_ACK_ON_CLOSE (0x00000004)
6888
6889#define REQUEST_OPLOCK_CURRENT_VERSION 1
6890
6891typedef struct _REQUEST_OPLOCK_INPUT_BUFFER {
6892 USHORT StructureVersion;
6893 USHORT StructureLength;
6894 ULONG RequestedOplockLevel;
6895 ULONG Flags;
6896} REQUEST_OPLOCK_INPUT_BUFFER, *PREQUEST_OPLOCK_INPUT_BUFFER;
6897
6898#define REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED (0x00000001)
6899#define REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED (0x00000002)
6900
6901typedef struct _REQUEST_OPLOCK_OUTPUT_BUFFER {
6902 USHORT StructureVersion;
6903 USHORT StructureLength;
6904 ULONG OriginalOplockLevel;
6905 ULONG NewOplockLevel;
6906 ULONG Flags;
6908 USHORT ShareMode;
6909} REQUEST_OPLOCK_OUTPUT_BUFFER, *PREQUEST_OPLOCK_OUTPUT_BUFFER;
6910
6911#define SD_GLOBAL_CHANGE_TYPE_MACHINE_SID 1
6912
6913typedef struct _SD_CHANGE_MACHINE_SID_INPUT {
6914 USHORT CurrentMachineSIDOffset;
6915 USHORT CurrentMachineSIDLength;
6916 USHORT NewMachineSIDOffset;
6917 USHORT NewMachineSIDLength;
6918} SD_CHANGE_MACHINE_SID_INPUT, *PSD_CHANGE_MACHINE_SID_INPUT;
6919
6920typedef struct _SD_CHANGE_MACHINE_SID_OUTPUT {
6921 ULONGLONG NumSDChangedSuccess;
6922 ULONGLONG NumSDChangedFail;
6923 ULONGLONG NumSDUnused;
6924 ULONGLONG NumSDTotal;
6925 ULONGLONG NumMftSDChangedSuccess;
6926 ULONGLONG NumMftSDChangedFail;
6927 ULONGLONG NumMftSDTotal;
6928} SD_CHANGE_MACHINE_SID_OUTPUT, *PSD_CHANGE_MACHINE_SID_OUTPUT;
6929
6930typedef struct _SD_GLOBAL_CHANGE_INPUT {
6931 ULONG Flags;
6932 ULONG ChangeType;
6933 _ANONYMOUS_UNION union {
6934 SD_CHANGE_MACHINE_SID_INPUT SdChange;
6936} SD_GLOBAL_CHANGE_INPUT, *PSD_GLOBAL_CHANGE_INPUT;
6937
6938typedef struct _SD_GLOBAL_CHANGE_OUTPUT {
6939 ULONG Flags;
6940 ULONG ChangeType;
6941 _ANONYMOUS_UNION union {
6942 SD_CHANGE_MACHINE_SID_OUTPUT SdChange;
6944} SD_GLOBAL_CHANGE_OUTPUT, *PSD_GLOBAL_CHANGE_OUTPUT;
6945
6946#define ENCRYPTED_DATA_INFO_SPARSE_FILE 1
6947
6948typedef struct _EXTENDED_ENCRYPTED_DATA_INFO {
6950 ULONG Length;
6951 ULONG Flags;
6953} EXTENDED_ENCRYPTED_DATA_INFO, *PEXTENDED_ENCRYPTED_DATA_INFO;
6954
6955typedef struct _LOOKUP_STREAM_FROM_CLUSTER_INPUT {
6956 ULONG Flags;
6957 ULONG NumberOfClusters;
6958 LARGE_INTEGER Cluster[1];
6959} LOOKUP_STREAM_FROM_CLUSTER_INPUT, *PLOOKUP_STREAM_FROM_CLUSTER_INPUT;
6960
6961typedef struct _LOOKUP_STREAM_FROM_CLUSTER_OUTPUT {
6962 ULONG Offset;
6963 ULONG NumberOfMatches;
6964 ULONG BufferSizeRequired;
6965} LOOKUP_STREAM_FROM_CLUSTER_OUTPUT, *PLOOKUP_STREAM_FROM_CLUSTER_OUTPUT;
6966
6967#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_PAGE_FILE 0x00000001
6968#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_DENY_DEFRAG_SET 0x00000002
6969#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_FS_SYSTEM_FILE 0x00000004
6970#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_TXF_SYSTEM_FILE 0x00000008
6971
6972#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_MASK 0xff000000
6973#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_DATA 0x01000000
6974#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_INDEX 0x02000000
6975#define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_SYSTEM 0x03000000
6976
6977typedef struct _LOOKUP_STREAM_FROM_CLUSTER_ENTRY {
6978 ULONG OffsetToNext;
6979 ULONG Flags;
6981 LARGE_INTEGER Cluster;
6982 WCHAR FileName[1];
6983} LOOKUP_STREAM_FROM_CLUSTER_ENTRY, *PLOOKUP_STREAM_FROM_CLUSTER_ENTRY;
6984
6985typedef struct _FILE_TYPE_NOTIFICATION_INPUT {
6986 ULONG Flags;
6987 ULONG NumFileTypeIDs;
6988 GUID FileTypeID[1];
6989} FILE_TYPE_NOTIFICATION_INPUT, *PFILE_TYPE_NOTIFICATION_INPUT;
6990
6991#define FILE_TYPE_NOTIFICATION_FLAG_USAGE_BEGIN 0x00000001
6992#define FILE_TYPE_NOTIFICATION_FLAG_USAGE_END 0x00000002
6993
6994DEFINE_GUID(FILE_TYPE_NOTIFICATION_GUID_PAGE_FILE, 0x0d0a64a1, 0x38fc, 0x4db8, 0x9f, 0xe7, 0x3f, 0x43, 0x52, 0xcd, 0x7c, 0x5c);
6995DEFINE_GUID(FILE_TYPE_NOTIFICATION_GUID_HIBERNATION_FILE, 0xb7624d64, 0xb9a3, 0x4cf8, 0x80, 0x11, 0x5b, 0x86, 0xc9, 0x40, 0xe7, 0xb7);
6996DEFINE_GUID(FILE_TYPE_NOTIFICATION_GUID_CRASHDUMP_FILE, 0x9d453eb7, 0xd2a6, 0x4dbd, 0xa2, 0xe3, 0xfb, 0xd0, 0xed, 0x91, 0x09, 0xa9);
6997
6998#ifndef _VIRTUAL_STORAGE_TYPE_DEFINED
6999#define _VIRTUAL_STORAGE_TYPE_DEFINED
7000typedef struct _VIRTUAL_STORAGE_TYPE {
7001 ULONG DeviceId;
7002 GUID VendorId;
7003} VIRTUAL_STORAGE_TYPE, *PVIRTUAL_STORAGE_TYPE;
7004#endif
7005
7006typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST {
7007 ULONG RequestLevel;
7008 ULONG RequestFlags;
7009} STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST, *PSTORAGE_QUERY_DEPENDENT_VOLUME_REQUEST;
7010
7011#define QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_HOST_VOLUMES 0x1
7012#define QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_GUEST_VOLUMES 0x2
7013
7014typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY {
7015 ULONG EntryLength;
7016 ULONG DependencyTypeFlags;
7017 ULONG ProviderSpecificFlags;
7018 VIRTUAL_STORAGE_TYPE VirtualStorageType;
7019} STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY, *PSTORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY;
7020
7021typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY {
7022 ULONG EntryLength;
7023 ULONG DependencyTypeFlags;
7024 ULONG ProviderSpecificFlags;
7025 VIRTUAL_STORAGE_TYPE VirtualStorageType;
7026 ULONG AncestorLevel;
7027 ULONG HostVolumeNameOffset;
7028 ULONG HostVolumeNameSize;
7029 ULONG DependentVolumeNameOffset;
7030 ULONG DependentVolumeNameSize;
7031 ULONG RelativePathOffset;
7032 ULONG RelativePathSize;
7033 ULONG DependentDeviceNameOffset;
7034 ULONG DependentDeviceNameSize;
7035} STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY, *PSTORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY;
7036
7037typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE {
7038 ULONG ResponseLevel;
7039 ULONG NumberEntries;
7040 _ANONYMOUS_UNION union {
7041 STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY Lev1Depends[0];
7042 STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY Lev2Depends[0];
7044} STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE, *PSTORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE;
7045
7046#endif /* (_WIN32_WINNT >= 0x0601) */
7047
7048typedef struct _FILESYSTEM_STATISTICS {
7051 ULONG SizeOfCompleteStructure;
7052 ULONG UserFileReads;
7053 ULONG UserFileReadBytes;
7054 ULONG UserDiskReads;
7055 ULONG UserFileWrites;
7056 ULONG UserFileWriteBytes;
7057 ULONG UserDiskWrites;
7058 ULONG MetaDataReads;
7059 ULONG MetaDataReadBytes;
7060 ULONG MetaDataDiskReads;
7061 ULONG MetaDataWrites;
7062 ULONG MetaDataWriteBytes;
7063 ULONG MetaDataDiskWrites;
7065
7066#define FILESYSTEM_STATISTICS_TYPE_NTFS 1
7067#define FILESYSTEM_STATISTICS_TYPE_FAT 2
7068#define FILESYSTEM_STATISTICS_TYPE_EXFAT 3
7069
7070typedef struct _FAT_STATISTICS {
7071 ULONG CreateHits;
7072 ULONG SuccessfulCreates;
7073 ULONG FailedCreates;
7074 ULONG NonCachedReads;
7075 ULONG NonCachedReadBytes;
7076 ULONG NonCachedWrites;
7077 ULONG NonCachedWriteBytes;
7078 ULONG NonCachedDiskReads;
7079 ULONG NonCachedDiskWrites;
7081
7082typedef struct _EXFAT_STATISTICS {
7083 ULONG CreateHits;
7084 ULONG SuccessfulCreates;
7085 ULONG FailedCreates;
7086 ULONG NonCachedReads;
7087 ULONG NonCachedReadBytes;
7088 ULONG NonCachedWrites;
7089 ULONG NonCachedWriteBytes;
7090 ULONG NonCachedDiskReads;
7091 ULONG NonCachedDiskWrites;
7093
7094typedef struct _NTFS_STATISTICS {
7095 ULONG LogFileFullExceptions;
7096 ULONG OtherExceptions;
7097 ULONG MftReads;
7098 ULONG MftReadBytes;
7099 ULONG MftWrites;
7100 ULONG MftWriteBytes;
7101 struct {
7102 USHORT Write;
7103 USHORT Create;
7104 USHORT SetInfo;
7105 USHORT Flush;
7106 } MftWritesUserLevel;
7107 USHORT MftWritesFlushForLogFileFull;
7108 USHORT MftWritesLazyWriter;
7109 USHORT MftWritesUserRequest;
7110 ULONG Mft2Writes;
7111 ULONG Mft2WriteBytes;
7112 struct {
7113 USHORT Write;
7114 USHORT Create;
7115 USHORT SetInfo;
7116 USHORT Flush;
7117 } Mft2WritesUserLevel;
7118 USHORT Mft2WritesFlushForLogFileFull;
7119 USHORT Mft2WritesLazyWriter;
7120 USHORT Mft2WritesUserRequest;
7121 ULONG RootIndexReads;
7122 ULONG RootIndexReadBytes;
7123 ULONG RootIndexWrites;
7124 ULONG RootIndexWriteBytes;
7125 ULONG BitmapReads;
7126 ULONG BitmapReadBytes;
7127 ULONG BitmapWrites;
7128 ULONG BitmapWriteBytes;
7129 USHORT BitmapWritesFlushForLogFileFull;
7130 USHORT BitmapWritesLazyWriter;
7131 USHORT BitmapWritesUserRequest;
7132 struct {
7133 USHORT Write;
7134 USHORT Create;
7135 USHORT SetInfo;
7136 } BitmapWritesUserLevel;
7137 ULONG MftBitmapReads;
7138 ULONG MftBitmapReadBytes;
7139 ULONG MftBitmapWrites;
7140 ULONG MftBitmapWriteBytes;
7141 USHORT MftBitmapWritesFlushForLogFileFull;
7142 USHORT MftBitmapWritesLazyWriter;
7143 USHORT MftBitmapWritesUserRequest;
7144 struct {
7145 USHORT Write;
7146 USHORT Create;
7147 USHORT SetInfo;
7148 USHORT Flush;
7149 } MftBitmapWritesUserLevel;
7150 ULONG UserIndexReads;
7151 ULONG UserIndexReadBytes;
7152 ULONG UserIndexWrites;
7153 ULONG UserIndexWriteBytes;
7154 ULONG LogFileReads;
7155 ULONG LogFileReadBytes;
7156 ULONG LogFileWrites;
7157 ULONG LogFileWriteBytes;
7158 struct {
7159 ULONG Calls;
7160 ULONG Clusters;
7161 ULONG Hints;
7162 ULONG RunsReturned;
7163 ULONG HintsHonored;
7164 ULONG HintsClusters;
7165 ULONG Cache;
7166 ULONG CacheClusters;
7167 ULONG CacheMiss;
7168 ULONG CacheMissClusters;
7171
7172#endif /* _FILESYSTEMFSCTL_ */
7173
7174#define SYMLINK_FLAG_RELATIVE 1
7175
7176typedef struct _REPARSE_DATA_BUFFER {
7177 ULONG ReparseTag;
7178 USHORT ReparseDataLength;
7180 _ANONYMOUS_UNION union {
7181 struct {
7182 USHORT SubstituteNameOffset;
7183 USHORT SubstituteNameLength;
7184 USHORT PrintNameOffset;
7185 USHORT PrintNameLength;
7186 ULONG Flags;
7187 WCHAR PathBuffer[1];
7188 } SymbolicLinkReparseBuffer;
7189 struct {
7190 USHORT SubstituteNameOffset;
7191 USHORT SubstituteNameLength;
7192 USHORT PrintNameOffset;
7193 USHORT PrintNameLength;
7194 WCHAR PathBuffer[1];
7195 } MountPointReparseBuffer;
7196 struct {
7197 UCHAR DataBuffer[1];
7198 } GenericReparseBuffer;
7201
7202#define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer)
7203
7209 struct {
7210 UCHAR DataBuffer[1];
7211 } GenericReparseBuffer;
7213
7214#define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer)
7215
7216#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE ( 16 * 1024 )
7217
7218/* Reserved reparse tags */
7219#define IO_REPARSE_TAG_RESERVED_ZERO (0)
7220#define IO_REPARSE_TAG_RESERVED_ONE (1)
7221#define IO_REPARSE_TAG_RESERVED_RANGE IO_REPARSE_TAG_RESERVED_ONE
7222
7223#define IsReparseTagMicrosoft(_tag) (((_tag) & 0x80000000))
7224#define IsReparseTagNameSurrogate(_tag) (((_tag) & 0x20000000))
7225
7226#define IO_REPARSE_TAG_VALID_VALUES (0xF000FFFF)
7227
7228#define IsReparseTagValid(tag) ( \
7229 !((tag) & ~IO_REPARSE_TAG_VALID_VALUES) && \
7230 ((tag) > IO_REPARSE_TAG_RESERVED_RANGE) \
7231 )
7232
7233/* MicroSoft reparse point tags */
7234#define IO_REPARSE_TAG_MOUNT_POINT (0xA0000003L)
7235#define IO_REPARSE_TAG_HSM (0xC0000004L)
7236#define IO_REPARSE_TAG_DRIVE_EXTENDER (0x80000005L)
7237#define IO_REPARSE_TAG_HSM2 (0x80000006L)
7238#define IO_REPARSE_TAG_SIS (0x80000007L)
7239#define IO_REPARSE_TAG_WIM (0x80000008L)
7240#define IO_REPARSE_TAG_CSV (0x80000009L)
7241#define IO_REPARSE_TAG_DFS (0x8000000AL)
7242#define IO_REPARSE_TAG_FILTER_MANAGER (0x8000000BL)
7243#define IO_REPARSE_TAG_SYMLINK (0xA000000CL)
7244#define IO_REPARSE_TAG_IIS_CACHE (0xA0000010L)
7245#define IO_REPARSE_TAG_DFSR (0x80000012L)
7246
7247#pragma pack(4)
7248typedef struct _REPARSE_INDEX_KEY {
7252#pragma pack()
7253
7254#define FSCTL_LMR_GET_LINK_TRACKING_INFORMATION CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM,58,METHOD_BUFFERED,FILE_ANY_ACCESS)
7255#define FSCTL_LMR_SET_LINK_TRACKING_INFORMATION CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM,59,METHOD_BUFFERED,FILE_ANY_ACCESS)
7256#define IOCTL_LMR_ARE_FILE_OBJECTS_ON_SAME_SERVER CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM,60,METHOD_BUFFERED,FILE_ANY_ACCESS)
7257
7258#define FSCTL_PIPE_ASSIGN_EVENT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
7259#define FSCTL_PIPE_DISCONNECT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
7260#define FSCTL_PIPE_LISTEN CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
7261#define FSCTL_PIPE_PEEK CTL_CODE(FILE_DEVICE_NAMED_PIPE, 3, METHOD_BUFFERED, FILE_READ_DATA)
7262#define FSCTL_PIPE_QUERY_EVENT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
7263#define FSCTL_PIPE_TRANSCEIVE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 5, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
7264#define FSCTL_PIPE_WAIT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
7265#define FSCTL_PIPE_IMPERSONATE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
7266#define FSCTL_PIPE_SET_CLIENT_PROCESS CTL_CODE(FILE_DEVICE_NAMED_PIPE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
7267#define FSCTL_PIPE_QUERY_CLIENT_PROCESS CTL_CODE(FILE_DEVICE_NAMED_PIPE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
7268#define FSCTL_PIPE_GET_PIPE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
7269#define FSCTL_PIPE_SET_PIPE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
7270#define FSCTL_PIPE_GET_CONNECTION_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
7271#define FSCTL_PIPE_SET_CONNECTION_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
7272#define FSCTL_PIPE_GET_HANDLE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
7273#define FSCTL_PIPE_SET_HANDLE_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
7274#define FSCTL_PIPE_FLUSH CTL_CODE(FILE_DEVICE_NAMED_PIPE, 16, METHOD_BUFFERED, FILE_WRITE_DATA)
7275
7276#define FSCTL_PIPE_INTERNAL_READ CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2045, METHOD_BUFFERED, FILE_READ_DATA)
7277#define FSCTL_PIPE_INTERNAL_WRITE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2046, METHOD_BUFFERED, FILE_WRITE_DATA)
7278#define FSCTL_PIPE_INTERNAL_TRANSCEIVE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2047, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
7279#define FSCTL_PIPE_INTERNAL_READ_OVFLOW CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2048, METHOD_BUFFERED, FILE_READ_DATA)
7280
7281#define FILE_PIPE_READ_DATA 0x00000000
7282#define FILE_PIPE_WRITE_SPACE 0x00000001
7283
7288
7296
7297typedef struct _FILE_PIPE_PEEK_BUFFER {
7298 ULONG NamedPipeState;
7299 ULONG ReadDataAvailable;
7300 ULONG NumberOfMessages;
7301 ULONG MessageLength;
7302 CHAR Data[1];
7304
7305typedef struct _FILE_PIPE_WAIT_FOR_BUFFER {
7307 ULONG NameLength;
7308 BOOLEAN TimeoutSpecified;
7309 WCHAR Name[1];
7311
7313#if !defined(BUILD_WOW6432)
7316#else
7317 ULONGLONG ClientSession;
7318 ULONGLONG ClientProcess;
7319#endif
7321
7322#define FILE_PIPE_COMPUTER_NAME_LENGTH 15
7323
7325#if !defined(BUILD_WOW6432)
7328#else
7329 ULONGLONG ClientSession;
7330 ULONGLONG ClientProcess;
7331#endif
7333 WCHAR ClientComputerBuffer[FILE_PIPE_COMPUTER_NAME_LENGTH+1];
7335
7336#define FSCTL_MAILSLOT_PEEK CTL_CODE(FILE_DEVICE_MAILSLOT, 0, METHOD_NEITHER, FILE_READ_DATA)
7337
7342
7345 UCHAR VolumeId[16];
7347
7351 UCHAR TargetLinkTrackingInformationBuffer[1];
7353
7354#define IO_OPEN_PAGING_FILE 0x0002
7355#define IO_OPEN_TARGET_DIRECTORY 0x0004
7356#define IO_STOP_ON_SYMLINK 0x0008
7357#define IO_MM_PAGING_FILE 0x0010
7358
7359_Function_class_(DRIVER_FS_NOTIFICATION)
7360typedef VOID
7361(NTAPI DRIVER_FS_NOTIFICATION)(
7364typedef DRIVER_FS_NOTIFICATION *PDRIVER_FS_NOTIFICATION;
7365
7370
7375
7377 struct {
7380 } AcquireForModifiedPageWriter;
7381 struct {
7383 } ReleaseForModifiedPageWriter;
7384 struct {
7387 } AcquireForSectionSynchronization;
7388 struct {
7391 } NotifyStreamFileObject;
7392 struct {
7398 } Others;
7400
7401#define FS_FILTER_ACQUIRE_FOR_SECTION_SYNCHRONIZATION (UCHAR)-1
7402#define FS_FILTER_RELEASE_FOR_SECTION_SYNCHRONIZATION (UCHAR)-2
7403#define FS_FILTER_ACQUIRE_FOR_MOD_WRITE (UCHAR)-3
7404#define FS_FILTER_RELEASE_FOR_MOD_WRITE (UCHAR)-4
7405#define FS_FILTER_ACQUIRE_FOR_CC_FLUSH (UCHAR)-5
7406#define FS_FILTER_RELEASE_FOR_CC_FLUSH (UCHAR)-6
7407
7413 struct _FILE_OBJECT *FileObject;
7416
7421
7422typedef VOID
7427
7428typedef struct _FS_FILTER_CALLBACKS {
7444
7452
7453#define IO_FILE_OBJECT_NON_PAGED_POOL_CHARGE 64
7454#define IO_FILE_OBJECT_PAGED_POOL_CHARGE 1024
7455
7456#if (NTDDI_VERSION >= NTDDI_VISTA)
7457typedef struct _IO_PRIORITY_INFO {
7463#endif
7465
7466$if (_WDMDDK_)
7467
7468#define D3COLD_SUPPORT_INTERFACE_VERSION 1
7469
7470typedef
7471_Function_class_(SET_D3COLD_SUPPORT)
7473VOID
7474(NTAPI SET_D3COLD_SUPPORT)(
7475 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7477
7478typedef SET_D3COLD_SUPPORT *PSET_D3COLD_SUPPORT;
7479
7481{
7490
7494 _In_ DEVICE_WAKE_DEPTH WakeDepth)
7495{
7497 {
7504 };
7505
7506 if (WakeDepth < 0 || WakeDepth >= DeviceWakeDepthMaximum)
7507 {
7509 }
7510 else
7511 {
7512 return dstateMap[WakeDepth];
7513 }
7514}
7515
7516typedef
7517_Function_class_(GET_IDLE_WAKE_INFO)
7520(NTAPI GET_IDLE_WAKE_INFO)(
7521 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7524
7525typedef GET_IDLE_WAKE_INFO *PGET_IDLE_WAKE_INFO;
7526
7527typedef
7528_Function_class_(GET_D3COLD_CAPABILITY)
7531(NTAPI GET_D3COLD_CAPABILITY)(
7532 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7534
7535typedef GET_D3COLD_CAPABILITY *PGET_D3COLD_CAPABILITY;
7536
7538{
7543
7544typedef
7545_Function_class_(GET_D3COLD_LAST_TRANSITION_STATUS)
7547VOID
7548(NTAPI GET_D3COLD_LAST_TRANSITION_STATUS)(
7549 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7551
7552typedef GET_D3COLD_LAST_TRANSITION_STATUS *PGET_D3COLD_LAST_TRANSITION_STATUS;
7553
7555{
7567
7568typedef
7569_Function_class_(D3COLD_REQUEST_CORE_POWER_RAIL)
7571VOID
7572(NTAPI D3COLD_REQUEST_CORE_POWER_RAIL)(
7573 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7575
7576typedef D3COLD_REQUEST_CORE_POWER_RAIL *PD3COLD_REQUEST_CORE_POWER_RAIL;
7577
7578typedef
7579_Function_class_(D3COLD_REQUEST_AUX_POWER)
7582(NTAPI D3COLD_REQUEST_AUX_POWER)(
7583 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7586
7587typedef D3COLD_REQUEST_AUX_POWER *PD3COLD_REQUEST_AUX_POWER;
7588
7589typedef
7590_Function_class_(D3COLD_REQUEST_PERST_DELAY)
7593(NTAPI D3COLD_REQUEST_PERST_DELAY)(
7594 _In_reads_opt_(_Inexpressible_("varies")) PVOID Context,
7596
7597typedef D3COLD_REQUEST_PERST_DELAY *PD3COLD_REQUEST_PERST_DELAY;
7598
7600{
struct _IO_STACK_LOCATION * PIO_STACK_LOCATION
struct _IRP * PIRP
struct _IO_STACK_LOCATION IO_STACK_LOCATION
struct _IRP IRP
static UCHAR NotificationContext
unsigned char BOOLEAN
unsigned int UINT32
PULONG FileCount
Definition: SfcGetFiles.c:18
static ULONG StackSize
Definition: StackOverflow.c:19
Type
Definition: Type.h:7
#define Dbg
Definition: acchksup.c:22
#define VOID
Definition: acefi.h:82
ACPI_GPE_EVENT_INFO UINT32 GpeNumber
Definition: acevents.h:196
LONG NTSTATUS
Definition: precomp.h:26
@ Group
Definition: help.c:22
WCHAR FileNameBuffer[MAX_PATH]
Definition: framewnd.c:248
@ Create
Definition: registry.c:563
@ ScsiAdapter
Definition: arcname.c:40
@ EisaAdapter
Definition: arcname.c:39
@ DiskController
Definition: arcname.c:68
INT FormatTime(TCHAR *, LPSYSTEMTIME)
Definition: dir.c:704
#define INTERFACE
Definition: precomp.h:299
WCHAR RootDirectory[MAX_PATH]
Definition: format.c:74
PWCHAR FileSystem
Definition: format.c:72
KAFFINITY * PKAFFINITY
Definition: basetsd.h:189
@ Reserved2
Definition: bcd.h:202
@ Reserved1
Definition: bcd.h:201
PDEVICE_OBJECT PhysicalDeviceObject
Definition: btrfs_drv.h:1157
static VOID NTAPI InterfaceReference(IN PVOID Context)
Definition: pdo.c:956
static VOID NTAPI InterfaceDereference(IN PVOID Context)
Definition: pdo.c:969
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:160
_In_ PFCB _In_ LONGLONG StartingOffset
Definition: cdprocs.h:291
_In_ PSCSI_REQUEST_BLOCK _In_opt_ PVOID _In_ ULONG _In_ BOOLEAN WriteToDevice
Definition: cdrom.h:992
Definition: bufpool.h:45
_In_ PVOID _In_ PCLASS_INIT_DATA InitializationData
Definition: classpnp.h:722
_In_ PCHAR _In_ ULONG DeviceNumber
Definition: classpnp.h:1230
#define _Requires_lock_held_(lock)
#define _Releases_lock_(lock)
IN CINT OUT PVOID ObjectInformation
Definition: conport.c:48
struct _IO_CSQ_IRP_CONTEXT * PIO_CSQ_IRP_CONTEXT
struct _IO_CSQ IO_CSQ
Definition: csq.h:69
IO_CSQ_ACQUIRE_LOCK * PIO_CSQ_ACQUIRE_LOCK
Definition: csq.h:180
IO_CSQ_RELEASE_LOCK * PIO_CSQ_RELEASE_LOCK
Definition: csq.h:196
_In_ PIRP Irp
Definition: csq.h:116
IO_CSQ_INSERT_IRP * PIO_CSQ_INSERT_IRP
Definition: csq.h:117
_In_ PIRP _In_ PVOID InsertContext
Definition: csq.h:258
IO_CSQ_PEEK_NEXT_IRP * PIO_CSQ_PEEK_NEXT_IRP
Definition: csq.h:161
_In_opt_ PIRP _In_opt_ PVOID PeekContext
Definition: csq.h:160
struct _IO_CSQ * PIO_CSQ
Definition: csq.h:69
IO_CSQ_COMPLETE_CANCELED_IRP * PIO_CSQ_COMPLETE_CANCELED_IRP
Definition: csq.h:217
_Out_ PKIRQL Irql
Definition: csq.h:179
struct _IO_CSQ_IRP_CONTEXT IO_CSQ_IRP_CONTEXT
IO_CSQ_INSERT_IRP_EX * PIO_CSQ_INSERT_IRP_EX
Definition: csq.h:259
IO_CSQ_REMOVE_IRP * PIO_CSQ_REMOVE_IRP
Definition: csq.h:135
IO_CSQ Csq
Definition: csqrtns.c:46
ush Pos
Definition: deflate.h:92
LPWSTR Name
Definition: desk.c:124
BOOL WINAPI DeviceIoControl(IN HANDLE hDevice, IN DWORD dwIoControlCode, IN LPVOID lpInBuffer OPTIONAL, IN DWORD nInBufferSize OPTIONAL, OUT LPVOID lpOutBuffer OPTIONAL, IN DWORD nOutBufferSize OPTIONAL, OUT LPDWORD lpBytesReturned OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Definition: deviceio.c:136
#define NTSTATUS
Definition: precomp.h:19
#define DEVICE_TYPE
Definition: guid.c:10
ULONG_PTR KAFFINITY
Definition: compat.h:85
VOID(WINAPI * PINTERFACE_DEREFERENCE)(PVOID Context)
Definition: precomp.h:16
VOID(WINAPI * PINTERFACE_REFERENCE)(PVOID Context)
Definition: precomp.h:13
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT _Inout_ PVCB _Outptr_result_maybenull_ PDCB _In_ PDCB _In_ PDIRENT _In_ ULONG _In_ ULONG _In_ PUNICODE_STRING _In_ PACCESS_MASK _In_ USHORT ShareAccess
Definition: create.c:4148
NTSTATUS FreeClusters(PNTFS_VCB Vcb, PNTFS_ATTR_CONTEXT AttrContext, ULONG AttrOffset, PFILE_RECORD_HEADER FileRecord, ULONG ClustersToFree)
Definition: attrib.c:1057
#define _Kernel_clear_do_init_(yesNo)
Definition: driverspecs.h:239
#define _IRQL_requires_same_
Definition: driverspecs.h:232
#define _IRQL_requires_min_(irql)
Definition: driverspecs.h:231
#define _IRQL_uses_cancel_
Definition: driverspecs.h:237
#define _IRQL_requires_max_(irql)
Definition: driverspecs.h:230
#define __drv_allocatesMem(kind)
Definition: driverspecs.h:257
#define _IRQL_requires_(irql)
Definition: driverspecs.h:229
#define _IRQL_always_function_min_(irql)
Definition: driverspecs.h:226
struct _DEVICE_OBJECT DEVICE_OBJECT
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
UCHAR KIRQL
Definition: env_spec_w32.h:591
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
struct _IO_STATUS_BLOCK IO_STATUS_BLOCK
struct _DEVICE_OBJECT * PDEVICE_OBJECT
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
SECTION_OBJECT_POINTERS * PSECTION_OBJECT_POINTERS
Definition: env_spec_w32.h:765
KIRQL * PKIRQL
Definition: env_spec_w32.h:592
#define PHYSICAL_ADDRESS
Definition: env_spec_w32.h:53
struct _IO_STATUS_BLOCK * PIO_STATUS_BLOCK
Definition: change.c:34
ERESOURCE * PERESOURCE
Definition: env_spec_w32.h:595
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
struct _SECTION_OBJECT_POINTERS SECTION_OBJECT_POINTERS
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2666
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN BOOLEAN ExclusiveLock
Definition: fatprocs.h:2715
IN OUT PVCB IN PDEVICE_OBJECT IN PVPB Vpb
Definition: fatprocs.h:1676
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN CheckForReadOperation
Definition: fatprocs.h:2667
IN PDCB IN POEM_STRING IN PUNICODE_STRING IN OUT POEM_STRING ShortName
Definition: fatprocs.h:1307
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN FailImmediately
Definition: fatprocs.h:2714
@ Flush
Definition: fatprocs.h:1055
IN PDCB IN PCCB IN VBO IN OUT PULONG OUT PDIRENT OUT PBCB OUT PVBO ByteOffset
Definition: fatprocs.h:732
IN PFCB IN PFILE_OBJECT FileObject IN ULONG AllocationSize
Definition: fatprocs.h:323
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2712
struct _FileName FileName
Definition: fatprocs.h:897
ULONG MajorVersion
Definition: ros_glue.cpp:4
ULONG MinorVersion
Definition: ros_glue.cpp:5
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FS_INFORMATION_CLASS FsInformationClass
Definition: fltkernel.h:1330
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG FileAttributes
Definition: fltkernel.h:1236
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
Definition: fltkernel.h:1231
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE _In_ ULONG FileNameLength
Definition: fltkernel.h:1129
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG CompletionFilter
Definition: fltkernel.h:2243
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
Definition: fltkernel.h:2653
_Must_inspect_result_ _Out_ PHANDLE VolumeHandle
Definition: fltkernel.h:2283
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
Definition: fltkernel.h:1340
_Out_ PFLT_FILESYSTEM_TYPE FileSystemType
Definition: fltkernel.h:2407
_Inout_ PLIST_ENTRY _In_ PVOID FsContext
Definition: fltkernel.h:2239
struct _FILE_FULL_EA_INFORMATION * PFILE_FULL_EA_INFORMATION
struct _FILE_BOTH_DIR_INFORMATION * PFILE_BOTH_DIR_INFORMATION
_FILE_INFORMATION_CLASS
Definition: from_kernel.h:61
@ FilePositionInformation
Definition: from_kernel.h:75
@ FileMoveClusterInformation
Definition: from_kernel.h:92
@ FilePipeLocalInformation
Definition: from_kernel.h:85
@ FileMaximumInformation
Definition: from_kernel.h:112
@ FileEndOfFileInformation
Definition: from_kernel.h:81
@ FileIdGlobalTxDirectoryInformation
Definition: from_kernel.h:111
@ FileQuotaInformation
Definition: from_kernel.h:93
@ FileCompressionInformation
Definition: from_kernel.h:89
@ FileRenameInformation
Definition: from_kernel.h:71
@ FileAllInformation
Definition: from_kernel.h:79
@ FilePipeRemoteInformation
Definition: from_kernel.h:86
@ FileTrackingInformation
Definition: from_kernel.h:97
@ FileSfioVolumeInformation
Definition: from_kernel.h:106
@ FileIoPriorityHintInformation
Definition: from_kernel.h:104
@ FileLinkInformation
Definition: from_kernel.h:72
@ FileInternalInformation
Definition: from_kernel.h:67
@ FileAttributeTagInformation
Definition: from_kernel.h:96
@ FileDirectoryInformation
Definition: from_kernel.h:62
@ FileAlignmentInformation
Definition: from_kernel.h:78
@ FileReparsePointInformation
Definition: from_kernel.h:94
@ FileNormalizedNameInformation
Definition: from_kernel.h:109
@ FileObjectIdInformation
Definition: from_kernel.h:90
@ FileIdBothDirectoryInformation
Definition: from_kernel.h:98
@ FileEaInformation
Definition: from_kernel.h:68
@ FilePipeInformation
Definition: from_kernel.h:84
@ FileAlternateNameInformation
Definition: from_kernel.h:82
@ FileIoCompletionNotificationInformation
Definition: from_kernel.h:102
@ FileNamesInformation
Definition: from_kernel.h:73
@ FileMailslotSetInformation
Definition: from_kernel.h:88
@ FileValidDataLengthInformation
Definition: from_kernel.h:100
@ FileNameInformation
Definition: from_kernel.h:70
@ FileMailslotQueryInformation
Definition: from_kernel.h:87
@ FileAllocationInformation
Definition: from_kernel.h:80
@ FileCompletionInformation
Definition: from_kernel.h:91
@ FileFullDirectoryInformation
Definition: from_kernel.h:63
@ FileSfioReserveInformation
Definition: from_kernel.h:105
@ FileNetworkOpenInformation
Definition: from_kernel.h:95
@ FileStreamInformation
Definition: from_kernel.h:83
@ FileModeInformation
Definition: from_kernel.h:77
@ FileBasicInformation
Definition: from_kernel.h:65
@ FileDispositionInformation
Definition: from_kernel.h:74
@ FileShortNameInformation
Definition: from_kernel.h:101
@ FileNetworkPhysicalNameInformation
Definition: from_kernel.h:110
@ FileFullEaInformation
Definition: from_kernel.h:76
@ FileProcessIdsUsingFileInformation
Definition: from_kernel.h:108
@ FileBothDirectoryInformation
Definition: from_kernel.h:64
@ FileIoStatusBlockRangeInformation
Definition: from_kernel.h:103
@ FileHardLinkInformation
Definition: from_kernel.h:107
@ FileIdFullDirectoryInformation
Definition: from_kernel.h:99
enum _FSINFOCLASS * PFS_INFORMATION_CLASS
struct _FILE_GET_EA_INFORMATION FILE_GET_EA_INFORMATION
struct _FILE_NETWORK_OPEN_INFORMATION FILE_NETWORK_OPEN_INFORMATION
enum _FILE_INFORMATION_CLASS * PFILE_INFORMATION_CLASS
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
Definition: directory.c:44
struct _FILE_NETWORK_OPEN_INFORMATION * PFILE_NETWORK_OPEN_INFORMATION
struct _FILE_LINK_INFORMATION FILE_LINK_INFORMATION
struct _FILE_LINK_INFORMATION * PFILE_LINK_INFORMATION
struct _FILE_FS_ATTRIBUTE_INFORMATION FILE_FS_ATTRIBUTE_INFORMATION
struct _FILE_NAMES_INFORMATION * PFILE_NAMES_INFORMATION
_FSINFOCLASS
Definition: from_kernel.h:218
@ FileFsVolumeFlagsInformation
Definition: from_kernel.h:228
@ FileFsControlInformation
Definition: from_kernel.h:224
@ FileFsDeviceInformation
Definition: from_kernel.h:222
@ FileFsLabelInformation
Definition: from_kernel.h:220
@ FileFsAttributeInformation
Definition: from_kernel.h:223
@ FileFsVolumeInformation
Definition: from_kernel.h:219
@ FileFsSizeInformation
Definition: from_kernel.h:221
@ FileFsMaximumInformation
Definition: from_kernel.h:229
struct _FILE_GET_EA_INFORMATION * PFILE_GET_EA_INFORMATION
struct _FILE_INTERNAL_INFORMATION FILE_INTERNAL_INFORMATION
struct _FILE_FS_ATTRIBUTE_INFORMATION * PFILE_FS_ATTRIBUTE_INFORMATION
struct _FILE_FS_SIZE_INFORMATION FILE_FS_SIZE_INFORMATION
enum _FSINFOCLASS FS_INFORMATION_CLASS
struct _FILE_BOTH_DIR_INFORMATION FILE_BOTH_DIR_INFORMATION
struct _FILE_FULL_EA_INFORMATION FILE_FULL_EA_INFORMATION
struct _FILE_INTERNAL_INFORMATION * PFILE_INTERNAL_INFORMATION
struct _FILE_FS_FULL_SIZE_INFORMATION FILE_FS_FULL_SIZE_INFORMATION
struct _FILE_FS_FULL_SIZE_INFORMATION * PFILE_FS_FULL_SIZE_INFORMATION
struct _FILE_NAMES_INFORMATION FILE_NAMES_INFORMATION
struct _FILE_FS_SIZE_INFORMATION * PFILE_FS_SIZE_INFORMATION
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:49
_Must_inspect_result_ _In_ PDEVICE_OBJECT _In_ PSECTION_OBJECT_POINTERS SectionObjectPointer
Definition: fsrtlfuncs.h:1369
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING StreamName
Definition: fsrtlfuncs.h:741
union Alignment_ Alignment
Status
Definition: gdiplustypes.h:25
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
CPPORT Port[4]
Definition: headless.c:35
_In_ ULONG Mode
Definition: hubbusif.h:303
#define _NTIFS_
Definition: ifssupp.h:20
struct _FILE_IO_COMPLETION_NOTIFICATION_INFORMATION * PFILE_IO_COMPLETION_NOTIFICATION_INFORMATION
@ FileRemoteProtocolInformation
Definition: winternl.h:1430
@ FileStandardLinkInformation
Definition: winternl.h:1429
@ FileIsRemoteDeviceInformation
Definition: winternl.h:1426
@ FileAttributeCacheInformation
Definition: winternl.h:1427
@ FileNumaNodeInformation
Definition: winternl.h:1428
struct _FILE_ATTRIBUTE_TAG_INFORMATION FILE_ATTRIBUTE_TAG_INFORMATION
struct _FILE_IO_COMPLETION_NOTIFICATION_INFORMATION FILE_IO_COMPLETION_NOTIFICATION_INFORMATION
struct _FILE_OBJECTID_BUFFER * PFILE_OBJECTID_BUFFER
struct _FILE_OBJECTID_INFORMATION FILE_OBJECTID_INFORMATION
struct _FILE_MODE_INFORMATION FILE_MODE_INFORMATION
struct _FILE_ALLOCATION_INFORMATION * PFILE_ALLOCATION_INFORMATION
struct _FILE_FULL_DIRECTORY_INFORMATION * PFILE_FULL_DIR_INFORMATION
struct _FILE_RENAME_INFORMATION * PFILE_RENAME_INFORMATION
struct _FILE_QUOTA_INFORMATION FILE_QUOTA_INFORMATION
struct _FILE_REPARSE_POINT_INFORMATION * PFILE_REPARSE_POINT_INFORMATION
struct _FILE_QUOTA_INFORMATION * PFILE_QUOTA_INFORMATION
struct _FILE_ALL_INFORMATION * PFILE_ALL_INFORMATION
struct _FILE_FULL_DIRECTORY_INFORMATION FILE_FULL_DIR_INFORMATION
struct _FILE_OBJECTID_BUFFER FILE_OBJECTID_BUFFER
struct _FILE_NAME_INFORMATION FILE_NAME_INFORMATION
struct _FILE_STREAM_INFORMATION * PFILE_STREAM_INFORMATION
struct _FILE_NAME_INFORMATION * PFILE_NAME_INFORMATION
struct _FILE_RENAME_INFORMATION FILE_RENAME_INFORMATION
struct _FILE_EA_INFORMATION * PFILE_EA_INFORMATION
struct _FILE_REPARSE_POINT_INFORMATION FILE_REPARSE_POINT_INFORMATION
struct _FILE_COMPLETION_INFORMATION * PFILE_COMPLETION_INFORMATION
struct _FILE_ID_GLOBAL_TX_DIR_INFORMATION FILE_ID_GLOBAL_TX_DIR_INFORMATION
struct _FILE_ALLOCATION_INFORMATION FILE_ALLOCATION_INFORMATION
struct _FILE_MAILSLOT_QUERY_INFORMATION FILE_MAILSLOT_QUERY_INFORMATION
struct _FILE_ATTRIBUTE_TAG_INFORMATION * PFILE_ATTRIBUTE_TAG_INFORMATION
struct _FILE_MAILSLOT_SET_INFORMATION * PFILE_MAILSLOT_SET_INFORMATION
struct _FILE_OBJECTID_INFORMATION * PFILE_OBJECTID_INFORMATION
struct _FILE_COMPLETION_INFORMATION FILE_COMPLETION_INFORMATION
struct _FILE_EA_INFORMATION FILE_EA_INFORMATION
struct _FILE_MAILSLOT_QUERY_INFORMATION * PFILE_MAILSLOT_QUERY_INFORMATION
struct _FILE_DIRECTORY_INFORMATION * PFILE_DIRECTORY_INFORMATION
struct _FILE_PIPE_INFORMATION * PFILE_PIPE_INFORMATION
struct _FILE_MODE_INFORMATION * PFILE_MODE_INFORMATION
struct _FILE_STREAM_INFORMATION FILE_STREAM_INFORMATION
struct _FILE_ID_GLOBAL_TX_DIR_INFORMATION * PFILE_ID_GLOBAL_TX_DIR_INFORMATION
struct _FILE_ALL_INFORMATION FILE_ALL_INFORMATION
struct _FILE_PIPE_LOCAL_INFORMATION * PFILE_PIPE_LOCAL_INFORMATION
struct _FILE_MAILSLOT_SET_INFORMATION FILE_MAILSLOT_SET_INFORMATION
struct _FILE_DIRECTORY_INFORMATION FILE_DIRECTORY_INFORMATION
#define bits
Definition: infblock.c:15
ULONG IoWriteOperationCount
Definition: iomgr.c:41
LARGE_INTEGER IoReadTransferCount
Definition: iomgr.c:40
KSPIN_LOCK IoStatisticsLock
Definition: iomgr.c:45
LARGE_INTEGER IoWriteTransferCount
Definition: iomgr.c:42
ULONG IoOtherOperationCount
Definition: iomgr.c:43
LARGE_INTEGER IoOtherTransferCount
Definition: iomgr.c:44
ULONG IoReadOperationCount
Definition: iomgr.c:39
#define Unused(x)
Definition: atlwin.h:28
DeviceType
Definition: mmdrv.h:42
void Cancel(int sigNum)
Definition: shell.c:481
#define FILE_STANDARD_INFORMATION
Definition: disk.h:54
#define FILE_BASIC_INFORMATION
Definition: disk.h:53
unsigned __int64 ULONG64
Definition: imports.h:198
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
Definition: env.c:47
static const ENTRY Entries[]
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
DWORD SECURITY_INFORMATION
Definition: ms-dtyp.idl:311
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:159
_In_ PNDIS_STRING _In_opt_ NDIS_HANDLE DeviceContext
Definition: ndis.h:5246
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID ApcContext
Definition: iofuncs.h:727
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PLARGE_INTEGER MaximumSize
Definition: mmfuncs.h:362
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
Definition: rtlfuncs.h:1165
static BOOL StartDevice(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DevInfoData OPTIONAL, IN BOOL bEnable, IN DWORD HardwareProfile OPTIONAL, OUT BOOL *bNeedReboot OPTIONAL)
Definition: wizard.c:173
DRIVER_DISPATCH(nfs41_FsdDispatch)
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _Out_opt_
Definition: no_sal2.h:214
#define _Struct_size_bytes_(s)
Definition: no_sal2.h:386
#define _Inout_
Definition: no_sal2.h:162
#define _At_(t, a)
Definition: no_sal2.h:40
#define _Outptr_
Definition: no_sal2.h:262
#define _Out_writes_bytes_opt_(s)
Definition: no_sal2.h:228
#define _Inout_opt_
Definition: no_sal2.h:216
#define _Must_inspect_result_
Definition: no_sal2.h:62
#define _Out_writes_(s)
Definition: no_sal2.h:176
#define _Out_
Definition: no_sal2.h:160
#define _In_reads_opt_(s)
Definition: no_sal2.h:222
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _Field_range_(l, h)
Definition: no_sal2.h:380
#define _Function_class_(n)
Definition: no_sal2.h:398
#define _Inout_updates_bytes_(s)
Definition: no_sal2.h:184
#define _Out_writes_bytes_(s)
Definition: no_sal2.h:178
#define _When_(c, a)
Definition: no_sal2.h:38
#define _In_reads_bytes_opt_(s)
Definition: no_sal2.h:224
int Count
Definition: noreturn.cpp:7
BOOL WINAPI CreatePipe(PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes, DWORD nSize)
Definition: npipe.c:117
#define TypeA
Definition: nslookup.h:13
ULONG ACCESS_MASK
Definition: nt_native.h:40
struct _FILE_FS_DEVICE_INFORMATION * PFILE_FS_DEVICE_INFORMATION
struct _FILE_FS_DEVICE_INFORMATION FILE_FS_DEVICE_INFORMATION
struct _FILE_POSITION_INFORMATION FILE_POSITION_INFORMATION
struct _FILE_END_OF_FILE_INFORMATION * PFILE_END_OF_FILE_INFORMATION
struct _FILE_BASIC_INFORMATION * PFILE_BASIC_INFORMATION
struct _FILE_DISPOSITION_INFORMATION FILE_DISPOSITION_INFORMATION
struct _FILE_ALIGNMENT_INFORMATION FILE_ALIGNMENT_INFORMATION
struct _FILE_ALIGNMENT_INFORMATION * PFILE_ALIGNMENT_INFORMATION
struct _FILE_DISPOSITION_INFORMATION * PFILE_DISPOSITION_INFORMATION
struct _FILE_POSITION_INFORMATION * PFILE_POSITION_INFORMATION
VOID(* PIO_APC_ROUTINE)(IN PVOID ApcContext, IN PIO_STATUS_BLOCK IoStatusBlock, IN ULONG Reserved)
Definition: nt_native.h:880
struct _FILE_END_OF_FILE_INFORMATION FILE_END_OF_FILE_INFORMATION
LONGLONG USN
Definition: ntbasedef.h:400
void *POINTER_64 PVOID64
Definition: ntbasedef.h:335
_NullNull_terminated_ WCHAR * PZZWSTR
Definition: ntbasedef.h:432
#define _NTDDK_
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:142
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
#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 DUMMYUNIONNAME
Definition: pecoff.h:91
#define DUMMYSTRUCTNAME
Definition: pecoff.h:117
#define _ANONYMOUS_UNION
Definition: pecoff.h:89
#define _ANONYMOUS_STRUCT
Definition: pecoff.h:115
#define CONST
Definition: pedump.c:81
#define BOOLEAN
Definition: pedump.c:73
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
static WCHAR Address[46]
Definition: ping.c:68
static ULONG Timeout
Definition: ping.c:61
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
SECURITY_INTEGER TimeStamp
Definition: sspi.h:78
#define _DEVIOCTL_
Definition: winioctl.h:42
struct NTFS_VOLUME_DATA_BUFFER * PNTFS_VOLUME_DATA_BUFFER
struct _FAT_STATISTICS * PFAT_STATISTICS
struct STARTING_LCN_INPUT_BUFFER * PSTARTING_LCN_INPUT_BUFFER
struct VOLUME_BITMAP_BUFFER * PVOLUME_BITMAP_BUFFER
struct STARTING_VCN_INPUT_BUFFER * PSTARTING_VCN_INPUT_BUFFER
struct NTFS_EXTENDED_VOLUME_DATA * PNTFS_EXTENDED_VOLUME_DATA
struct MOVE_FILE_DATA * PMOVE_FILE_DATA
struct RETRIEVAL_POINTERS_BUFFER * PRETRIEVAL_POINTERS_BUFFER
struct _FILESYSTEM_STATISTICS * PFILESYSTEM_STATISTICS
struct _EXFAT_STATISTICS EXFAT_STATISTICS
struct _EXFAT_STATISTICS * PEXFAT_STATISTICS
struct _FILESYSTEM_STATISTICS FILESYSTEM_STATISTICS
struct NTFS_FILE_RECORD_OUTPUT_BUFFER * PNTFS_FILE_RECORD_OUTPUT_BUFFER
struct _NTFS_STATISTICS NTFS_STATISTICS
struct _FAT_STATISTICS FAT_STATISTICS
struct NTFS_FILE_RECORD_INPUT_BUFFER * PNTFS_FILE_RECORD_INPUT_BUFFER
struct _NTFS_STATISTICS * PNTFS_STATISTICS
enum _INTERFACE_TYPE INTERFACE_TYPE
@ Reserved3
Definition: sacdrv.h:1471
@ Restart
Definition: sacdrv.h:269
struct _IO_RESOURCE_DESCRIPTOR * PIO_RESOURCE_DESCRIPTOR
_DMA_WIDTH
Definition: miniport.h:104
@ MaximumDmaWidth
Definition: miniport.h:108
@ Width16Bits
Definition: miniport.h:106
@ Width8Bits
Definition: miniport.h:105
@ Width32Bits
Definition: miniport.h:107
enum _DMA_WIDTH * PDMA_WIDTH
enum _BUS_DATA_TYPE * PBUS_DATA_TYPE
enum _KINTERRUPT_MODE KINTERRUPT_MODE
enum _IRQ_DEVICE_POLICY IRQ_DEVICE_POLICY
enum _IRQ_PRIORITY * PIRQ_PRIORITY
_BUS_DATA_TYPE
Definition: miniport.h:87
@ SgiInternalConfiguration
Definition: miniport.h:100
@ EisaConfiguration
Definition: miniport.h:90
@ MaximumBusDataType
Definition: miniport.h:101
@ PNPISAConfiguration
Definition: miniport.h:99
@ MPIConfiguration
Definition: miniport.h:97
@ MPSAConfiguration
Definition: miniport.h:98
@ Cmos
Definition: miniport.h:89
@ ConfigurationSpaceUndefined
Definition: miniport.h:88
@ VMEConfiguration
Definition: miniport.h:94
@ NuBusConfiguration
Definition: miniport.h:95
@ PCMCIAConfiguration
Definition: miniport.h:96
@ CbusConfiguration
Definition: miniport.h:92
@ PCIConfiguration
Definition: miniport.h:93
enum _IRQ_DEVICE_POLICY * PIRQ_DEVICE_POLICY
enum _BUS_DATA_TYPE BUS_DATA_TYPE
enum _DMA_SPEED DMA_SPEED
enum _IRQ_PRIORITY IRQ_PRIORITY
struct _INTERFACE * PINTERFACE
struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR
enum _DMA_WIDTH DMA_WIDTH
_DMA_SPEED
Definition: miniport.h:111
@ TypeF
Definition: miniport.h:116
@ MaximumDmaSpeed
Definition: miniport.h:117
@ TypeB
Definition: miniport.h:114
@ Compatible
Definition: miniport.h:112
@ TypeC
Definition: miniport.h:115
_IRQ_DEVICE_POLICY
Definition: miniport.h:128
@ IrqPolicyOneCloseProcessor
Definition: miniport.h:131
@ IrqPolicyAllCloseProcessors
Definition: miniport.h:130
@ IrqPolicyAllProcessorsInMachine
Definition: miniport.h:132
@ IrqPolicySpreadMessagesAcrossAllProcessors
Definition: miniport.h:134
@ IrqPolicyMachineDefault
Definition: miniport.h:129
@ IrqPolicySpecifiedProcessors
Definition: miniport.h:133
_IRQ_PRIORITY
Definition: miniport.h:137
@ IrqPriorityUndefined
Definition: miniport.h:138
@ IrqPriorityHigh
Definition: miniport.h:141
@ IrqPriorityNormal
Definition: miniport.h:140
@ IrqPriorityLow
Definition: miniport.h:139
enum _DMA_SPEED * PDMA_SPEED
DWORD LCID
Definition: nls.h:13
_CONFIGURATION_TYPE
Definition: arc.h:112
@ PointerController
Definition: arc.h:134
@ MultiFunctionAdapter
Definition: arc.h:125
@ SecondaryIcache
Definition: arc.h:118
@ ModemPeripheral
Definition: arc.h:141
@ RealModeIrqRoutingTable
Definition: arc.h:152
@ SerialController
Definition: arc.h:130
@ PrimaryIcache
Definition: arc.h:116
@ ParallelController
Definition: arc.h:133
@ DiskPeripheral
Definition: arc.h:138
@ SystemMemory
Definition: arc.h:150
@ ArcSystem
Definition: arc.h:113
@ KeyboardPeripheral
Definition: arc.h:145
@ AudioController
Definition: arc.h:136
@ WormController
Definition: arc.h:129
@ TerminalPeripheral
Definition: arc.h:146
@ PrinterPeripheral
Definition: arc.h:143
@ RealModePCIEnumeration
Definition: arc.h:153
@ TapeController
Definition: arc.h:127
@ PrimaryDcache
Definition: arc.h:117
@ FloppyDiskPeripheral
Definition: arc.h:139
@ SecondaryDcache
Definition: arc.h:119
@ CentralProcessor
Definition: arc.h:114
@ KeyboardController
Definition: arc.h:135
@ DockingInformation
Definition: arc.h:151
@ LinePeripheral
Definition: arc.h:148
@ OtherPeripheral
Definition: arc.h:147
@ MonitorPeripheral
Definition: arc.h:142
@ TcAdapter
Definition: arc.h:122
@ NetworkPeripheral
Definition: arc.h:149
@ OtherController
Definition: arc.h:137
@ TapePeripheral
Definition: arc.h:140
@ MaximumType
Definition: arc.h:154
@ SecondaryCache
Definition: arc.h:120
@ CdromController
Definition: arc.h:128
@ PointerPeripheral
Definition: arc.h:144
@ DisplayController
Definition: arc.h:132
@ NetworkController
Definition: arc.h:131
@ DtiAdapter
Definition: arc.h:124
@ FloatingPointProcessor
Definition: arc.h:115
@ Removable
Definition: arc.h:90
enum _CONFIGURATION_TYPE CONFIGURATION_TYPE
enum _CONFIGURATION_TYPE * PCONFIGURATION_TYPE
$if(_WDMDDK_) typedef struct _KFLOATING_SAVE
Definition: ke.h:1
$endif(_WDMDDK_) $if(_NTDDK_) typedef struct _NEON128
Definition: ke.h:202
struct _FILE_STANDARD_INFORMATION * PFILE_STANDARD_INFORMATION
struct _FILE_ACCESS_INFORMATION FILE_ACCESS_INFORMATION
#define FileAccessInformation
Definition: propsheet.cpp:51
struct _FILE_ACCESS_INFORMATION * PFILE_ACCESS_INFORMATION
#define FileStandardInformation
Definition: propsheet.cpp:61
#define STATUS_MORE_PROCESSING_REQUIRED
Definition: shellext.h:68
struct _REPARSE_DATA_BUFFER REPARSE_DATA_BUFFER
struct _REPARSE_DATA_BUFFER * PREPARSE_DATA_BUFFER
DataType
Definition: simd.h:252
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:4778
PCI_AGP_ISOCH_COMMAND IsochCommand
Definition: iotypes.h:4783
PCI_AGP_APERTURE_PAGE_SIZE AperturePageSize
Definition: iotypes.h:4780
PCI_AGP_ISOCH_STATUS IsochStatus
Definition: iotypes.h:4777
USHORT MaxMemoryReadByteCount
Definition: iotypes.h:3728
ULONG DeviceNumber
Definition: iotypes.h:3737
USHORT DataParityErrorRecoveryEnable
Definition: iotypes.h:3726
ULONG DesignedMaxCumulativeReadSize
Definition: iotypes.h:3746
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:3723
USHORT EnableRelaxedOrdering
Definition: iotypes.h:3727
ULONG UnexpectedSplitCompletion
Definition: iotypes.h:3742
ULONG FunctionNumber
Definition: iotypes.h:3736
ULONG DesignedMaxOutstandingSplitTransactions
Definition: iotypes.h:3745
ULONG SplitCompletionDiscarded
Definition: iotypes.h:3741
ULONG ReceivedSplitCompletionErrorMessage
Definition: iotypes.h:3747
ULONG Device64Bit
Definition: iotypes.h:3739
ULONG DesignedMaxMemoryReadByteCount
Definition: iotypes.h:3744
USHORT MaxOutstandingSplitTransactions
Definition: iotypes.h:3729
ULONG Capable133MHz
Definition: iotypes.h:3740
USHORT AsUSHORT
Definition: iotypes.h:3732
ULONG CapablePCIX533
Definition: iotypes.h:3749
ULONG DeviceComplexity
Definition: iotypes.h:3743
USHORT Reserved
Definition: iotypes.h:3730
ULONG CapablePCIX266
Definition: iotypes.h:3748
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:3098
PGPE_CLEAR_STATUS2 GpeClearStatus
Definition: iotypes.h:3103
PGPE_DISCONNECT_VECTOR2 GpeDisconnectVector
Definition: iotypes.h:3100
PGPE_CONNECT_VECTOR2 GpeConnectVector
Definition: iotypes.h:3099
PGPE_DISABLE_EVENT2 GpeDisableEvent
Definition: iotypes.h:3102
PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2 UnregisterForDeviceNotifications
Definition: iotypes.h:3105
PREGISTER_FOR_DEVICE_NOTIFICATIONS2 RegisterForDeviceNotifications
Definition: iotypes.h:3104
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:3097
PGPE_ENABLE_EVENT2 GpeEnableEvent
Definition: iotypes.h:3101
PUNREGISTER_FOR_DEVICE_NOTIFICATIONS UnregisterForDeviceNotifications
Definition: iotypes.h:3026
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:3019
PGPE_CLEAR_STATUS GpeClearStatus
Definition: iotypes.h:3024
PGPE_ENABLE_EVENT GpeEnableEvent
Definition: iotypes.h:3022
PREGISTER_FOR_DEVICE_NOTIFICATIONS RegisterForDeviceNotifications
Definition: iotypes.h:3025
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:3018
PGPE_DISCONNECT_VECTOR GpeDisconnectVector
Definition: iotypes.h:3021
PGPE_DISABLE_EVENT GpeDisableEvent
Definition: iotypes.h:3023
PGPE_CONNECT_VECTOR GpeConnectVector
Definition: iotypes.h:3020
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4523
PGET_SET_DEVICE_DATA GetBusData
Definition: iotypes.h:4526
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4524
PGET_SET_DEVICE_DATA SetBusData
Definition: iotypes.h:4525
_In_ PDEVICE_OBJECT ReserveDevice
Definition: iotypes.h:4600
_Inout_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4581
PDEVICE_OBJECT OwningObject
Definition: iotypes.h:4563
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4661
PARBITER_HANDLER ArbiterHandler
Definition: iotypes.h:4663
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4662
Definition: iotypes.h:4633
ULONG BusNumber
Definition: iotypes.h:4643
ARBITER_RESULT Result
Definition: iotypes.h:4646
PIO_RESOURCE_DESCRIPTOR SelectedAlternative
Definition: iotypes.h:4645
LONG_PTR WorkSpace
Definition: iotypes.h:4640
ULONG AlternativeCount
Definition: iotypes.h:4635
PDEVICE_OBJECT PhysicalDeviceObject
Definition: iotypes.h:4637
ULONG Flags
Definition: iotypes.h:4639
PIO_RESOURCE_DESCRIPTOR Alternatives
Definition: iotypes.h:4636
LIST_ENTRY ListEntry
Definition: iotypes.h:4634
ARBITER_REQUEST_SOURCE RequestSource
Definition: iotypes.h:4638
ULONG SlotNumber
Definition: iotypes.h:4642
INTERFACE_TYPE InterfaceType
Definition: iotypes.h:4641
PCM_PARTIAL_RESOURCE_DESCRIPTOR Assignment
Definition: iotypes.h:4644
ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict
Definition: iotypes.h:4609
ARBITER_ADD_RESERVED_PARAMETERS AddReserved
Definition: iotypes.h:4611
ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation
Definition: iotypes.h:4605
ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation
Definition: iotypes.h:4607
ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation
Definition: iotypes.h:4606
ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources
Definition: iotypes.h:4608
ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate
Definition: iotypes.h:4610
_Out_ PCM_PARTIAL_RESOURCE_LIST * AllocatedResources
Definition: iotypes.h:4585
_In_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4596
_In_ PDEVICE_OBJECT PhysicalDeviceObject
Definition: iotypes.h:4589
_In_ PIO_RESOURCE_DESCRIPTOR ConflictingResource
Definition: iotypes.h:4590
_Out_ PARBITER_CONFLICT_INFO * Conflicts
Definition: iotypes.h:4592
_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom
Definition: iotypes.h:4577
_Inout_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4575
_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom
Definition: iotypes.h:4571
_Inout_ PLIST_ENTRY ArbitrationList
Definition: iotypes.h:4569
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:4485
BOOLEAN AtDiskSecondaryAddressClaimed
Definition: iotypes.h:4486
KDEVICE_QUEUE DeviceWaitQueue
Definition: iotypes.h:4467
LARGE_INTEGER Spare2
Definition: iotypes.h:4469
PVOID ControllerExtension
Definition: iotypes.h:4466
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:7604
PD3COLD_REQUEST_CORE_POWER_RAIL RequestCorePowerRail
Definition: iotypes.h:7606
PD3COLD_REQUEST_AUX_POWER RequestAuxPower
Definition: iotypes.h:7607
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:7605
PD3COLD_REQUEST_PERST_DELAY RequestPerstDelay
Definition: iotypes.h:7608
PGET_D3COLD_CAPABILITY GetBusDriverD3ColdSupport
Definition: iotypes.h:7564
PSET_D3COLD_SUPPORT SetD3ColdSupport
Definition: iotypes.h:7561
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:7560
PGET_D3COLD_CAPABILITY GetD3ColdCapability
Definition: iotypes.h:7563
PGET_D3COLD_LAST_TRANSITION_STATUS GetLastTransitionStatus
Definition: iotypes.h:7565
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:7559
PGET_IDLE_WAKE_INFO GetIdleWakeInfo
Definition: iotypes.h:7562
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:2171
ULONG CheckSum
Definition: iotypes.h:4496
ULONG PartitionStyle
Definition: iotypes.h:4492
ULONG Signature
Definition: iotypes.h:4495
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:2297
USHORT Size
Definition: iotypes.h:2296
USHORT Version
Definition: iotypes.h:2295
PINITIALIZE_DMA_TRANSFER_CONTEXT InitializeDmaTransferContext
Definition: iotypes.h:2653
PFLUSH_ADAPTER_BUFFERS_EX FlushAdapterBuffersEx
Definition: iotypes.h:2661
PCANCEL_ADAPTER_CHANNEL CancelAdapterChannel
Definition: iotypes.h:2657
PGET_DMA_ADAPTER_INFO GetDmaAdapterInfo
Definition: iotypes.h:2651
PFREE_ADAPTER_CHANNEL FreeAdapterChannel
Definition: iotypes.h:2641
PMAP_TRANSFER_EX MapTransferEx
Definition: iotypes.h:2658
PGET_DMA_TRANSFER_INFO GetDmaTransferInfo
Definition: iotypes.h:2652
PALLOCATE_ADAPTER_CHANNEL_EX AllocateAdapterChannelEx
Definition: iotypes.h:2655
PALLOCATE_COMMON_BUFFER AllocateCommonBuffer
Definition: iotypes.h:2637
PCANCEL_MAPPED_TRANSFER CancelMappedTransfer
Definition: iotypes.h:2663
PGET_DMA_ALIGNMENT GetDmaAlignment
Definition: iotypes.h:2644
PPUT_SCATTER_GATHER_LIST PutScatterGatherList
Definition: iotypes.h:2647
PBUILD_SCATTER_GATHER_LIST BuildScatterGatherList
Definition: iotypes.h:2649
PFLUSH_DMA_BUFFER FlushDmaBuffer
Definition: iotypes.h:2665
PCONFIGURE_ADAPTER_CHANNEL ConfigureAdapterChannel
Definition: iotypes.h:2656
PFREE_COMMON_BUFFER FreeCommonBuffer
Definition: iotypes.h:2638
PFREE_COMMON_BUFFER_FROM_VECTOR FreeCommonBufferFromVector
Definition: iotypes.h:2672
PALLOCATE_COMMON_BUFFER_EX AllocateCommonBufferEx
Definition: iotypes.h:2654
PFREE_COMMON_BUFFER_VECTOR FreeCommonBufferVector
Definition: iotypes.h:2673
PREAD_DMA_COUNTER ReadDmaCounter
Definition: iotypes.h:2645
PALLOCATE_ADAPTER_CHANNEL AllocateAdapterChannel
Definition: iotypes.h:2639
PBUILD_MDL_FROM_SCATTER_GATHER_LIST BuildMdlFromScatterGatherList
Definition: iotypes.h:2650
PFLUSH_ADAPTER_BUFFERS FlushAdapterBuffers
Definition: iotypes.h:2640
PALLOCATE_COMMON_BUFFER_WITH_BOUNDS AllocateCommonBufferWithBounds
Definition: iotypes.h:2669
PJOIN_DMA_DOMAIN JoinDmaDomain
Definition: iotypes.h:2666
PALLOCATE_DOMAIN_COMMON_BUFFER AllocateDomainCommonBuffer
Definition: iotypes.h:2664
PCALCULATE_SCATTER_GATHER_LIST_SIZE CalculateScatterGatherList
Definition: iotypes.h:2648
PGET_SCATTER_GATHER_LIST_EX GetScatterGatherListEx
Definition: iotypes.h:2659
PGET_COMMON_BUFFER_FROM_VECTOR_BY_INDEX GetCommonBufferFromVectorByIndex
Definition: iotypes.h:2671
PGET_SCATTER_GATHER_LIST GetScatterGatherList
Definition: iotypes.h:2646
PFREE_MAP_REGISTERS FreeMapRegisters
Definition: iotypes.h:2642
PMAP_TRANSFER MapTransfer
Definition: iotypes.h:2643
PGET_DMA_DOMAIN GetDmaDomain
Definition: iotypes.h:2668
PLEAVE_DMA_DOMAIN LeaveDmaDomain
Definition: iotypes.h:2667
PFREE_ADAPTER_OBJECT FreeAdapterObject
Definition: iotypes.h:2662
PBUILD_SCATTER_GATHER_LIST_EX BuildScatterGatherListEx
Definition: iotypes.h:2660
PALLOCATE_COMMON_BUFFER_VECTOR AllocateCommonBufferVector
Definition: iotypes.h:2670
PPUT_DMA_ADAPTER PutDmaAdapter
Definition: iotypes.h:2636
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:2222
struct _DRIVER_OBJECT * DriverObject
Definition: iotypes.h:2221
UNICODE_STRING ServiceKeyName
Definition: iotypes.h:2224
PUNICODE_STRING HardwareDatabase
Definition: iotypes.h:2286
PVOID DriverStart
Definition: iotypes.h:2281
struct _FAST_IO_DISPATCH * FastIoDispatch
Definition: iotypes.h:2287
PVOID DriverSection
Definition: iotypes.h:2283
PDRIVER_STARTIO DriverStartIo
Definition: iotypes.h:2289
CSHORT Size
Definition: iotypes.h:2278
ULONG DriverSize
Definition: iotypes.h:2282
PDRIVER_INITIALIZE DriverInit
Definition: iotypes.h:2288
PDRIVER_EXTENSION DriverExtension
Definition: iotypes.h:2284
CSHORT Type
Definition: iotypes.h:2277
PDEVICE_OBJECT DeviceObject
Definition: iotypes.h:2279
PDRIVER_UNLOAD DriverUnload
Definition: iotypes.h:2290
UNICODE_STRING DriverName
Definition: iotypes.h:2285
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:5852
LARGE_INTEGER FreeSpaceStopFiltering
Definition: iotypes.h:6040
LARGE_INTEGER FreeSpaceStartFiltering
Definition: iotypes.h:6038
LARGE_INTEGER DefaultQuotaLimit
Definition: iotypes.h:6042
LARGE_INTEGER DefaultQuotaThreshold
Definition: iotypes.h:6041
LARGE_INTEGER FreeSpaceThreshold
Definition: iotypes.h:6039
LARGE_INTEGER ChangeTime
Definition: iotypes.h:5710
LARGE_INTEGER EndOfFile
Definition: iotypes.h:5711
LARGE_INTEGER CreationTime
Definition: iotypes.h:5707
LARGE_INTEGER AllocationSize
Definition: iotypes.h:5712
LARGE_INTEGER LastAccessTime
Definition: iotypes.h:5708
LARGE_INTEGER LastWriteTime
Definition: iotypes.h:5709
LARGE_INTEGER LastWriteTime
Definition: iotypes.h:5757
LARGE_INTEGER LastAccessTime
Definition: iotypes.h:5756
LARGE_INTEGER AllocationSize
Definition: iotypes.h:5760
LARGE_INTEGER CreationTime
Definition: iotypes.h:5755
LARGE_INTEGER LastAccessTime
Definition: iotypes.h:5723
LARGE_INTEGER AllocationSize
Definition: iotypes.h:5727
LARGE_INTEGER CreationTime
Definition: iotypes.h:5722
LARGE_INTEGER LastWriteTime
Definition: iotypes.h:5724
Definition: iotypes.h:5940
ULONG NextEntryOffset
Definition: iotypes.h:5941
ULONG FileNameLength
Definition: iotypes.h:5943
LONGLONG ParentFileId
Definition: iotypes.h:5942
PLARGE_INTEGER ReadTimeout
Definition: iotypes.h:5932
LARGE_INTEGER CollectDataTime
Definition: iotypes.h:5919
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForModifiedPageWriter
Definition: iotypes.h:7440
PFS_FILTER_CALLBACK PreAcquireForCcFlush
Definition: iotypes.h:7435
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForCcFlush
Definition: iotypes.h:7436
ULONG SizeOfFsFilterCallbacks
Definition: iotypes.h:7429
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForCcFlush
Definition: iotypes.h:7438
PFS_FILTER_CALLBACK PreReleaseForModifiedPageWriter
Definition: iotypes.h:7441
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForSectionSynchronization
Definition: iotypes.h:7432
PFS_FILTER_CALLBACK PreAcquireForSectionSynchronization
Definition: iotypes.h:7431
PFS_FILTER_CALLBACK PreReleaseForCcFlush
Definition: iotypes.h:7437
PFS_FILTER_CALLBACK PreAcquireForModifiedPageWriter
Definition: iotypes.h:7439
PFS_FILTER_CALLBACK PreReleaseForSectionSynchronization
Definition: iotypes.h:7433
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForSectionSynchronization
Definition: iotypes.h:7434
PFS_FILTER_COMPLETION_CALLBACK PostReleaseForModifiedPageWriter
Definition: iotypes.h:7442
FS_FILTER_PARAMETERS Parameters
Definition: iotypes.h:7414
struct _DEVICE_OBJECT * DeviceObject
Definition: iotypes.h:7412
ULONG SizeOfFsFilterCallbackData
Definition: iotypes.h:7409
struct _FILE_OBJECT * FileObject
Definition: iotypes.h:7413
Definition: scsiwmi.h:51
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5504
PGET_INTERRUPT_ROUTING GetInterruptRouting
Definition: iotypes.h:5505
PUPDATE_INTERRUPT_LINE UpdateInterruptLine
Definition: iotypes.h:5507
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5503
PSET_INTERRUPT_ROUTING_TOKEN SetInterruptRoutingToken
Definition: iotypes.h:5506
_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:2879
struct _IRP * Irp
Definition: iotypes.h:2878
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:4516
struct _ECP_LIST * ExtraCreateParameter
Definition: iotypes.h:4514
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:7461
ULONG ThreadPriority
Definition: iotypes.h:7459
ULONG PagePriority
Definition: iotypes.h:7460
volatile LONG LowMemoryCount
Definition: iotypes.h:493
PIO_REMOVE_LOCK_TRACKING_BLOCK Blocks
Definition: iotypes.h:496
IO_REMOVE_LOCK_COMMON_BLOCK Common
Definition: iotypes.h:500
PIO_INTERRUPT_MESSAGE_INFO InterruptMessageTable
Definition: iotypes.h:419
INTERFACE_TYPE InterfaceType
Definition: iotypes.h:2744
PACCESS_STATE AccessState
Definition: iotypes.h:2869
PSECURITY_QUALITY_OF_SERVICE SecurityQos
Definition: iotypes.h:2868
ACCESS_MASK DesiredAccess
Definition: iotypes.h:2870
IO_SESSION_STATE SessionState
Definition: iotypes.h:454
ULONG POINTER_ALIGNMENT FileIndex
Definition: iotypes.h:3153
DEVICE_TEXT_TYPE DeviceTextType
Definition: iotypes.h:3272
PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: iotypes.h:3221
ULONG POINTER_ALIGNMENT IoControlCode
Definition: iotypes.h:3212
PINTERFACE Interface
Definition: iotypes.h:3250
USHORT POINTER_ALIGNMENT FileAttributes
Definition: iotypes.h:3121
struct _MAILSLOT_CREATE_PARAMETERS * Parameters
Definition: iotypes.h:3137
PCM_RESOURCE_LIST AllocatedResourcesTranslated
Definition: iotypes.h:3299
POWER_ACTION POINTER_ALIGNMENT ShutdownType
Definition: iotypes.h:3295
ULONG POINTER_ALIGNMENT InputBufferLength
Definition: iotypes.h:3200
PFILE_OBJECT FileObject
Definition: iotypes.h:3171
PIO_SECURITY_CONTEXT SecurityContext
Definition: iotypes.h:3119
ULONG POINTER_ALIGNMENT EaIndex
Definition: iotypes.h:3185
BOOLEAN ReplaceIfExists
Definition: iotypes.h:3174
BUS_QUERY_ID_TYPE IdType
Definition: iotypes.h:3269
PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList
Definition: iotypes.h:3257
PUNICODE_STRING FileName
Definition: iotypes.h:3151
USHORT POINTER_ALIGNMENT Reserved
Definition: iotypes.h:3128
LCID POINTER_ALIGNMENT LocaleId
Definition: iotypes.h:3273
DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT Type
Definition: iotypes.h:3278
ULONG POINTER_ALIGNMENT FsControlCode
Definition: iotypes.h:3201
FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass
Definition: iotypes.h:3192
PDEVICE_OBJECT DeviceObject
Definition: iotypes.h:3225
PCM_RESOURCE_LIST AllocatedResources
Definition: iotypes.h:3298
LARGE_INTEGER ByteOffset
Definition: iotypes.h:3142
FILE_INFORMATION_CLASS FileInformationClass
Definition: iotypes.h:3152
POWER_STATE_TYPE POINTER_ALIGNMENT Type
Definition: iotypes.h:3293
SECURITY_INFORMATION SecurityInformation
Definition: iotypes.h:3216
SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext
Definition: iotypes.h:3290
ULONG POINTER_ALIGNMENT EaLength
Definition: iotypes.h:3123
struct _IO_SECURITY_CONTEXT * SecurityContext
Definition: iotypes.h:3126
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
Definition: iotypes.h:3130
SYSTEM_POWER_STATE PowerState
Definition: iotypes.h:3281
USHORT ShareAccess
Definition: iotypes.h:3122
HANDLE DeleteHandle
Definition: iotypes.h:3178
BOOLEAN AdvanceOnly
Definition: iotypes.h:3175
struct _SCSI_REQUEST_BLOCK * Srb
Definition: iotypes.h:3232
ULONG POINTER_ALIGNMENT CompletionFilter
Definition: iotypes.h:3157
PIO_COMPLETION_ROUTINE CompletionRoutine
Definition: iotypes.h:3316
FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass
Definition: iotypes.h:3166
struct _FILE_GET_QUOTA_INFORMATION * SidList
Definition: iotypes.h:3237
PDEVICE_CAPABILITIES Capabilities
Definition: iotypes.h:3254
ULONG POINTER_ALIGNMENT Length
Definition: iotypes.h:3217
PVOID InterfaceSpecificData
Definition: iotypes.h:3251
ULONG POINTER_ALIGNMENT Key
Definition: iotypes.h:3141
POWER_STATE POINTER_ALIGNMENT State
Definition: iotypes.h:3294
DIRECTORY_NOTIFY_INFORMATION_CLASS POINTER_ALIGNMENT DirectoryNotifyInformationClass
Definition: iotypes.h:3162
PLARGE_INTEGER Length
Definition: iotypes.h:3205
CONST GUID * InterfaceType
Definition: iotypes.h:3247
PPOWER_SEQUENCE PowerSequence
Definition: iotypes.h:3284
DEVICE_RELATION_TYPE Type
Definition: iotypes.h:3244
PVOID Type3InputBuffer
Definition: iotypes.h:3202
ULONG_PTR ProviderId
Definition: iotypes.h:3302
Definition: ketypes.h:599
Definition: ketypes.h:630
Definition: ketypes.h:751
INTERFACE_TYPE LegacyBusType
Definition: iotypes.h:835
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5515
PLEGACY_DEVICE_DETECTION_HANDLER LegacyDeviceDetection
Definition: iotypes.h:5516
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5514
Definition: typedefs.h:120
ACCESS_MASK GrantedAccess
Definition: iotypes.h:181
ULONG PathNameLength
Definition: iotypes.h:6232
PciReadWriteConfig WriteConfig
Definition: iotypes.h:5285
PciLine2Pin Line2Pin
Definition: iotypes.h:5287
ULONG Tag
Definition: iotypes.h:5282
PciReadWriteConfig ReadConfig
Definition: iotypes.h:5284
PCI_SLOT_NUMBER ParentSlot
Definition: iotypes.h:5288
ULONG Version
Definition: iotypes.h:5283
PciPin2Line Pin2Line
Definition: iotypes.h:5286
ULONG AdditionalUncorrectableError
Definition: iotypes.h:4850
USHORT SplitCompletionOverrun
Definition: iotypes.h:4813
USHORT DownstreamSplitTransactionCapacity
Definition: iotypes.h:4843
USHORT SplitCompletionDiscarded
Definition: iotypes.h:4811
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:4806
ULONG SplitCompletionDiscarded
Definition: iotypes.h:4830
USHORT UpstreamSplitTransactionLimit
Definition: iotypes.h:4842
ULONG SelectSecondaryRegisters
Definition: iotypes.h:4847
ULONG UnexpectedSplitCompletion
Definition: iotypes.h:4831
USHORT UnexpectedSplitCompletion
Definition: iotypes.h:4812
ULONG AdditionalCorrectableError
Definition: iotypes.h:4849
ULONG DisableSingleBitCorrection
Definition: iotypes.h:4859
USHORT DownstreamSplitTransactionLimit
Definition: iotypes.h:4844
USHORT UpstreamSplitTransactionCapacity
Definition: iotypes.h:4841
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:4701
ULONG GTLB_Enable
Definition: iotypes.h:4758
ULONG CAL_Disable
Definition: iotypes.h:4760
PCI_LINE_TO_PIN LineToPin
Definition: iotypes.h:5334
PCI_PIN_TO_LINE PinToLine
Definition: iotypes.h:5333
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5330
PCI_ROOT_BUS_CAPABILITY RootBusCapability
Definition: iotypes.h:5335
PCI_EXPRESS_WAKE_CONTROL ExpressWakeControl
Definition: iotypes.h:5336
PCI_READ_WRITE_CONFIG ReadConfig
Definition: iotypes.h:5331
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5329
PCI_READ_WRITE_CONFIG WriteConfig
Definition: iotypes.h:5332
PCARDBUSDELETE DeleteCardBus
Definition: iotypes.h:5566
PCARDBUSPCIDISPATCH DispatchPnp
Definition: iotypes.h:5567
PDRIVER_OBJECT DriverObject
Definition: iotypes.h:5564
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5562
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5563
PCI_COMMON_HEADER DUMMYSTRUCTNAME
Definition: iotypes.h:3591
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:4008
PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity
Definition: iotypes.h:4005
PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus
Definition: iotypes.h:4006
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:4002
PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask
Definition: iotypes.h:4007
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY SecUncorrectableErrorSeverity
Definition: iotypes.h:4012
PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask
Definition: iotypes.h:4004
PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus
Definition: iotypes.h:4003
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS SecUncorrectableErrorStatus
Definition: iotypes.h:4010
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK SecUncorrectableErrorMask
Definition: iotypes.h:4011
PCI_EXPRESS_SEC_AER_CAPABILITIES SecCapabilitiesAndControl
Definition: iotypes.h:4013
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY SecUncorrectableErrorSeverity
Definition: iotypes.h:4042
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK SecUncorrectableErrorMask
Definition: iotypes.h:4041
PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity
Definition: iotypes.h:4035
PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask
Definition: iotypes.h:4037
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS SecUncorrectableErrorStatus
Definition: iotypes.h:4040
PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus
Definition: iotypes.h:4036
PCI_EXPRESS_SEC_AER_CAPABILITIES SecCapabilitiesAndControl
Definition: iotypes.h:4043
PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus
Definition: iotypes.h:4033
PCI_EXPRESS_AER_CAPABILITIES CapabilitiesAndControl
Definition: iotypes.h:4038
PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask
Definition: iotypes.h:4034
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:4032
PCI_EXPRESS_SLOT_STATUS_REGISTER SlotStatus
Definition: iotypes.h:5138
PCI_EXPRESS_LINK_CONTROL_REGISTER LinkControl
Definition: iotypes.h:5134
PCI_EXPRESS_DEVICE_STATUS_REGISTER DeviceStatus
Definition: iotypes.h:5132
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:5128
PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER RootCapabilities
Definition: iotypes.h:5140
PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER DeviceCapabilities
Definition: iotypes.h:5130
PCI_EXPRESS_ROOT_CONTROL_REGISTER RootControl
Definition: iotypes.h:5139
PCI_EXPRESS_LINK_CAPABILITIES_REGISTER LinkCapabilities
Definition: iotypes.h:5133
PCI_EXPRESS_ROOT_STATUS_REGISTER RootStatus
Definition: iotypes.h:5141
PCI_EXPRESS_CAPABILITIES_REGISTER ExpressCapabilities
Definition: iotypes.h:5129
PCI_EXPRESS_SLOT_CONTROL_REGISTER SlotControl
Definition: iotypes.h:5137
PCI_EXPRESS_LINK_STATUS_REGISTER LinkStatus
Definition: iotypes.h:5135
PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER SlotCapabilities
Definition: iotypes.h:5136
PCI_EXPRESS_DEVICE_CONTROL_REGISTER DeviceControl
Definition: iotypes.h:5131
PCI_EXPRESS_ROOT_ERROR_STATUS RootErrorStatus
Definition: iotypes.h:4027
PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask
Definition: iotypes.h:4023
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:4018
PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus
Definition: iotypes.h:4022
PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus
Definition: iotypes.h:4019
PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask
Definition: iotypes.h:4020
PCI_EXPRESS_ERROR_SOURCE_ID ErrorSourceId
Definition: iotypes.h:4028
PCI_EXPRESS_ROOT_ERROR_COMMAND RootErrorCommand
Definition: iotypes.h:4026
PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity
Definition: iotypes.h:4021
PCI_EXPRESS_AER_CAPABILITIES CapabilitiesAndControl
Definition: iotypes.h:4024
PPCI_EXPRESS_ROOT_PORT_READ_CONFIG_SPACE ReadConfigSpace
Definition: iotypes.h:4296
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4295
PPCI_EXPRESS_ROOT_PORT_WRITE_CONFIG_SPACE WriteConfigSpace
Definition: iotypes.h:4297
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4294
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:3774
PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY VFMigrationStateArrayOffset
Definition: iotypes.h:4101
PCI_EXPRESS_SRIOV_CAPS SRIOVCapabilities
Definition: iotypes.h:4086
PCI_EXPRESS_SRIOV_STATUS SRIOVStatus
Definition: iotypes.h:4088
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header
Definition: iotypes.h:4085
PCI_EXPRESS_SRIOV_CONTROL SRIOVControl
Definition: iotypes.h:4087
PPCI_MSIX_GET_TABLE_SIZE GetTableSize
Definition: iotypes.h:4343
PPCI_MSIX_MASKUNMASK_ENTRY UnmaskTableEntry
Definition: iotypes.h:4341
PPCI_MSIX_SET_ENTRY SetTableEntry
Definition: iotypes.h:4339
PPCI_MSIX_MASKUNMASK_ENTRY MaskTableEntry
Definition: iotypes.h:4340
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4338
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4337
PPCI_MSIX_GET_ENTRY GetTableEntry
Definition: iotypes.h:4342
UCHAR D3HotSupportsStopClock
Definition: iotypes.h:3701
UCHAR BusPowerClockControlEnabled
Definition: iotypes.h:3702
USHORT DataSelect
Definition: iotypes.h:3694
USHORT PowerState
Definition: iotypes.h:3691
USHORT Rsvd1
Definition: iotypes.h:3692
USHORT PMEStatus
Definition: iotypes.h:3696
USHORT PMEEnable
Definition: iotypes.h:3693
USHORT DataScale
Definition: iotypes.h:3695
UCHAR Version
Definition: iotypes.h:3673
UCHAR DeviceSpecificInitialization
Definition: iotypes.h:3676
UCHAR Rsvd2
Definition: iotypes.h:3677
UCHAR Rsvd1
Definition: iotypes.h:3675
UCHAR PMEClock
Definition: iotypes.h:3674
PPME_GET_INFORMATION GetPmeInformation
Definition: iotypes.h:5576
PPME_CLEAR_PME_STATUS ClearPmeStatus
Definition: iotypes.h:5577
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:5575
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:5574
PPME_SET_PME_ENABLE UpdateEnable
Definition: iotypes.h:5578
PCI_PMCSR_BSE BridgeSupport
Definition: iotypes.h:3716
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:3706
PCI_PMCSR ControlStatus
Definition: iotypes.h:3712
PCI_PMC Capabilities
Definition: iotypes.h:3708
PCI_ROOT_BUS_OSC_SUPPORT_FIELD OscFeatureSupport
Definition: iotypes.h:4933
PCI_ROOT_BUS_OSC_CONTROL_FIELD OscControlRequest
Definition: iotypes.h:4934
PCI_HARDWARE_INTERFACE SecondaryInterface
Definition: iotypes.h:4925
PCI_ROOT_BUS_OSC_CONTROL_FIELD OscControlGranted
Definition: iotypes.h:4935
ULONG FunctionNumber
Definition: iotypes.h:3495
ULONG DeviceNumber
Definition: iotypes.h:3494
PCI_CAPABILITIES_HEADER Header
Definition: iotypes.h:4870
PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE Type
Definition: iotypes.h:5238
PGET_LOCATION_STRING GetLocationString
Definition: iotypes.h:4546
PINTERFACE_REFERENCE InterfaceReference
Definition: iotypes.h:4544
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4545
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:7249
LARGE_INTEGER FileId
Definition: iotypes.h:7250
PVOID LinkNode
Definition: iotypes.h:5471
ULONG StaticVector
Definition: iotypes.h:5472
PHYSICAL_ADDRESS Address
Definition: iotypes.h:2175
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:4694
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: iotypes.h:4695
PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER TranslateResourceRequirements
Definition: iotypes.h:4697
PTRANSLATE_RESOURCE_HANDLER TranslateResources
Definition: iotypes.h:4696
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:5435
FS_FILTER_SECTION_SYNC_TYPE SyncType
Definition: iotypes.h:7385
BOOLEAN POINTER_ALIGNMENT SafeToRecurse
Definition: iotypes.h:7390
PLARGE_INTEGER EndingOffset
Definition: iotypes.h:7378
FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType
Definition: iotypes.h:7389
PERESOURCE ResourceToRelease
Definition: iotypes.h:7382
PERESOURCE * ResourceToRelease
Definition: iotypes.h:7379
ULONG VFMigrationInterruptNumber
Definition: iotypes.h:4051
static BOOL Write(PBYTE Address, PBYTE Data, SIZE_T Size)
Definition: vmhorizon.c:15
NTSTATUS MountVolume(_Inout_ PVOLINFO Volume, _In_opt_ UCHAR MbrPartitionType)
Definition: volutil.c:23
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061
_In_ UCHAR _In_ UCHAR _In_ ULONG _In_ WDFCONTEXT DriverContext
Definition: wdfdevice.h:1709
_In_ WDFDEVICE _Out_ PWDF_DEVICE_STATE DeviceState
Definition: wdfdevice.h:2005
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4071
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2664
_In_ WDFDEVICE _In_ ULONG AlignmentRequirement
Definition: wdfdevice.h:2860
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
Definition: wdfdevice.h:2231
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3540
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4539
_In_ UCHAR MajorFunction
Definition: wdfdevice.h:1703
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3777
_In_ WDFDEVICE _In_ PPNP_BUS_INFORMATION BusInformation
Definition: wdfdevice.h:3921
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION Direction
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
Definition: wdfdpc.h:112
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:170
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
Definition: wdfdriver.h:215
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
Definition: wdffdo.h:465
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
Definition: wdfinterrupt.h:655
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:379
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
Definition: wdfio.h:325
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfio.h:869
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:320
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:322
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:863
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
Definition: wdfiotarget.h:510
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG DeviceOffset
Definition: wdfiotarget.h:865
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET OutputBufferOffset
Definition: wdfiotarget.h:912
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:953
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
Definition: wdfmemory.h:169
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_ WDFDRIVER _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT Pdo
Definition: wdfminiport.h:72
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceID
Definition: wdfpdo.h:278
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
Definition: wdfrequest.h:898
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
Definition: wdfrequest.h:1049
_Must_inspect_result_ _In_ WDFCMRESLIST List
Definition: wdfresource.h:550
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
Definition: wdfresource.h:68
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
Definition: wdfsync.h:127
#define FORCEINLINE
Definition: wdftypes.h:67
#define _WDMDDK_
Definition: wdm.template.h:26
#define NTKERNELAPI
#define POINTER_ALIGNMENT
#define DeleteFile
Definition: winbase.h:3513
#define CreateMailslot
Definition: winbase.h:3504
_In_ ULONG NotifyCode
Definition: winddi.h:4265
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
struct _FILE_FS_VOLUME_INFORMATION * PFILE_FS_VOLUME_INFORMATION
struct _FILE_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
#define DeviceCapabilities
Definition: wingdi.h:4895
struct _FILE_NOTIFY_INFORMATION FILE_NOTIFY_INFORMATION
struct _FILE_NOTIFY_INFORMATION * PFILE_NOTIFY_INFORMATION
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: wsk.h:191
_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:2578
enum _DEVICE_WAKE_DEPTH DEVICE_WAKE_DEPTH
PCI_MSIX_GET_ENTRY * PPCI_MSIX_GET_ENTRY
Definition: iotypes.h:4324
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:3044
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:7587
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:7371
@ NotifyTypeRetired
Definition: iotypes.h:7373
@ NotifyTypeCreate
Definition: iotypes.h:7372
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:5548
struct _PCI_EXPRESS_ROOTPORT_AER_CAPABILITY PCI_EXPRESS_ROOTPORT_AER_CAPABILITY
_PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE
Definition: iotypes.h:5229
@ ResourceTypeMax
Definition: iotypes.h:5234
@ ResourceTypeRange
Definition: iotypes.h:5231
@ ResourceTypeSingle
Definition: iotypes.h:5230
@ ResourceTypeOverflow
Definition: iotypes.h:5233
@ ResourceTypeExtendedCounterConfiguration
Definition: iotypes.h:5232
_In_ PIRP Irp
Definition: iotypes.h:2885
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:2345
struct _INT_ROUTE_INTERFACE_STANDARD * PINT_ROUTE_INTERFACE_STANDARD
struct _PNP_REPLACE_MEMORY_LIST PNP_REPLACE_MEMORY_LIST
DEVICE_CAPABILITIES
Definition: iotypes.h:965
struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS * PARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS
union _PCI_EXPRESS_DEVICE_STATUS_REGISTER PCI_EXPRESS_DEVICE_STATUS_REGISTER
FAST_IO_ACQUIRE_FOR_MOD_WRITE * PFAST_IO_ACQUIRE_FOR_MOD_WRITE
Definition: iotypes.h:1600
FAST_IO_LOCK * PFAST_IO_LOCK
Definition: iotypes.h:1508
enum _DEVICE_INSTALL_STATE DEVICE_INSTALL_STATE
struct _ACPI_INTERFACE_STANDARD2 * PACPI_INTERFACE_STANDARD2
struct _FAST_IO_DISPATCH * PFAST_IO_DISPATCH
FAST_IO_MDL_WRITE_COMPLETE * PFAST_IO_MDL_WRITE_COMPLETE
Definition: iotypes.h:1645
_DEVICE_RELATION_TYPE
Definition: iotypes.h:2153
@ SingleBusRelations
Definition: iotypes.h:2159
@ EjectionRelations
Definition: iotypes.h:2155
@ RemovalRelations
Definition: iotypes.h:2157
@ BusRelations
Definition: iotypes.h:2154
@ TargetDeviceRelation
Definition: iotypes.h:2158
@ TransportRelations
Definition: iotypes.h:2160
@ PowerRelations
Definition: iotypes.h:2156
#define STATUS_CONTINUE_COMPLETION
struct _IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS
union _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS * PPCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS
_IO_ACCESS_MODE
Definition: iotypes.h:429
@ SequentialAccess
Definition: iotypes.h:430
@ RandomAccess
Definition: iotypes.h:431
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:5199
@ PciXToExpressBridge
Definition: iotypes.h:5206
@ PciExpressToPciXBridge
Definition: iotypes.h:5205
@ PciExpressUpstreamSwitchPort
Definition: iotypes.h:5203
@ PciExpressDownstreamSwitchPort
Definition: iotypes.h:5204
@ PciExpressRootPort
Definition: iotypes.h:5202
@ PciExpressRootComplexIntegratedEndpoint
Definition: iotypes.h:5207
@ PciExpressRootComplexEventCollector
Definition: iotypes.h:5208
@ PciExpressLegacyEndpoint
Definition: iotypes.h:5201
@ PciExpressEndpoint
Definition: iotypes.h:5200
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:5177
@ L0s_Below64ns
Definition: iotypes.h:5178
@ L0s_1us_2us
Definition: iotypes.h:5183
@ L0s_256ns_512ns
Definition: iotypes.h:5181
@ L0s_64ns_128ns
Definition: iotypes.h:5179
@ L0s_2us_4us
Definition: iotypes.h:5184
@ L0s_Above4us
Definition: iotypes.h:5185
@ L0s_128ns_256ns
Definition: iotypes.h:5180
@ L0s_512ns_1us
Definition: iotypes.h:5182
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:4683
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:2408
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:2247
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:7363
PCI_EXPRESS_MRL_STATE
Definition: iotypes.h:5144
@ MRLOpen
Definition: iotypes.h:5146
@ MRLClosed
Definition: iotypes.h:5145
_In_ ULONG AuxPowerInMilliWatts
Definition: iotypes.h:7584
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:7322
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:2349
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:2442
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:2206
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:2856
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:4330
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:4667
@ TranslateChildToParent
Definition: iotypes.h:4668
@ TranslateParentToChild
Definition: iotypes.h:4669
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:7423
_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:7366
@ SyncTypeOther
Definition: iotypes.h:7367
@ SyncTypeCreateSection
Definition: iotypes.h:7368
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:2368
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:2523
_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:2630
struct _TXN_PARAMETER_BLOCK * PTXN_PARAMETER_BLOCK
struct _DEVOBJ_EXTENSION * PDEVOBJ_EXTENSION
struct _PCI_ROOT_BUS_OSC_CONTROL_FIELD * PPCI_ROOT_BUS_OSC_CONTROL_FIELD
struct _PCI_AGP_CAPABILITY * PPCI_AGP_CAPABILITY
FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED * PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED
Definition: iotypes.h:1696
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
union _PCI_EXPRESS_ROOT_ERROR_COMMAND * PPCI_EXPRESS_ROOT_ERROR_COMMAND
struct _PNP_REPLACE_PROCESSOR_LIST_V1 PNP_REPLACE_PROCESSOR_LIST_V1
struct _VPB * PVPB
FAST_IO_QUERY_BASIC_INFO * PFAST_IO_QUERY_BASIC_INFO
Definition: iotypes.h:1482
struct _PCI_PMCSR PCI_PMCSR
struct _SCATTER_GATHER_LIST * PSCATTER_GATHER_LIST
Definition: iotypes.h:2206
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:5296
struct _EISA_DMA_CONFIGURATION * PEISA_DMA_CONFIGURATION
VOID(NTAPI * PPME_SET_PME_ENABLE)(IN PDEVICE_OBJECT Pdo, IN BOOLEAN PmeEnable)
Definition: iotypes.h:5543
_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:5310
#define PCI_TYPE0_ADDRESSES
Definition: iotypes.h:3502
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:2265
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:4673
NTSTATUS(NTAPI * PCONFIGURE_ADAPTER_CHANNEL)(_In_ PDMA_ADAPTER DmaAdapter, _In_ ULONG FunctionNumber, _In_ PVOID Context)
Definition: iotypes.h:2467
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:5538
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:5256
_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:4315
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:5490
BOOLEAN(NTAPI * PCANCEL_ADAPTER_CHANNEL)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDEVICE_OBJECT DeviceObject, _In_ PVOID DmaTransferContext)
Definition: iotypes.h:2473
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:5495
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _In_ LARGE_INTEGER ByteCount
Definition: iotypes.h:1099
_IO_PAGING_PRIORITY
Definition: iotypes.h:2821
@ IoPagingPriorityReserved1
Definition: iotypes.h:2825
@ IoPagingPriorityNormal
Definition: iotypes.h:2823
@ IoPagingPriorityHigh
Definition: iotypes.h:2824
@ IoPagingPriorityReserved2
Definition: iotypes.h:2826
@ IoPagingPriorityInvalid
Definition: iotypes.h:2822
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:4308
struct _IO_ERROR_LOG_MESSAGE * PIO_ERROR_LOG_MESSAGE
DRIVER_LIST_CONTROL * PDRIVER_LIST_CONTROL
Definition: iotypes.h:2379
struct _DISK_SIGNATURE DISK_SIGNATURE
PCI_EXPRESS_INDICATOR_STATE
Definition: iotypes.h:5154
@ IndicatorOff
Definition: iotypes.h:5157
@ IndicatorBlink
Definition: iotypes.h:5156
@ IndicatorOn
Definition: iotypes.h:5155
struct _PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR * PPHYSICAL_COUNTER_RESOURCE_DESCRIPTOR
FAST_IO_QUERY_NETWORK_OPEN_INFO * PFAST_IO_QUERY_NETWORK_OPEN_INFO
Definition: iotypes.h:1590
FAST_IO_PREPARE_MDL_WRITE * PFAST_IO_PREPARE_MDL_WRITE
Definition: iotypes.h:1635
struct _DRIVER_OBJECT DRIVER_OBJECT
struct _FILE_NETWORK_PHYSICAL_NAME_INFORMATION FILE_NETWORK_PHYSICAL_NAME_INFORMATION
FAST_IO_MDL_READ_COMPLETE * PFAST_IO_MDL_READ_COMPLETE
Definition: iotypes.h:1622
struct _IO_RESOURCE_LIST * PIO_RESOURCE_LIST
struct _FILE_FS_LABEL_INFORMATION FILE_FS_LABEL_INFORMATION
$endif(_WDMDDK_) $if(_NTDDK_) $endif(_NTDDK_) $if(_WDMDDK_) $endif(_WDMDDK_) $if(_WDMDDK_) typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _DEVICE_OBJECT
Definition: iotypes.h:227
NTSTATUS(NTAPI * PGET_SCATTER_GATHER_LIST_EX)(_In_ PDMA_ADAPTER DmaAdapter, _In_ PDEVICE_OBJECT DeviceObject, _In_ PVOID DmaTransferContext, _In_ PMDL Mdl, _In_ ULONGLONG Offset, _In_ ULONG Length, _In_ ULONG Flags, _In_opt_ PDRIVER_LIST_CONTROL ExecutionRoutine, _In_opt_ PVOID Context, _In_ BOOLEAN WriteToDevice, _In_opt_ PDMA_COMPLETION_ROUTINE DmaCompletionRoutine, _In_opt_ PVOID CompletionContext, _Out_opt_ PSCATTER_GATHER_LIST *ScatterGatherList)
Definition: iotypes.h:2507
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:2541
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:4549
@ ArbiterActionQueryConflict
Definition: iotypes.h:4556
@ ArbiterActionQueryArbitrate
Definition: iotypes.h:4557
@ ArbiterActionBootAllocation
Definition: iotypes.h:4559
@ ArbiterActionWriteReservedResources
Definition: iotypes.h:4555
@ ArbiterActionAddReserved
Definition: iotypes.h:4558
@ ArbiterActionCommitAllocation
Definition: iotypes.h:4552
@ ArbiterActionRollbackAllocation
Definition: iotypes.h:4553
@ ArbiterActionRetestAllocation
Definition: iotypes.h:4551
@ ArbiterActionQueryAllocatedResources
Definition: iotypes.h:4554
@ ArbiterActionTestAllocation
Definition: iotypes.h:4550
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:4458
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:2493
struct _PCI_MSIX_TABLE_CONFIG_INTERFACE PCI_MSIX_TABLE_CONFIG_INTERFACE
struct _PCI_AGP_CONTROL * PPCI_AGP_CONTROL
_In_ BOOLEAN CorePowerRailNeeded
Definition: iotypes.h:7574
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:5477
_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:2355
struct _POWER_SEQUENCE POWER_SEQUENCE
DRIVER_UNLOAD * PDRIVER_UNLOAD
Definition: iotypes.h:2255
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:2555
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:2604
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:2421
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:2433
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:2837
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:2336
struct _POWER_SEQUENCE * PPOWER_SEQUENCE
_Must_inspect_result_ typedef _In_ ULONG _Out_ PULONG _Out_ PBOOLEAN Masked
Definition: iotypes.h:4323
struct _CM_EISA_SLOT_INFORMATION * PCM_EISA_SLOT_INFORMATION
PCI_EXPRESS_L1_EXIT_LATENCY
Definition: iotypes.h:5188
@ L1_16us_32us
Definition: iotypes.h:5194
@ L1_Below1us
Definition: iotypes.h:5189
@ L1_8us_16us
Definition: iotypes.h:5193
@ L1_32us_64us
Definition: iotypes.h:5195
@ L1_4us_8us
Definition: iotypes.h:5192
@ L1_Above64us
Definition: iotypes.h:5196
@ L1_2us_4us
Definition: iotypes.h:5191
@ L1_1us_2us
Definition: iotypes.h:5190
struct _PCI_AGP_APERTURE_PAGE_SIZE PCI_AGP_APERTURE_PAGE_SIZE
_IO_QUERY_DEVICE_DATA_FORMAT
Definition: iotypes.h:4450
@ IoQueryDeviceComponentInformation
Definition: iotypes.h:4453
@ IoQueryDeviceMaxData
Definition: iotypes.h:4454
@ IoQueryDeviceConfigurationData
Definition: iotypes.h:4452
@ IoQueryDeviceIdentifier
Definition: iotypes.h:4451
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:5263
struct _IO_RESOURCE_LIST IO_RESOURCE_LIST
union _PCI_EXPRESS_PME_REQUESTOR_ID * PPCI_EXPRESS_PME_REQUESTOR_ID
union _PCI_EXPRESS_SLOT_STATUS_REGISTER * PPCI_EXPRESS_SLOT_STATUS_REGISTER
_LINK_TRACKING_INFORMATION_TYPE
Definition: iotypes.h:7338
@ NtfsLinkTrackingInformation
Definition: iotypes.h:7339
@ DfsLinkTrackingInformation
Definition: iotypes.h:7340
FAST_IO_MDL_READ * PFAST_IO_MDL_READ
Definition: iotypes.h:1613
DRIVER_CANCEL * PDRIVER_CANCEL
Definition: iotypes.h:2761
struct _DMA_COMMON_BUFFER_VECTOR DMA_COMMON_BUFFER_VECTOR
Definition: iotypes.h:2601
_Must_inspect_result_ typedef _In_ ULONG TableEntry
Definition: iotypes.h:4306
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:2218
NTSTATUS(NTAPI * PCARDBUSDELETE)(IN PVOID DeviceContext)
Definition: iotypes.h:5534
_ARBITER_REQUEST_SOURCE
Definition: iotypes.h:4615
@ ArbiterRequestHalReported
Definition: iotypes.h:4618
@ ArbiterRequestLegacyAssigned
Definition: iotypes.h:4619
@ ArbiterRequestPnpDetected
Definition: iotypes.h:4620
@ ArbiterRequestUndefined
Definition: iotypes.h:4616
@ ArbiterRequestLegacyReported
Definition: iotypes.h:4617
@ ArbiterRequestPnpEnumerated
Definition: iotypes.h:4621
_PCI_HARDWARE_INTERFACE
Definition: iotypes.h:4912
@ PciXMode2
Definition: iotypes.h:4915
@ PciConventional
Definition: iotypes.h:4913
@ PciXMode1
Definition: iotypes.h:4914
@ PciExpress
Definition: iotypes.h:4916
struct _PNP_LOCATION_INTERFACE PNP_LOCATION_INTERFACE
NTSTATUS(NTAPI * PFS_FILTER_CALLBACK)(_In_ PFS_FILTER_CALLBACK_DATA Data, _Out_ PVOID *CompletionContext)
Definition: iotypes.h:7418
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:2560
_In_ ULONG DelayInMicroSeconds
Definition: iotypes.h:7595
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:2456
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:2264
struct _EISA_DMA_CONFIGURATION EISA_DMA_CONFIGURATION
_In_ struct _IRP _In_ struct _SCATTER_GATHER_LIST * ScatterGather
Definition: iotypes.h:2377
struct _DEVICE_RELATIONS * PDEVICE_RELATIONS
IO_DPC_ROUTINE * PIO_DPC_ROUTINE
Definition: iotypes.h:2849
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:2447
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:5271
DMA_COMPLETION_STATUS
Definition: iotypes.h:2301
@ DmaError
Definition: iotypes.h:2304
@ DmaComplete
Definition: iotypes.h:2302
@ DmaCancelled
Definition: iotypes.h:2305
@ DmaAborted
Definition: iotypes.h:2303
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:5170
@ L0sEntryEnabled
Definition: iotypes.h:5172
@ L0sAndL1EntryEnabled
Definition: iotypes.h:5174
@ L0sAndL1EntryDisabled
Definition: iotypes.h:5171
@ L1EntryEnabled
Definition: iotypes.h:5173
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:5160
@ PowerOff
Definition: iotypes.h:5162
@ PowerOn
Definition: iotypes.h:5161
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:7478
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:2486
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:2550
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:2587
ULONG KINTERRUPT_MODE BOOLEAN Shareable
Definition: iotypes.h:3041
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:4277
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:5211
@ MaxPayload128Bytes
Definition: iotypes.h:5212
@ MaxPayload2048Bytes
Definition: iotypes.h:5216
@ MaxPayload256Bytes
Definition: iotypes.h:5213
@ MaxPayload1024Bytes
Definition: iotypes.h:5215
@ MaxPayload512Bytes
Definition: iotypes.h:5214
@ MaxPayload4096Bytes
Definition: iotypes.h:5217
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:2313
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:5463
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:2583
NTSTATUS(NTAPI * PGET_DMA_ADAPTER_INFO)(_In_ PDMA_ADAPTER DmaAdapter, _Inout_ PDMA_ADAPTER_INFO AdapterInfo)
Definition: iotypes.h:2428
struct _REMOTE_LINK_TRACKING_INFORMATION * PREMOTE_LINK_TRACKING_INFORMATION
_In_ SYSTEM_POWER_STATE _Out_ PDEVICE_WAKE_DEPTH DeepestWakeableDstate
Definition: iotypes.h:7523
_EXTENDED_AGP_REGISTER
Definition: iotypes.h:4737
@ AperturePageSize
Definition: iotypes.h:4741
@ ApertureSize
Definition: iotypes.h:4740
@ AgpControl
Definition: iotypes.h:4739
@ GartHigh
Definition: iotypes.h:4743
@ IsochStatus
Definition: iotypes.h:4738
@ GartLow
Definition: iotypes.h:4742
@ IsochCommand
Definition: iotypes.h:4744
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:4331
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:7364
FAST_IO_WRITE * PFAST_IO_WRITE
Definition: iotypes.h:1471
BOOLEAN(NTAPI * PGPE_SERVICE_ROUTINE)(PVOID, PVOID)
Definition: iotypes.h:2952
PCI_BUS_WIDTH
Definition: iotypes.h:4919
@ BusWidth32Bits
Definition: iotypes.h:4920
@ BusWidth64Bits
Definition: iotypes.h:4921
PCI_EXPRESS_ASPM_SUPPORT
Definition: iotypes.h:5165
@ L0sEntrySupport
Definition: iotypes.h:5166
@ L0sAndL1EntrySupport
Definition: iotypes.h:5167
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:5316
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:2616
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:7535
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:2601
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:2865
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:5321
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:5552
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:4255
_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:7538
@ LastDStateTransitionStatusUnknown
Definition: iotypes.h:7539
@ LastDStateTransitionD3hot
Definition: iotypes.h:7540
@ LastDStateTransitionD3cold
Definition: iotypes.h:7541
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:7481
@ DeviceWakeDepthD3cold
Definition: iotypes.h:7487
@ DeviceWakeDepthD1
Definition: iotypes.h:7484
@ DeviceWakeDepthD3hot
Definition: iotypes.h:7486
@ DeviceWakeDepthMaximum
Definition: iotypes.h:7488
@ DeviceWakeDepthD2
Definition: iotypes.h:7485
@ DeviceWakeDepthD0
Definition: iotypes.h:7483
@ DeviceWakeDepthNotWakeable
Definition: iotypes.h:7482
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:2946
@ DeviceTextLocationInformation
Definition: iotypes.h:2948
@ DeviceTextDescription
Definition: iotypes.h:2947
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:7552
D3COLD_REQUEST_CORE_POWER_RAIL * PD3COLD_REQUEST_CORE_POWER_RAIL
Definition: iotypes.h:7576
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:4650
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:3030
_Out_ PD3COLD_LAST_TRANSITION_STATUS LastTransitionStatus
Definition: iotypes.h:7550
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:2382
PCI_EXPRESS_CARD_PRESENCE
Definition: iotypes.h:5149
@ CardPresent
Definition: iotypes.h:5151
@ SlotEmpty
Definition: iotypes.h:5150
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:5305
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:4284
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:2399
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:7476
_In_ SYSTEM_POWER_STATE SystemPowerState
Definition: iotypes.h:7522
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:2393
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:2591
struct _FILE_REMOTE_PROTOCOL_INFORMATION FILE_REMOTE_PROTOCOL_INFORMATION
_In_ ULONG _Out_ PULONG RetryInSeconds
Definition: iotypes.h:7585
_BUS_QUERY_ID_TYPE
Definition: iotypes.h:2937
@ BusQueryCompatibleIDs
Definition: iotypes.h:2940
@ BusQueryContainerID
Definition: iotypes.h:2943
@ BusQueryDeviceSerialNumber
Definition: iotypes.h:2942
@ BusQueryInstanceID
Definition: iotypes.h:2941
@ BusQueryDeviceID
Definition: iotypes.h:2938
@ BusQueryHardwareIDs
Definition: iotypes.h:2939
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:4262
enum _PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE
_Must_inspect_result_ typedef _In_ ULONG _In_ ULONG MessageNumber
Definition: iotypes.h:4307
struct _CONTROLLER_OBJECT CONTROLLER_OBJECT
struct _PCI_AGP_ISOCH_COMMAND * PPCI_AGP_ISOCH_COMMAND
VOID(NTAPI * PDEVICE_NOTIFY_CALLBACK)(PVOID, ULONG)
Definition: iotypes.h:2996
struct _FS_FILTER_CALLBACK_DATA FS_FILTER_CALLBACK_DATA
#define PCI_COMMON_HEADER_LAYOUT
Definition: iotypes.h:3509
struct _PCI_PMC PCI_PMC
VOID(NTAPI * PPUT_DMA_ADAPTER)(PDMA_ADAPTER DmaAdapter)
Definition: iotypes.h:2309
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:7493
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:3085
struct _TARGET_DEVICE_REMOVAL_NOTIFICATION TARGET_DEVICE_REMOVAL_NOTIFICATION
NTSTATUS(NTAPI * PCARDBUSADD)(IN PDEVICE_OBJECT DeviceObject, IN OUT PVOID *DeviceContext)
Definition: iotypes.h:5529
struct _PCI_PME_INTERFACE PCI_PME_INTERFACE
DMA_COMPLETION_ROUTINE * PDMA_COMPLETION_ROUTINE
Definition: iotypes.h:2490
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:4437
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:2328
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:4624
@ ArbiterResultUndefined
Definition: iotypes.h:4625
@ ArbiterResultExternalConflict
Definition: iotypes.h:4627
@ ArbiterResultSuccess
Definition: iotypes.h:4626
@ ArbiterResultNullRequest
Definition: iotypes.h:4628
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:7533
struct _REPARSE_GUID_DATA_BUFFER REPARSE_GUID_DATA_BUFFER
enum _LINK_TRACKING_INFORMATION_TYPE LINK_TRACKING_INFORMATION_TYPE
struct _IO_RESOURCE_REQUIREMENTS_LIST * PIO_RESOURCE_REQUIREMENTS_LIST
DRIVER_DISPATCH_PAGED * PDRIVER_DISPATCH_PAGED
Definition: iotypes.h:2274
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:3486
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:7525
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:2852
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:2320
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:2364
struct _BOOTDISK_INFORMATION_EX BOOTDISK_INFORMATION_EX
struct _FILE_PIPE_ASSIGN_EVENT_BUFFER * PFILE_PIPE_ASSIGN_EVENT_BUFFER
struct _IO_RESOURCE_REQUIREMENTS_LIST IO_RESOURCE_REQUIREMENTS_LIST
struct _WAIT_CONTEXT_BLOCK WAIT_CONTEXT_BLOCK
struct _FILE_PIPE_REMOTE_INFORMATION FILE_PIPE_REMOTE_INFORMATION
struct _PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER * PPCI_EXPRESS_ENHANCED_CAPABILITY_HEADER
struct _ARBITER_INTERFACE ARBITER_INTERFACE
struct _IO_ERROR_LOG_PACKET IO_ERROR_LOG_PACKET
#define IRP_MJ_MAXIMUM_FUNCTION
enum _FS_FILTER_SECTION_SYNC_TYPE * PFS_FILTER_SECTION_SYNC_TYPE
D3COLD_REQUEST_PERST_DELAY * PD3COLD_REQUEST_PERST_DELAY
Definition: iotypes.h:7597
DRIVER_INITIALIZE * PDRIVER_INITIALIZE
Definition: iotypes.h:2237
_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:2624
_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:2572
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:564
_IRQL_requires_same_ _In_ PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT _Inout_ PNTSTATUS OperationStatus
Definition: ketypes.h:425
KMESSAGE_SERVICE_ROUTINE * PKMESSAGE_SERVICE_ROUTINE
Definition: ketypes.h:573
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