9 #define STATUS_CONTINUE_COMPLETION STATUS_SUCCESS 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 17 #define POOL_COLD_ALLOCATION 256 18 #define POOL_QUOTA_FAIL_INSTEAD_OF_RAISE 8 19 #define POOL_RAISE_IF_ALLOCATION_FAILURE 16 21 #define IO_TYPE_ADAPTER 1 22 #define IO_TYPE_CONTROLLER 2 23 #define IO_TYPE_DEVICE 3 24 #define IO_TYPE_DRIVER 4 25 #define IO_TYPE_FILE 5 27 #define IO_TYPE_MASTER_ADAPTER 7 28 #define IO_TYPE_OPEN_PACKET 8 29 #define IO_TYPE_TIMER 9 30 #define IO_TYPE_VPB 10 31 #define IO_TYPE_ERROR_LOG 11 32 #define IO_TYPE_ERROR_MESSAGE 12 33 #define IO_TYPE_DEVICE_OBJECT_EXTENSION 13 35 #define IO_TYPE_CSQ_IRP_CONTEXT 1 37 #define IO_TYPE_CSQ_EX 3 40 #define IO_RESOURCE_PREFERRED 0x01 41 #define IO_RESOURCE_DEFAULT 0x02 42 #define IO_RESOURCE_ALTERNATIVE 0x08 46 #define FILE_DEVICE_BEEP 0x00000001 47 #define FILE_DEVICE_CD_ROM 0x00000002 48 #define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003 49 #define FILE_DEVICE_CONTROLLER 0x00000004 50 #define FILE_DEVICE_DATALINK 0x00000005 51 #define FILE_DEVICE_DFS 0x00000006 52 #define FILE_DEVICE_DISK 0x00000007 53 #define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008 54 #define FILE_DEVICE_FILE_SYSTEM 0x00000009 55 #define FILE_DEVICE_INPORT_PORT 0x0000000a 56 #define FILE_DEVICE_KEYBOARD 0x0000000b 57 #define FILE_DEVICE_MAILSLOT 0x0000000c 58 #define FILE_DEVICE_MIDI_IN 0x0000000d 59 #define FILE_DEVICE_MIDI_OUT 0x0000000e 60 #define FILE_DEVICE_MOUSE 0x0000000f 61 #define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010 62 #define FILE_DEVICE_NAMED_PIPE 0x00000011 63 #define FILE_DEVICE_NETWORK 0x00000012 64 #define FILE_DEVICE_NETWORK_BROWSER 0x00000013 65 #define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014 66 #define FILE_DEVICE_NULL 0x00000015 67 #define FILE_DEVICE_PARALLEL_PORT 0x00000016 68 #define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017 69 #define FILE_DEVICE_PRINTER 0x00000018 70 #define FILE_DEVICE_SCANNER 0x00000019 71 #define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a 72 #define FILE_DEVICE_SERIAL_PORT 0x0000001b 73 #define FILE_DEVICE_SCREEN 0x0000001c 74 #define FILE_DEVICE_SOUND 0x0000001d 75 #define FILE_DEVICE_STREAMS 0x0000001e 76 #define FILE_DEVICE_TAPE 0x0000001f 77 #define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020 78 #define FILE_DEVICE_TRANSPORT 0x00000021 79 #define FILE_DEVICE_UNKNOWN 0x00000022 80 #define FILE_DEVICE_VIDEO 0x00000023 81 #define FILE_DEVICE_VIRTUAL_DISK 0x00000024 82 #define FILE_DEVICE_WAVE_IN 0x00000025 83 #define FILE_DEVICE_WAVE_OUT 0x00000026 84 #define FILE_DEVICE_8042_PORT 0x00000027 85 #define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028 86 #define FILE_DEVICE_BATTERY 0x00000029 87 #define FILE_DEVICE_BUS_EXTENDER 0x0000002a 88 #define FILE_DEVICE_MODEM 0x0000002b 89 #define FILE_DEVICE_VDM 0x0000002c 90 #define FILE_DEVICE_MASS_STORAGE 0x0000002d 91 #define FILE_DEVICE_SMB 0x0000002e 92 #define FILE_DEVICE_KS 0x0000002f 93 #define FILE_DEVICE_CHANGER 0x00000030 94 #define FILE_DEVICE_SMARTCARD 0x00000031 95 #define FILE_DEVICE_ACPI 0x00000032 96 #define FILE_DEVICE_DVD 0x00000033 97 #define FILE_DEVICE_FULLSCREEN_VIDEO 0x00000034 98 #define FILE_DEVICE_DFS_FILE_SYSTEM 0x00000035 99 #define FILE_DEVICE_DFS_VOLUME 0x00000036 100 #define FILE_DEVICE_SERENUM 0x00000037 101 #define FILE_DEVICE_TERMSRV 0x00000038 102 #define FILE_DEVICE_KSEC 0x00000039 103 #define FILE_DEVICE_FIPS 0x0000003A 104 #define FILE_DEVICE_INFINIBAND 0x0000003B 105 #define FILE_DEVICE_VMBUS 0x0000003E 106 #define FILE_DEVICE_CRYPT_PROVIDER 0x0000003F 107 #define FILE_DEVICE_WPD 0x00000040 108 #define FILE_DEVICE_BLUETOOTH 0x00000041 109 #define FILE_DEVICE_MT_COMPOSITE 0x00000042 110 #define FILE_DEVICE_MT_TRANSPORT 0x00000043 111 #define FILE_DEVICE_BIOMETRIC 0x00000044 112 #define FILE_DEVICE_PMI 0x00000045 116 #if defined(NT_PROCESSOR_GROUPS) 120 typedef enum _IRQ_DEVICE_POLICY_USHORT {
125 IrqPolicyAllProcessorsInGroup = 3,
154 #define MAXIMUM_VOLUME_LABEL_LENGTH (32 * sizeof(WCHAR)) 187 (
NTAPI DRIVER_CONTROL)(
207 #define DO_DEVICE_HAS_NAME 0x00000040 208 #define DO_SYSTEM_BOOT_PARTITION 0x00000100 209 #define DO_LONG_TERM_REQUESTS 0x00000200 210 #define DO_NEVER_LAST_DEVICE 0x00000400 211 #define DO_LOW_PRIORITY_FILESYSTEM 0x00010000 212 #define DO_SUPPORTS_TRANSACTIONS 0x00040000 213 #define DO_FORCE_NEITHER_IO 0x00080000 214 #define DO_VOLUME_DEVICE_OBJECT 0x00100000 215 #define DO_SYSTEM_SYSTEM_PARTITION 0x00200000 216 #define DO_SYSTEM_CRITICAL_PARTITION 0x00400000 217 #define DO_DISALLOW_EXECUTE 0x00800000 222 #define DO_UNLOAD_PENDING 0x00000001 223 #define DO_VERIFY_VOLUME 0x00000002 224 #define DO_BUFFERED_IO 0x00000004 225 #define DO_EXCLUSIVE 0x00000008 226 #define DO_DIRECT_IO 0x00000010 227 #define DO_MAP_IO_BUFFER 0x00000020 228 #define DO_DEVICE_INITIALIZING 0x00000080 229 #define DO_SHUTDOWN_REGISTERED 0x00000800 230 #define DO_BUS_ENUMERATED_DEVICE 0x00001000 231 #define DO_POWER_PAGABLE 0x00002000 232 #define DO_POWER_INRUSH 0x00004000 235 #define FILE_REMOVABLE_MEDIA 0x00000001 236 #define FILE_READ_ONLY_DEVICE 0x00000002 237 #define FILE_FLOPPY_DISKETTE 0x00000004 238 #define FILE_WRITE_ONCE_MEDIA 0x00000008 239 #define FILE_REMOTE_DEVICE 0x00000010 240 #define FILE_DEVICE_IS_MOUNTED 0x00000020 241 #define FILE_VIRTUAL_VOLUME 0x00000040 242 #define FILE_AUTOGENERATED_DEVICE_NAME 0x00000080 243 #define FILE_DEVICE_SECURE_OPEN 0x00000100 244 #define FILE_CHARACTERISTIC_PNP_DEVICE 0x00000800 245 #define FILE_CHARACTERISTIC_TS_DEVICE 0x00001000 246 #define FILE_CHARACTERISTIC_WEBDAV_DEVICE 0x00002000 249 #define FILE_BYTE_ALIGNMENT 0x00000000 250 #define FILE_WORD_ALIGNMENT 0x00000001 251 #define FILE_LONG_ALIGNMENT 0x00000003 252 #define FILE_QUAD_ALIGNMENT 0x00000007 253 #define FILE_OCTA_ALIGNMENT 0x0000000f 254 #define FILE_32_BYTE_ALIGNMENT 0x0000001f 255 #define FILE_64_BYTE_ALIGNMENT 0x0000003f 256 #define FILE_128_BYTE_ALIGNMENT 0x0000007f 257 #define FILE_256_BYTE_ALIGNMENT 0x000000ff 258 #define FILE_512_BYTE_ALIGNMENT 0x000001ff 263 #define DEVICE_TYPE ULONG 267 typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT)
_DEVICE_OBJECT {
274 struct _IRP *CurrentIrp;
277 ULONG Characteristics;
279 PVOID DeviceExtension;
286 ULONG AlignmentRequirement;
289 ULONG ActiveThreadCount;
426 #if (NTDDI_VERSION >= NTDDI_WIN7) 433 (
NTAPI IO_SESSION_NOTIFICATION_FUNCTION)(
480 (
NTAPI IO_WORKITEM_ROUTINE)(
486 (
NTAPI IO_WORKITEM_ROUTINE_EX)(
508 #define IO_FORCE_ACCESS_CHECK 0x001 509 #define IO_NO_PARAMETER_CHECKING 0x100 511 #define IO_REPARSE 0x0 512 #define IO_REMOUNT 0x1 523 typedef struct _IO_STATUS_BLOCK32 {
526 } IO_STATUS_BLOCK32, *PIO_STATUS_BLOCK32;
535 #define PIO_APC_ROUTINE_DEFINED 548 #define IO_SESSION_STATE_ALL_EVENTS 0xffffffff 549 #define IO_SESSION_STATE_CREATION_EVENT 0x00000001 550 #define IO_SESSION_STATE_TERMINATION_EVENT 0x00000002 551 #define IO_SESSION_STATE_CONNECT_EVENT 0x00000004 552 #define IO_SESSION_STATE_DISCONNECT_EVENT 0x00000008 553 #define IO_SESSION_STATE_LOGON_EVENT 0x00000010 554 #define IO_SESSION_STATE_LOGOFF_EVENT 0x00000020 556 #define IO_SESSION_STATE_VALID_EVENT_MASK 0x0000003f 558 #define IO_SESSION_MAX_PAYLOAD_SIZE 256L 565 #define EVENT_INCREMENT 1 566 #define IO_NO_INCREMENT 0 567 #define IO_CD_ROM_INCREMENT 1 568 #define IO_DISK_INCREMENT 1 569 #define IO_KEYBOARD_INCREMENT 6 570 #define IO_MAILSLOT_INCREMENT 2 571 #define IO_MOUSE_INCREMENT 6 572 #define IO_NAMED_PIPE_INCREMENT 2 573 #define IO_NETWORK_INCREMENT 2 574 #define IO_PARALLEL_INCREMENT 1 575 #define IO_SERIAL_INCREMENT 2 576 #define IO_SOUND_INCREMENT 8 577 #define IO_VIDEO_INCREMENT 1 578 #define SEMAPHORE_INCREMENT 1 580 #define MM_MAXIMUM_DISK_IO_SIZE (0x10000) 600 #if (NTDDI_VERSION >= NTDDI_WIN7) 619 #if (NTDDI_VERSION >= NTDDI_VISTA) 621 ULONG BootDeviceSignature;
622 ULONG SystemDeviceSignature;
624 GUID SystemDeviceGuid;
632 #include <pshpack1.h> 727 #define EISA_FUNCTION_ENABLED 0x80 728 #define EISA_FREE_FORM_DATA 0x40 729 #define EISA_HAS_PORT_INIT_ENTRY 0x20 730 #define EISA_HAS_PORT_RANGE 0x10 731 #define EISA_HAS_DMA_ENTRY 0x08 732 #define EISA_HAS_IRQ_ENTRY 0x04 733 #define EISA_HAS_MEMORY_ENTRY 0x02 734 #define EISA_HAS_TYPE_ENTRY 0x01 735 #define EISA_HAS_INFORMATION \ 736 (EISA_HAS_PORT_RANGE + EISA_HAS_DMA_ENTRY + EISA_HAS_IRQ_ENTRY \ 737 + EISA_HAS_MEMORY_ENTRY + EISA_HAS_TYPE_ENTRY) 739 #define EISA_MORE_ENTRIES 0x80 740 #define EISA_SYSTEM_MEMORY 0x00 741 #define EISA_MEMORY_TYPE_RAM 0x01 745 #define EISA_INVALID_SLOT 0x80 746 #define EISA_INVALID_FUNCTION 0x81 747 #define EISA_INVALID_CONFIGURATION 0x82 748 #define EISA_EMPTY_SLOT 0x83 749 #define EISA_INVALID_BIOS_CALL 0x86 766 (
NTAPI TRANSLATE_BUS_ADDRESS)(
777 (
NTAPI GET_DMA_ADAPTER)(
786 (
NTAPI GET_SET_DEVICE_DATA)(
831 #define PCI_DEVICE_PRESENT_INTERFACE_VERSION 1 834 #define PCI_USE_SUBSYSTEM_IDS 0x00000001 835 #define PCI_USE_REVISION 0x00000002 836 #define PCI_USE_VENDEV_IDS 0x00000004 837 #define PCI_USE_CLASS_SUBCLASS 0x00000008 838 #define PCI_USE_PROGIF 0x00000010 839 #define PCI_USE_LOCAL_BUS 0x00000020 840 #define PCI_USE_LOCAL_DEVICE 0x00000040 858 (
NTAPI PCI_IS_DEVICE_PRESENT)(
870 (
NTAPI PCI_IS_DEVICE_PRESENT_EX)(
898 typedef struct _DEVICE_CAPABILITIES {
903 ULONG LockSupported:1;
904 ULONG EjectSupported:1;
908 ULONG SilentInstall:1;
910 ULONG SurpriseRemovalOK:1;
915 ULONG HardwareDisabled:1;
917 ULONG WarmEjectSupported:1;
918 ULONG NoDisplayInUI:1;
964 #define PNP_DEVICE_DISABLED 0x00000001 965 #define PNP_DEVICE_DONT_DISPLAY_IN_UI 0x00000002 966 #define PNP_DEVICE_FAILED 0x00000004 967 #define PNP_DEVICE_REMOVED 0x00000008 968 #define PNP_DEVICE_RESOURCE_REQUIREMENTS_CHANGED 0x00000010 969 #define PNP_DEVICE_NOT_DISABLEABLE 0x00000020 987 #if (NTDDI_VERSION >= NTDDI_VISTA) 989 #define PLUGPLAY_PROPERTY_PERSISTENT 0x00000001 992 #define PNP_REPLACE_NO_MAP MAXLONGLONG 996 (
NTAPI *PREPLACE_MAP_MEMORY)(
1028 #define PNP_REPLACE_PARAMETERS_VERSION 2 1048 (
NTAPI *PREPLACE_BEGIN)(
1054 (
NTAPI *PREPLACE_END)(
1059 (
NTAPI *PREPLACE_MIRROR_PHYSICAL_MEMORY)(
1066 (
NTAPI *PREPLACE_SET_PROCESSOR_ID)(
1073 (
NTAPI *PREPLACE_SWAP)(
1078 (
NTAPI *PREPLACE_INITIATE_HARDWARE_MIRROR)(
1083 (
NTAPI *PREPLACE_MIRROR_PLATFORM_MEMORY)(
1088 (
NTAPI *PREPLACE_GET_MEMORY_DESTINATION)(
1095 (
NTAPI *PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE)(
1099 #define PNP_REPLACE_DRIVER_INTERFACE_VERSION 1 1100 #define PNP_REPLACE_DRIVER_INTERFACE_MINIMUM_SIZE \ 1101 FIELD_OFFSET(PNP_REPLACE_DRIVER_INTERFACE, InitiateHardwareMirror) 1103 #define PNP_REPLACE_MEMORY_SUPPORTED 0x0001 1104 #define PNP_REPLACE_PROCESSOR_SUPPORTED 0x0002 1105 #define PNP_REPLACE_HARDWARE_MEMORY_MIRRORING 0x0004 1106 #define PNP_REPLACE_HARDWARE_PAGE_COPY 0x0008 1107 #define PNP_REPLACE_HARDWARE_QUIESCE 0x0010 1127 (
NTAPI *PREPLACE_DRIVER_INIT)(
1145 #define __string_type 0x1000 1146 #define __guid_type 0x2000 1147 #define __multiString_type 0x4000 1149 #define __string_type 0 1150 #define __guid_type 0 1151 #define __multiString_type 0 1196 #define PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES 0x00000001 1201 (
NTAPI DRIVER_NOTIFICATION_CALLBACK_ROUTINE)(
1209 (
NTAPI DEVICE_CHANGE_COMPLETE_CALLBACK)(
1254 #if (NTDDI_VERSION >= NTDDI_VISTA) 1265 #if (NTDDI_VERSION >= NTDDI_WIN7) 1322 ULONG NumberOfLinks;
1353 ULONG Characteristics;
1357 ULONG NextEntryOffset;
1379 #define FILE_SKIP_COMPLETION_PORT_ON_SUCCESS 0x1 1380 #define FILE_SKIP_SET_EVENT_ON_HANDLE 0x2 1381 #define FILE_SKIP_SET_USER_EVENT_ON_FAST_IO 0x4 1383 #define FM_LOCK_BIT (0x1) 1384 #define FM_LOCK_BIT_V (0x0) 1385 #define FM_LOCK_WAITER_WOKEN (0x2) 1386 #define FM_LOCK_WAITER_INC (0x4) 1391 (
NTAPI FAST_IO_CHECK_IF_POSSIBLE)(
1405 (
NTAPI FAST_IO_READ)(
1419 (
NTAPI FAST_IO_WRITE)(
1433 (
NTAPI FAST_IO_QUERY_BASIC_INFO)(
1444 (
NTAPI FAST_IO_QUERY_STANDARD_INFO)(
1455 (
NTAPI FAST_IO_LOCK)(
1470 (
NTAPI FAST_IO_UNLOCK_SINGLE)(
1483 (
NTAPI FAST_IO_UNLOCK_ALL)(
1493 (
NTAPI FAST_IO_UNLOCK_ALL_BY_KEY)(
1504 (
NTAPI FAST_IO_DEVICE_CONTROL)(
1519 (
NTAPI FAST_IO_ACQUIRE_FILE)(
1526 (
NTAPI FAST_IO_RELEASE_FILE)(
1533 (
NTAPI FAST_IO_DETACH_DEVICE)(
1541 (
NTAPI FAST_IO_QUERY_NETWORK_OPEN_INFO)(
1552 (
NTAPI FAST_IO_ACQUIRE_FOR_MOD_WRITE)(
1562 (
NTAPI FAST_IO_MDL_READ)(
1575 (
NTAPI FAST_IO_MDL_READ_COMPLETE)(
1584 (
NTAPI FAST_IO_PREPARE_MDL_WRITE)(
1597 (
NTAPI FAST_IO_MDL_WRITE_COMPLETE)(
1607 (
NTAPI FAST_IO_READ_COMPRESSED)(
1623 (
NTAPI FAST_IO_WRITE_COMPRESSED)(
1639 (
NTAPI FAST_IO_MDL_READ_COMPLETE_COMPRESSED)(
1648 (
NTAPI FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED)(
1658 (
NTAPI FAST_IO_QUERY_OPEN)(
1667 (
NTAPI FAST_IO_RELEASE_FOR_MOD_WRITE)(
1676 (
NTAPI FAST_IO_ACQUIRE_FOR_CCFLUSH)(
1684 (
NTAPI FAST_IO_RELEASE_FOR_CCFLUSH)(
1721 PVOID DataSectionObject;
1722 PVOID SharedCacheMap;
1723 PVOID ImageSectionObject;
1732 #define FO_FILE_OPEN 0x00000001 1733 #define FO_SYNCHRONOUS_IO 0x00000002 1734 #define FO_ALERTABLE_IO 0x00000004 1735 #define FO_NO_INTERMEDIATE_BUFFERING 0x00000008 1736 #define FO_WRITE_THROUGH 0x00000010 1737 #define FO_SEQUENTIAL_ONLY 0x00000020 1738 #define FO_CACHE_SUPPORTED 0x00000040 1739 #define FO_NAMED_PIPE 0x00000080 1740 #define FO_STREAM_FILE 0x00000100 1741 #define FO_MAILSLOT 0x00000200 1742 #define FO_GENERATE_AUDIT_ON_CLOSE 0x00000400 1743 #define FO_QUEUE_IRP_TO_THREAD 0x00000400 1744 #define FO_DIRECT_DEVICE_OPEN 0x00000800 1745 #define FO_FILE_MODIFIED 0x00001000 1746 #define FO_FILE_SIZE_CHANGED 0x00002000 1747 #define FO_CLEANUP_COMPLETE 0x00004000 1748 #define FO_TEMPORARY_FILE 0x00008000 1749 #define FO_DELETE_ON_CLOSE 0x00010000 1750 #define FO_OPENED_CASE_SENSITIVE 0x00020000 1751 #define FO_HANDLE_CREATED 0x00040000 1752 #define FO_FILE_FAST_IO_READ 0x00080000 1753 #define FO_RANDOM_ACCESS 0x00100000 1754 #define FO_FILE_OPEN_CANCELLED 0x00200000 1755 #define FO_VOLUME_OPEN 0x00400000 1756 #define FO_REMOTE_ORIGIN 0x01000000 1757 #define FO_DISALLOW_EXCLUSIVE 0x02000000 1758 #define FO_SKIP_COMPLETION_PORT 0x02000000 1759 #define FO_SKIP_SET_EVENT 0x04000000 1760 #define FO_SKIP_SET_FAST_IO 0x08000000 1761 #define FO_FLAGS_VALID_ONLY_DURING_CREATE FO_DISALLOW_EXCLUSIVE 1764 #define VPB_MOUNTED 0x0001 1765 #define VPB_LOCKED 0x0002 1766 #define VPB_PERSISTENT 0x0004 1767 #define VPB_REMOVE_PENDING 0x0008 1768 #define VPB_RAW_MOUNT 0x0010 1769 #define VPB_DIRECT_WRITES_ALLOWED 0x0020 1773 #define SL_FORCE_ACCESS_CHECK 0x01 1774 #define SL_OPEN_PAGING_FILE 0x02 1775 #define SL_OPEN_TARGET_DIRECTORY 0x04 1776 #define SL_STOP_ON_SYMLINK 0x08 1777 #define SL_CASE_SENSITIVE 0x80 1779 #define SL_KEY_SPECIFIED 0x01 1780 #define SL_OVERRIDE_VERIFY_VOLUME 0x02 1781 #define SL_WRITE_THROUGH 0x04 1782 #define SL_FT_SEQUENTIAL_WRITE 0x08 1783 #define SL_FORCE_DIRECT_WRITE 0x10 1784 #define SL_REALTIME_STREAM 0x20 1786 #define SL_READ_ACCESS_GRANTED 0x01 1787 #define SL_WRITE_ACCESS_GRANTED 0x04 1789 #define SL_FAIL_IMMEDIATELY 0x01 1790 #define SL_EXCLUSIVE_LOCK 0x02 1792 #define SL_RESTART_SCAN 0x01 1793 #define SL_RETURN_SINGLE_ENTRY 0x02 1794 #define SL_INDEX_SPECIFIED 0x04 1796 #define SL_WATCH_TREE 0x01 1798 #define SL_ALLOW_RAW_MOUNT 0x01 1802 #define CTL_CODE(DeviceType, Function, Method, Access) \ 1803 (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method)) 1805 #define DEVICE_TYPE_FROM_CTL_CODE(ctl) (((ULONG) (ctl & 0xffff0000)) >> 16) 1807 #define METHOD_FROM_CTL_CODE(ctrlCode) ((ULONG)(ctrlCode & 3)) 1813 #define IRP_NOCACHE 0x00000001 1814 #define IRP_PAGING_IO 0x00000002 1815 #define IRP_MOUNT_COMPLETION 0x00000002 1816 #define IRP_SYNCHRONOUS_API 0x00000004 1817 #define IRP_ASSOCIATED_IRP 0x00000008 1818 #define IRP_BUFFERED_IO 0x00000010 1819 #define IRP_DEALLOCATE_BUFFER 0x00000020 1820 #define IRP_INPUT_OPERATION 0x00000040 1821 #define IRP_SYNCHRONOUS_PAGING_IO 0x00000040 1822 #define IRP_CREATE_OPERATION 0x00000080 1823 #define IRP_READ_OPERATION 0x00000100 1824 #define IRP_WRITE_OPERATION 0x00000200 1825 #define IRP_CLOSE_OPERATION 0x00000400 1826 #define IRP_DEFER_IO_COMPLETION 0x00000800 1827 #define IRP_OB_QUERY_NAME 0x00001000 1828 #define IRP_HOLD_DEVICE_QUEUE 0x00002000 1830 #define IRP_RETRY_IO_COMPLETION 0x00004000 1831 #define IRP_CLASS_CACHE_OPERATION 0x00008000 1834 #define IRP_QUOTA_CHARGED 0x01 1835 #define IRP_ALLOCATED_MUST_SUCCEED 0x02 1836 #define IRP_ALLOCATED_FIXED_SIZE 0x04 1837 #define IRP_LOOKASIDE_ALLOCATION 0x08 1843 #define IRP_MJ_CREATE 0x00 1844 #define IRP_MJ_CREATE_NAMED_PIPE 0x01 1845 #define IRP_MJ_CLOSE 0x02 1846 #define IRP_MJ_READ 0x03 1847 #define IRP_MJ_WRITE 0x04 1848 #define IRP_MJ_QUERY_INFORMATION 0x05 1849 #define IRP_MJ_SET_INFORMATION 0x06 1850 #define IRP_MJ_QUERY_EA 0x07 1851 #define IRP_MJ_SET_EA 0x08 1852 #define IRP_MJ_FLUSH_BUFFERS 0x09 1853 #define IRP_MJ_QUERY_VOLUME_INFORMATION 0x0a 1854 #define IRP_MJ_SET_VOLUME_INFORMATION 0x0b 1855 #define IRP_MJ_DIRECTORY_CONTROL 0x0c 1856 #define IRP_MJ_FILE_SYSTEM_CONTROL 0x0d 1857 #define IRP_MJ_DEVICE_CONTROL 0x0e 1858 #define IRP_MJ_INTERNAL_DEVICE_CONTROL 0x0f 1859 #define IRP_MJ_SCSI 0x0f 1860 #define IRP_MJ_SHUTDOWN 0x10 1861 #define IRP_MJ_LOCK_CONTROL 0x11 1862 #define IRP_MJ_CLEANUP 0x12 1863 #define IRP_MJ_CREATE_MAILSLOT 0x13 1864 #define IRP_MJ_QUERY_SECURITY 0x14 1865 #define IRP_MJ_SET_SECURITY 0x15 1866 #define IRP_MJ_POWER 0x16 1867 #define IRP_MJ_SYSTEM_CONTROL 0x17 1868 #define IRP_MJ_DEVICE_CHANGE 0x18 1869 #define IRP_MJ_QUERY_QUOTA 0x19 1870 #define IRP_MJ_SET_QUOTA 0x1a 1871 #define IRP_MJ_PNP 0x1b 1872 #define IRP_MJ_PNP_POWER 0x1b 1873 #define IRP_MJ_MAXIMUM_FUNCTION 0x1b 1875 #define IRP_MN_SCSI_CLASS 0x01 1877 #define IRP_MN_START_DEVICE 0x00 1878 #define IRP_MN_QUERY_REMOVE_DEVICE 0x01 1879 #define IRP_MN_REMOVE_DEVICE 0x02 1880 #define IRP_MN_CANCEL_REMOVE_DEVICE 0x03 1881 #define IRP_MN_STOP_DEVICE 0x04 1882 #define IRP_MN_QUERY_STOP_DEVICE 0x05 1883 #define IRP_MN_CANCEL_STOP_DEVICE 0x06 1885 #define IRP_MN_QUERY_DEVICE_RELATIONS 0x07 1886 #define IRP_MN_QUERY_INTERFACE 0x08 1887 #define IRP_MN_QUERY_CAPABILITIES 0x09 1888 #define IRP_MN_QUERY_RESOURCES 0x0A 1889 #define IRP_MN_QUERY_RESOURCE_REQUIREMENTS 0x0B 1890 #define IRP_MN_QUERY_DEVICE_TEXT 0x0C 1891 #define IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D 1893 #define IRP_MN_READ_CONFIG 0x0F 1894 #define IRP_MN_WRITE_CONFIG 0x10 1895 #define IRP_MN_EJECT 0x11 1896 #define IRP_MN_SET_LOCK 0x12 1897 #define IRP_MN_QUERY_ID 0x13 1898 #define IRP_MN_QUERY_PNP_DEVICE_STATE 0x14 1899 #define IRP_MN_QUERY_BUS_INFORMATION 0x15 1900 #define IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16 1901 #define IRP_MN_SURPRISE_REMOVAL 0x17 1902 #if (NTDDI_VERSION >= NTDDI_WIN7) 1903 #define IRP_MN_DEVICE_ENUMERATED 0x19 1906 #define IRP_MN_WAIT_WAKE 0x00 1907 #define IRP_MN_POWER_SEQUENCE 0x01 1908 #define IRP_MN_SET_POWER 0x02 1909 #define IRP_MN_QUERY_POWER 0x03 1911 #define IRP_MN_QUERY_ALL_DATA 0x00 1912 #define IRP_MN_QUERY_SINGLE_INSTANCE 0x01 1913 #define IRP_MN_CHANGE_SINGLE_INSTANCE 0x02 1914 #define IRP_MN_CHANGE_SINGLE_ITEM 0x03 1915 #define IRP_MN_ENABLE_EVENTS 0x04 1916 #define IRP_MN_DISABLE_EVENTS 0x05 1917 #define IRP_MN_ENABLE_COLLECTION 0x06 1918 #define IRP_MN_DISABLE_COLLECTION 0x07 1919 #define IRP_MN_REGINFO 0x08 1920 #define IRP_MN_EXECUTE_METHOD 0x09 1922 #define IRP_MN_REGINFO_EX 0x0b 1924 typedef struct _FILE_OBJECT {
1932 PVOID PrivateCacheMap;
1934 struct _FILE_OBJECT *RelatedFileObject;
1946 volatile ULONG Waiters;
1947 volatile ULONG Busy;
1954 volatile PVOID FileObjectExtension;
1984 #define PORT_MAXIMUM_MESSAGE_LENGTH 512 1986 #define PORT_MAXIMUM_MESSAGE_LENGTH 256 1989 #define ERROR_LOG_LIMIT_SIZE 240 1990 #define IO_ERROR_LOG_MESSAGE_HEADER_LENGTH (sizeof(IO_ERROR_LOG_MESSAGE) - \ 1991 sizeof(IO_ERROR_LOG_PACKET) + \ 1992 (sizeof(WCHAR) * 40)) 1993 #define ERROR_LOG_MESSAGE_LIMIT_SIZE \ 1994 (ERROR_LOG_LIMIT_SIZE + IO_ERROR_LOG_MESSAGE_HEADER_LENGTH) 1995 #define IO_ERROR_LOG_MESSAGE_LENGTH \ 1996 ((PORT_MAXIMUM_MESSAGE_LENGTH > ERROR_LOG_MESSAGE_LIMIT_SIZE) ? \ 1997 ERROR_LOG_MESSAGE_LIMIT_SIZE : \ 1998 PORT_MAXIMUM_MESSAGE_LENGTH) 1999 #define ERROR_LOG_MAXIMUM_SIZE (IO_ERROR_LOG_MESSAGE_LENGTH - \ 2000 IO_ERROR_LOG_MESSAGE_HEADER_LENGTH) 2020 #define DEVICE_DESCRIPTION_VERSION 0x0000 2021 #define DEVICE_DESCRIPTION_VERSION1 0x0001 2022 #define DEVICE_DESCRIPTION_VERSION2 0x0002 2070 #if defined(_MSC_EXTENSIONS) || defined(__GNUC__) 2072 #if defined(_MSC_VER) 2073 #if _MSC_VER >= 1200 2074 #pragma warning(push) 2076 #pragma warning(disable:4200) 2079 typedef struct _SCATTER_GATHER_LIST {
2080 ULONG NumberOfElements;
2085 #if defined(_MSC_VER) 2086 #if _MSC_VER >= 1200 2087 #pragma warning(pop) 2089 #pragma warning(default:4200) 2095 struct _SCATTER_GATHER_LIST;
2105 (
NTAPI DRIVER_ADD_DEVICE)(
2117 #define DRVO_UNLOAD_INVOKED 0x00000001 2118 #define DRVO_LEGACY_DRIVER 0x00000002 2119 #define DRVO_BUILTIN_DRIVER 0x00000004 2124 (
NTAPI DRIVER_INITIALIZE)(
2134 (
NTAPI DRIVER_STARTIO)(
2143 (
NTAPI DRIVER_UNLOAD)(
2161 (
NTAPI DRIVER_DISPATCH_PAGED)(
2256 (
NTAPI DRIVER_LIST_CONTROL)(
2331 UCHAR ShareDisposition;
2349 ULONG MinimumVector;
2350 ULONG MaximumVector;
2353 ULONG MinimumChannel;
2354 ULONG MaximumChannel;
2402 (
NTAPI DRIVER_CANCEL)(
2407 typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _IRP {
2410 struct _MDL *MdlAddress;
2413 struct _IRP *MasterIrp;
2414 volatile LONG IrpCount;
2422 CHAR CurrentLocation;
2425 CCHAR ApcEnvironment;
2426 UCHAR AllocationFlags;
2433 PVOID IssuingProcess;
2435 PVOID UserApcContext;
2436 } AsynchronousParameters;
2450 PCHAR AuxiliaryBuffer;
2458 struct _FILE_OBJECT *OriginalFileObject;
2461 PVOID CompletionKey;
2476 (
NTAPI IO_COMPLETION_ROUTINE)(
2487 (
NTAPI IO_DPC_ROUTINE)(
2505 (
NTAPI IO_TIMER_ROUTINE)(
2526 (
NTAPI IO_CSQ_INSERT_IRP)(
2532 (
NTAPI IO_CSQ_INSERT_IRP_EX)(
2539 (
NTAPI IO_CSQ_REMOVE_IRP)(
2545 (
NTAPI IO_CSQ_PEEK_NEXT_IRP)(
2552 (
NTAPI IO_CSQ_ACQUIRE_LOCK)(
2558 (
NTAPI IO_CSQ_RELEASE_LOCK)(
2564 (
NTAPI IO_CSQ_COMPLETE_CANCELED_IRP)(
2577 PVOID ReservePointer;
2601 (
NTAPI *PGPE_CONNECT_VECTOR)(
2613 (
NTAPI *PGPE_DISCONNECT_VECTOR)(
2619 (
NTAPI *PGPE_ENABLE_EVENT)(
2626 (
NTAPI *PGPE_DISABLE_EVENT)(
2633 (
NTAPI *PGPE_CLEAR_STATUS)(
2645 (
NTAPI *PREGISTER_FOR_DEVICE_NOTIFICATIONS)(
2652 (
NTAPI *PUNREGISTER_FOR_DEVICE_NOTIFICATIONS)(
2679 (
NTAPI *PGPE_CONNECT_VECTOR2)(
2691 (
NTAPI *PGPE_DISCONNECT_VECTOR2)(
2698 (
NTAPI *PGPE_ENABLE_EVENT2)(
2705 (
NTAPI *PGPE_DISABLE_EVENT2)(
2712 (
NTAPI *PGPE_CLEAR_STATUS2)(
2718 (
NTAPI *PDEVICE_NOTIFY_CALLBACK2)(
2725 (
NTAPI *PREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
2732 (
NTAPI *PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
2750 #if !defined(_AMD64_) && !defined(_ARM_) 2751 #include <pshpack4.h> 2805 } NotifyDirectoryEx;
2845 } FileSystemControl;
2855 PVOID Type3InputBuffer;
2887 } QueryDeviceRelations;
2900 } FilterResourceRequirements;
2921 } UsageNotification;
2931 #if (NTDDI_VERSION >= NTDDI_VISTA) 2933 #endif // (NTDDI_VERSION >= NTDDI_VISTA) 2962 #if !defined(_AMD64_) && !defined(_ARM_) 2963 #include "poppack.h" 2969 #define SL_PENDING_RETURNED 0x01 2970 #define SL_ERROR_RETURNED 0x02 2971 #define SL_INVOKE_ON_CANCEL 0x20 2972 #define SL_INVOKE_ON_SUCCESS 0x40 2973 #define SL_INVOKE_ON_ERROR 0x80 2977 #define METHOD_BUFFERED 0 2978 #define METHOD_IN_DIRECT 1 2979 #define METHOD_OUT_DIRECT 2 2980 #define METHOD_NEITHER 3 2982 #define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT 2983 #define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT 2987 #define FILE_SUPERSEDED 0x00000000 2988 #define FILE_OPENED 0x00000001 2989 #define FILE_CREATED 0x00000002 2990 #define FILE_OVERWRITTEN 0x00000003 2991 #define FILE_EXISTS 0x00000004 2992 #define FILE_DOES_NOT_EXIST 0x00000005 2994 #define FILE_USE_FILE_POINTER_POSITION 0xfffffffe 2995 #define FILE_WRITE_TO_END_OF_FILE 0xffffffff 2998 #define FILE_LIST_DIRECTORY 0x00000001 2999 #define FILE_READ_DATA 0x00000001 3000 #define FILE_ADD_FILE 0x00000002 3001 #define FILE_WRITE_DATA 0x00000002 3002 #define FILE_ADD_SUBDIRECTORY 0x00000004 3003 #define FILE_APPEND_DATA 0x00000004 3004 #define FILE_CREATE_PIPE_INSTANCE 0x00000004 3005 #define FILE_READ_EA 0x00000008 3006 #define FILE_WRITE_EA 0x00000010 3007 #define FILE_EXECUTE 0x00000020 3008 #define FILE_TRAVERSE 0x00000020 3009 #define FILE_DELETE_CHILD 0x00000040 3010 #define FILE_READ_ATTRIBUTES 0x00000080 3011 #define FILE_WRITE_ATTRIBUTES 0x00000100 3013 #define FILE_SHARE_READ 0x00000001 3014 #define FILE_SHARE_WRITE 0x00000002 3015 #define FILE_SHARE_DELETE 0x00000004 3016 #define FILE_SHARE_VALID_FLAGS 0x00000007 3018 #define FILE_ATTRIBUTE_READONLY 0x00000001 3019 #define FILE_ATTRIBUTE_HIDDEN 0x00000002 3020 #define FILE_ATTRIBUTE_SYSTEM 0x00000004 3021 #define FILE_ATTRIBUTE_DIRECTORY 0x00000010 3022 #define FILE_ATTRIBUTE_ARCHIVE 0x00000020 3023 #define FILE_ATTRIBUTE_DEVICE 0x00000040 3024 #define FILE_ATTRIBUTE_NORMAL 0x00000080 3025 #define FILE_ATTRIBUTE_TEMPORARY 0x00000100 3026 #define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200 3027 #define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 3028 #define FILE_ATTRIBUTE_COMPRESSED 0x00000800 3029 #define FILE_ATTRIBUTE_OFFLINE 0x00001000 3030 #define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000 3031 #define FILE_ATTRIBUTE_ENCRYPTED 0x00004000 3032 #define FILE_ATTRIBUTE_INTEGRITY_STREAM 0x00008000 3033 #define FILE_ATTRIBUTE_VIRTUAL 0x00010000 3035 #define FILE_ATTRIBUTE_VALID_FLAGS 0x00007fb7 3036 #define FILE_ATTRIBUTE_VALID_SET_FLAGS 0x000031a7 3038 #define FILE_VALID_OPTION_FLAGS 0x00ffffff 3039 #define FILE_VALID_PIPE_OPTION_FLAGS 0x00000032 3040 #define FILE_VALID_MAILSLOT_OPTION_FLAGS 0x00000032 3041 #define FILE_VALID_SET_FLAGS 0x00000036 3043 #define FILE_SUPERSEDE 0x00000000 3044 #define FILE_OPEN 0x00000001 3045 #define FILE_CREATE 0x00000002 3046 #define FILE_OPEN_IF 0x00000003 3047 #define FILE_OVERWRITE 0x00000004 3048 #define FILE_OVERWRITE_IF 0x00000005 3049 #define FILE_MAXIMUM_DISPOSITION 0x00000005 3051 #define FILE_DIRECTORY_FILE 0x00000001 3052 #define FILE_WRITE_THROUGH 0x00000002 3053 #define FILE_SEQUENTIAL_ONLY 0x00000004 3054 #define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008 3055 #define FILE_SYNCHRONOUS_IO_ALERT 0x00000010 3056 #define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020 3057 #define FILE_NON_DIRECTORY_FILE 0x00000040 3058 #define FILE_CREATE_TREE_CONNECTION 0x00000080 3059 #define FILE_COMPLETE_IF_OPLOCKED 0x00000100 3060 #define FILE_NO_EA_KNOWLEDGE 0x00000200 3061 #define FILE_OPEN_REMOTE_INSTANCE 0x00000400 3062 #define FILE_RANDOM_ACCESS 0x00000800 3063 #define FILE_DELETE_ON_CLOSE 0x00001000 3064 #define FILE_OPEN_BY_FILE_ID 0x00002000 3065 #define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000 3066 #define FILE_NO_COMPRESSION 0x00008000 3067 #if (NTDDI_VERSION >= NTDDI_WIN7) 3068 #define FILE_OPEN_REQUIRING_OPLOCK 0x00010000 3069 #define FILE_DISALLOW_EXCLUSIVE 0x00020000 3071 #define FILE_RESERVE_OPFILTER 0x00100000 3072 #define FILE_OPEN_REPARSE_POINT 0x00200000 3073 #define FILE_OPEN_NO_RECALL 0x00400000 3074 #define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 3078 #define FILE_ANY_ACCESS 0x00000000 3079 #define FILE_SPECIAL_ACCESS FILE_ANY_ACCESS 3080 #define FILE_READ_ACCESS 0x00000001 3081 #define FILE_WRITE_ACCESS 0x00000002 3085 #define FILE_ALL_ACCESS \ 3086 (STANDARD_RIGHTS_REQUIRED | \ 3090 #define FILE_GENERIC_EXECUTE \ 3091 (STANDARD_RIGHTS_EXECUTE | \ 3092 FILE_READ_ATTRIBUTES | \ 3096 #define FILE_GENERIC_READ \ 3097 (STANDARD_RIGHTS_READ | \ 3099 FILE_READ_ATTRIBUTES | \ 3103 #define FILE_GENERIC_WRITE \ 3104 (STANDARD_RIGHTS_WRITE | \ 3106 FILE_WRITE_ATTRIBUTES | \ 3108 FILE_APPEND_DATA | \ 3113 #define WMIREG_ACTION_REGISTER 1 3114 #define WMIREG_ACTION_DEREGISTER 2 3115 #define WMIREG_ACTION_REREGISTER 3 3116 #define WMIREG_ACTION_UPDATE_GUIDS 4 3117 #define WMIREG_ACTION_BLOCK_IRPS 5 3119 #define WMIREGISTER 0 3125 (
NTAPI FWMI_NOTIFICATION_CALLBACK)(
3144 #define PCI_TYPE0_ADDRESSES 6 3145 #define PCI_TYPE1_ADDRESSES 2 3146 #define PCI_TYPE2_ADDRESSES 5 3151 #define PCI_COMMON_HEADER_LAYOUT \ 3160 UCHAR CacheLineSize; \ 3161 UCHAR LatencyTimer; \ 3165 struct _PCI_HEADER_TYPE_0 { \ 3166 ULONG BaseAddresses[PCI_TYPE0_ADDRESSES]; \ 3168 USHORT SubVendorID; \ 3169 USHORT SubSystemID; \ 3170 ULONG ROMBaseAddress; \ 3171 UCHAR CapabilitiesPtr; \ 3172 UCHAR Reserved1[3]; \ 3174 UCHAR InterruptLine; \ 3175 UCHAR InterruptPin; \ 3176 UCHAR MinimumGrant; \ 3177 UCHAR MaximumLatency; \ 3179 struct _PCI_HEADER_TYPE_1 { \ 3180 ULONG BaseAddresses[PCI_TYPE1_ADDRESSES]; \ 3182 UCHAR SecondaryBus; \ 3183 UCHAR SubordinateBus; \ 3184 UCHAR SecondaryLatency; \ 3187 USHORT SecondaryStatus; \ 3188 USHORT MemoryBase; \ 3189 USHORT MemoryLimit; \ 3190 USHORT PrefetchBase; \ 3191 USHORT PrefetchLimit; \ 3192 ULONG PrefetchBaseUpper32; \ 3193 ULONG PrefetchLimitUpper32; \ 3194 USHORT IOBaseUpper16; \ 3195 USHORT IOLimitUpper16; \ 3196 UCHAR CapabilitiesPtr; \ 3197 UCHAR Reserved1[3]; \ 3198 ULONG ROMBaseAddress; \ 3199 UCHAR InterruptLine; \ 3200 UCHAR InterruptPin; \ 3201 USHORT BridgeControl; \ 3203 struct _PCI_HEADER_TYPE_2 { \ 3204 ULONG SocketRegistersBaseAddress; \ 3205 UCHAR CapabilitiesPtr; \ 3207 USHORT SecondaryStatus; \ 3209 UCHAR SecondaryBus; \ 3210 UCHAR SubordinateBus; \ 3211 UCHAR SecondaryLatency; \ 3215 } Range[PCI_TYPE2_ADDRESSES-1]; \ 3216 UCHAR InterruptLine; \ 3217 UCHAR InterruptPin; \ 3218 USHORT BridgeControl; \ 3229 UCHAR DeviceSpecific[192];
3238 #define PCI_COMMON_HDR_LENGTH (FIELD_OFFSET(PCI_COMMON_CONFIG, DeviceSpecific)) 3240 #define PCI_EXTENDED_CONFIG_LENGTH 0x1000 3242 #define PCI_MAX_DEVICES 32 3243 #define PCI_MAX_FUNCTION 8 3244 #define PCI_MAX_BRIDGE_NUMBER 0xFF 3245 #define PCI_INVALID_VENDORID 0xFFFF 3248 #define PCI_MULTIFUNCTION 0x80 3249 #define PCI_DEVICE_TYPE 0x00 3250 #define PCI_BRIDGE_TYPE 0x01 3251 #define PCI_CARDBUS_BRIDGE_TYPE 0x02 3253 #define PCI_CONFIGURATION_TYPE(PciData) \ 3254 (((PPCI_COMMON_CONFIG) (PciData))->HeaderType & ~PCI_MULTIFUNCTION) 3256 #define PCI_MULTIFUNCTION_DEVICE(PciData) \ 3257 ((((PPCI_COMMON_CONFIG) (PciData))->HeaderType & PCI_MULTIFUNCTION) != 0) 3260 #define PCI_ENABLE_IO_SPACE 0x0001 3261 #define PCI_ENABLE_MEMORY_SPACE 0x0002 3262 #define PCI_ENABLE_BUS_MASTER 0x0004 3263 #define PCI_ENABLE_SPECIAL_CYCLES 0x0008 3264 #define PCI_ENABLE_WRITE_AND_INVALIDATE 0x0010 3265 #define PCI_ENABLE_VGA_COMPATIBLE_PALETTE 0x0020 3266 #define PCI_ENABLE_PARITY 0x0040 3267 #define PCI_ENABLE_WAIT_CYCLE 0x0080 3268 #define PCI_ENABLE_SERR 0x0100 3269 #define PCI_ENABLE_FAST_BACK_TO_BACK 0x0200 3270 #define PCI_DISABLE_LEVEL_INTERRUPT 0x0400 3273 #define PCI_STATUS_INTERRUPT_PENDING 0x0008 3274 #define PCI_STATUS_CAPABILITIES_LIST 0x0010 3275 #define PCI_STATUS_66MHZ_CAPABLE 0x0020 3276 #define PCI_STATUS_UDF_SUPPORTED 0x0040 3277 #define PCI_STATUS_FAST_BACK_TO_BACK 0x0080 3278 #define PCI_STATUS_DATA_PARITY_DETECTED 0x0100 3279 #define PCI_STATUS_DEVSEL 0x0600 3280 #define PCI_STATUS_SIGNALED_TARGET_ABORT 0x0800 3281 #define PCI_STATUS_RECEIVED_TARGET_ABORT 0x1000 3282 #define PCI_STATUS_RECEIVED_MASTER_ABORT 0x2000 3283 #define PCI_STATUS_SIGNALED_SYSTEM_ERROR 0x4000 3284 #define PCI_STATUS_DETECTED_PARITY_ERROR 0x8000 3288 #define PCI_WHICHSPACE_CONFIG 0x0 3289 #define PCI_WHICHSPACE_ROM 0x52696350 3291 #define PCI_CAPABILITY_ID_POWER_MANAGEMENT 0x01 3292 #define PCI_CAPABILITY_ID_AGP 0x02 3293 #define PCI_CAPABILITY_ID_VPD 0x03 3294 #define PCI_CAPABILITY_ID_SLOT_ID 0x04 3295 #define PCI_CAPABILITY_ID_MSI 0x05 3296 #define PCI_CAPABILITY_ID_CPCI_HOTSWAP 0x06 3297 #define PCI_CAPABILITY_ID_PCIX 0x07 3298 #define PCI_CAPABILITY_ID_HYPERTRANSPORT 0x08 3299 #define PCI_CAPABILITY_ID_VENDOR_SPECIFIC 0x09 3300 #define PCI_CAPABILITY_ID_DEBUG_PORT 0x0A 3301 #define PCI_CAPABILITY_ID_CPCI_RES_CTRL 0x0B 3302 #define PCI_CAPABILITY_ID_SHPC 0x0C 3303 #define PCI_CAPABILITY_ID_P2P_SSID 0x0D 3304 #define PCI_CAPABILITY_ID_AGP_TARGET 0x0E 3305 #define PCI_CAPABILITY_ID_SECURE 0x0F 3306 #define PCI_CAPABILITY_ID_PCI_EXPRESS 0x10 3307 #define PCI_CAPABILITY_ID_MSIX 0x11 3397 #define PCI_EXPRESS_ADVANCED_ERROR_REPORTING_CAP_ID 0x0001 3398 #define PCI_EXPRESS_VIRTUAL_CHANNEL_CAP_ID 0x0002 3399 #define PCI_EXPRESS_DEVICE_SERIAL_NUMBER_CAP_ID 0x0003 3400 #define PCI_EXPRESS_POWER_BUDGETING_CAP_ID 0x0004 3401 #define PCI_EXPRESS_RC_LINK_DECLARATION_CAP_ID 0x0005 3402 #define PCI_EXPRESS_RC_INTERNAL_LINK_CONTROL_CAP_ID 0x0006 3403 #define PCI_EXPRESS_RC_EVENT_COLLECTOR_ENDPOINT_ASSOCIATION_CAP_ID 0x0007 3404 #define PCI_EXPRESS_MFVC_CAP_ID 0x0008 3405 #define PCI_EXPRESS_VC_AND_MFVC_CAP_ID 0x0009 3406 #define PCI_EXPRESS_RCRB_HEADER_CAP_ID 0x000A 3407 #define PCI_EXPRESS_SINGLE_ROOT_IO_VIRTUALIZATION_CAP_ID 0x0010 3634 #define ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING 0x00000001 3635 #define ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING 0x00000002 3636 #define ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING 0x00000004 3638 #define ROOT_CMD_ERROR_REPORTING_ENABLE_MASK \ 3639 (ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING | \ 3640 ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING | \ 3641 ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING)