ReactOS 0.4.17-dev-966-gf06eace
pci.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS PCI Bus Driver
3 * LICENSE: BSD - See COPYING.ARM in the top level directory
4 * FILE: drivers/bus/pci/pci.h
5 * PURPOSE: Main Header File
6 * PROGRAMMERS: ReactOS Portable Systems Group
7 */
8
9#ifndef _PCIX_PCH_
10#define _PCIX_PCH_
11
12#include <ntifs.h>
13#include <wdmguid.h>
14#include <wchar.h>
15#include <acpiioct.h>
16#include <drivers/pci/pci.h>
17#include <drivers/acpi/acpi.h>
18#include <ndk/halfuncs.h>
19#include <ndk/rtlfuncs.h>
20#include <ndk/vffuncs.h>
21#include <arbiter.h>
22#include <cmreslist.h>
23
24//
25// Tag used in all pool allocations (Pci Bus)
26//
27#define PCI_POOL_TAG 'BicP'
28
29//
30// Checks if the specified FDO is the FDO for the Root PCI Bus
31//
32#define PCI_IS_ROOT_FDO(x) ((x)->BusRootFdoExtension == x)
33
34//
35// Assertions to make sure we are dealing with the right kind of extension
36//
37#define ASSERT_FDO(x) ASSERT((x)->ExtensionType == PciFdoExtensionType);
38#define ASSERT_PDO(x) ASSERT((x)->ExtensionType == PciPdoExtensionType);
39
40//
41// PCI Hack Entry Name Lengths
42//
43#define PCI_HACK_ENTRY_SIZE sizeof(L"VVVVdddd") - sizeof(UNICODE_NULL)
44#define PCI_HACK_ENTRY_REV_SIZE sizeof(L"VVVVddddRR") - sizeof(UNICODE_NULL)
45#define PCI_HACK_ENTRY_SUBSYS_SIZE sizeof(L"VVVVddddssssIIII") - sizeof(UNICODE_NULL)
46#define PCI_HACK_ENTRY_FULL_SIZE sizeof(L"VVVVddddssssIIIIRR") - sizeof(UNICODE_NULL)
47
48//
49// PCI Hack Entry Flags
50//
51#define PCI_HACK_HAS_REVISION_INFO 0x01
52#define PCI_HACK_HAS_SUBSYSTEM_INFO 0x02
53
54//
55// PCI Interface Flags
56//
57#define PCI_INTERFACE_PDO 0x01
58#define PCI_INTERFACE_FDO 0x02
59#define PCI_INTERFACE_ROOT 0x04
60
61//
62// PCI Skip Function Flags
63//
64#define PCI_SKIP_DEVICE_ENUMERATION 0x01
65#define PCI_SKIP_RESOURCE_ENUMERATION 0x02
66
67//
68// PCI Apply Hack Flags
69//
70#define PCI_HACK_FIXUP_BEFORE_CONFIGURATION 0x00
71#define PCI_HACK_FIXUP_AFTER_CONFIGURATION 0x01
72#define PCI_HACK_FIXUP_BEFORE_UPDATE 0x03
73
74//
75// PCI Legacy Configuration Space Length
76//
77#define PCI_LEGACY_CONFIG_LENGTH 0x100
78
79//
80// PCI Arbiter Interface Version
81//
82#define ARBITER_INTERFACE_VERSION 0
83
84//
85// PCI Debugging Device Support
86//
87#define MAX_DEBUGGING_DEVICES_SUPPORTED 0x04
88
89//
90// PCI Driver Verifier Failures
91//
92#define PCI_VERIFIER_CODES 0x04
93
94//
95// PCI ID Buffer ANSI Strings
96//
97#define MAX_ANSI_STRINGS 0x08
98
99//
100// Device Extension, Interface, Translator and Arbiter Signatures
101//
102typedef enum _PCI_SIGNATURE
103{
106 PciArb_Io = 'icP2',
119 PciInterface_Location = 'icP?'
121
122//
123// Driver-handled PCI Device Types
124//
126{
133
134//
135// Device Extension Logic States
136//
137typedef enum _PCI_STATE
138{
147
148//
149// IRP Dispatch Logic Style
150//
152{
158
159//
160// PCI Hack Entry Information
161//
162typedef struct _PCI_HACK_ENTRY
163{
172
173//
174// Power State Information for Device Extension
175//
176typedef struct _PCI_POWER_STATE
177{
189
190//
191// Internal PCI Lock Structure
192//
193typedef struct _PCI_LOCK
194{
198
199//
200// Device Extension for a Bus FDO
201//
202typedef struct _PCI_FDO_EXTENSION
203{
233 struct
234 {
244
246{
250
252{
253 struct
254 {
257 struct
258 {
268 struct
269 {
270 UCHAR Spare[4];
273
274typedef struct _PCI_PDO_EXTENSION
275{
281
335
336//
337// IRP Dispatch Function Type
338//
340 IN PIRP Irp,
342 IN PVOID DeviceExtension
343);
344
345//
346// IRP Dispatch Minor Table
347//
349{
353
354//
355// IRP Dispatch Major Table
356//
358{
368
369//
370// Generic PCI Interface Constructor and Initializer
371//
372struct _PCI_INTERFACE;
374 IN PVOID DeviceExtension,
376 IN PVOID InterfaceData,
378 IN USHORT Size,
380);
381
384);
385
386//
387// Generic PCI Interface (Interface, Translator, Arbiter)
388//
389typedef struct _PCI_INTERFACE
390{
401
402//
403// Generic Secondary Extension Instance Header (Interface, Translator, Arbiter)
404//
406{
411
412//
413// PCI Arbiter Instance
414//
416{
423
424//
425// PCI Verifier Data
426//
427typedef struct _PCI_VERIFIER_DATA
428{
434
435//
436// PCI ID Buffer Descriptor
437//
438typedef struct _PCI_ID_BUFFER
439{
447
448//
449// PCI Configuration Callbacks
450//
452
455);
456
459);
460
463);
464
467);
468
472);
473
477 IN PIO_RESOURCE_DESCRIPTOR IoDescriptor
478);
479
483);
484
485//
486// PCI Configurator
487//
488typedef struct _PCI_CONFIGURATOR
489{
498
499//
500// PCI Configurator Context
501//
503{
512
513//
514// PCI IPI Function
515//
519);
520
521//
522// PCI IPI Context
523//
524typedef struct _PCI_IPI_CONTEXT
525{
532
533//
534// PCI Legacy Device Location Cache
535//
536typedef struct _PCI_LEGACY_DEVICE
537{
550
551//
552// IRP Dispatch Routines
553//
554
556
558NTAPI
561 IN PIRP Irp
562);
563
565NTAPI
567 IN PIRP Irp,
569 IN PPCI_FDO_EXTENSION DeviceExtension
570);
571
573NTAPI
575 IN PPCI_FDO_EXTENSION DeviceExtension,
576 IN PIRP Irp
577);
578
580NTAPI
582 IN PPCI_FDO_EXTENSION DeviceExtension,
583 IN PIRP Irp
584);
585
587NTAPI
589 IN PIRP Irp,
591 IN PPCI_FDO_EXTENSION DeviceExtension
592);
593
594//
595// Power Routines
596//
598NTAPI
600 IN PIRP Irp,
602 IN PPCI_FDO_EXTENSION DeviceExtension
603);
604
606NTAPI
608 IN PIRP Irp,
610 IN PPCI_FDO_EXTENSION DeviceExtension
611);
612
614NTAPI
616 IN PIRP Irp,
618 IN PPCI_FDO_EXTENSION DeviceExtension
619);
620
622NTAPI
624 IN PPCI_PDO_EXTENSION DeviceExtension,
626 IN BOOLEAN IrpSet
627);
628
629//
630// Bus FDO Routines
631//
632
633DRIVER_ADD_DEVICE PciAddDevice;
634
636NTAPI
640);
641
643NTAPI
645 IN PIRP Irp,
647 IN PPCI_FDO_EXTENSION DeviceExtension
648);
649
651NTAPI
653 IN PIRP Irp,
655 IN PPCI_FDO_EXTENSION DeviceExtension
656);
657
659NTAPI
661 IN PIRP Irp,
663 IN PPCI_FDO_EXTENSION DeviceExtension
664);
665
667NTAPI
669 IN PIRP Irp,
671 IN PPCI_FDO_EXTENSION DeviceExtension
672);
673
675NTAPI
677 IN PIRP Irp,
679 IN PPCI_FDO_EXTENSION DeviceExtension
680);
681
683NTAPI
685 IN PIRP Irp,
687 IN PPCI_FDO_EXTENSION DeviceExtension
688);
689
691NTAPI
693 IN PIRP Irp,
695 IN PPCI_FDO_EXTENSION DeviceExtension
696);
697
699NTAPI
701 IN PIRP Irp,
703 IN PPCI_FDO_EXTENSION DeviceExtension
704);
705
707NTAPI
709 IN PIRP Irp,
711 IN PPCI_FDO_EXTENSION DeviceExtension
712);
713
715NTAPI
717 IN PIRP Irp,
719 IN PPCI_FDO_EXTENSION DeviceExtension
720);
721
723NTAPI
725 IN PIRP Irp,
727 IN PPCI_FDO_EXTENSION DeviceExtension
728);
729
731NTAPI
733 IN PIRP Irp,
735 IN PPCI_FDO_EXTENSION DeviceExtension
736);
737
739NTAPI
741 IN PIRP Irp,
743 IN PPCI_FDO_EXTENSION DeviceExtension
744);
745
746//
747// Device PDO Routines
748//
750NTAPI
752 IN PPCI_FDO_EXTENSION DeviceExtension,
753 IN PCI_SLOT_NUMBER Slot,
755);
756
758NTAPI
760 IN PIRP Irp,
762 IN PPCI_PDO_EXTENSION DeviceExtension
763);
764
766NTAPI
768 IN PIRP Irp,
770 IN PPCI_PDO_EXTENSION DeviceExtension
771);
772
774NTAPI
776 IN PIRP Irp,
778 IN PPCI_PDO_EXTENSION DeviceExtension
779);
780
782NTAPI
784 IN PIRP Irp,
786 IN PPCI_PDO_EXTENSION DeviceExtension
787);
788
790NTAPI
792 IN PIRP Irp,
794 IN PPCI_PDO_EXTENSION DeviceExtension
795);
796
798NTAPI
800 IN PIRP Irp,
802 IN PPCI_PDO_EXTENSION DeviceExtension
803);
804
806NTAPI
808 IN PIRP Irp,
810 IN PPCI_PDO_EXTENSION DeviceExtension
811);
812
814NTAPI
816 IN PIRP Irp,
818 IN PPCI_PDO_EXTENSION DeviceExtension
819);
820
822NTAPI
824 IN PIRP Irp,
826 IN PPCI_PDO_EXTENSION DeviceExtension
827);
828
830NTAPI
832 IN PIRP Irp,
834 IN PPCI_PDO_EXTENSION DeviceExtension
835);
836
838NTAPI
840 IN PIRP Irp,
842 IN PPCI_PDO_EXTENSION DeviceExtension
843);
844
846NTAPI
848 IN PIRP Irp,
850 IN PPCI_PDO_EXTENSION DeviceExtension
851);
852
854NTAPI
856 IN PIRP Irp,
858 IN PPCI_PDO_EXTENSION DeviceExtension
859);
860
862NTAPI
864 IN PIRP Irp,
866 IN PPCI_PDO_EXTENSION DeviceExtension
867);
868
870NTAPI
872 IN PIRP Irp,
874 IN PPCI_PDO_EXTENSION DeviceExtension
875);
876
878NTAPI
880 IN PIRP Irp,
882 IN PPCI_PDO_EXTENSION DeviceExtension
883);
884
886NTAPI
888 IN PIRP Irp,
890 IN PPCI_PDO_EXTENSION DeviceExtension
891);
892
894NTAPI
896 IN PIRP Irp,
898 IN PPCI_PDO_EXTENSION DeviceExtension
899);
900
902NTAPI
904 IN PIRP Irp,
906 IN PPCI_PDO_EXTENSION DeviceExtension
907);
908
910NTAPI
912 IN PIRP Irp,
914 IN PPCI_PDO_EXTENSION DeviceExtension
915);
916
918NTAPI
920 IN PIRP Irp,
922 IN PPCI_PDO_EXTENSION DeviceExtension
923);
924
926NTAPI
928 IN PIRP Irp,
930 IN PPCI_PDO_EXTENSION DeviceExtension
931);
932
934NTAPI
936 IN PIRP Irp,
938 IN PPCI_PDO_EXTENSION DeviceExtension
939);
940
942NTAPI
944 IN PIRP Irp,
946 IN PPCI_PDO_EXTENSION DeviceExtension
947);
948
949
950//
951// HAL Callback/Hook Routines
952//
953VOID
954NTAPI
956 VOID
957);
958
959//
960// PCI Verifier Routines
961//
962VOID
963NTAPI
966);
967
969NTAPI
971 IN ULONG FailureCode
972);
973
974//
975// Utility Routines
976//
978NTAPI
982);
983
985NTAPI
987 VOID
988);
989
991NTAPI
993 VOID
994);
995
997NTAPI
999 IN PUNICODE_STRING InputString,
1000 IN PCUNICODE_STRING EqualString,
1002);
1003
1004BOOLEAN
1005NTAPI
1011 OUT PNTSTATUS KeyStatus
1012);
1013
1015NTAPI
1019 IN HANDLE RootHandle,
1020 IN ULONG Type,
1022 OUT PULONG OutputLength
1023);
1024
1026NTAPI
1030);
1031
1032VOID
1033NTAPI
1035 IN PSINGLE_LIST_ENTRY ListHead,
1036 IN PPCI_FDO_EXTENSION DeviceExtension,
1038);
1039
1041NTAPI
1046);
1047
1049NTAPI
1057);
1058
1059VOID
1060NTAPI
1063 IN PVOID Lock,
1064 IN PPCI_SECONDARY_EXTENSION SecondaryExtension,
1065 IN PCI_SIGNATURE ExtensionType,
1066 IN PVOID Destructor
1067);
1068
1070NTAPI
1072 IN PSINGLE_LIST_ENTRY ListHead,
1073 IN PCI_SIGNATURE ExtensionType
1074);
1075
1077NTAPI
1079 IN USHORT VendorId,
1080 IN USHORT DeviceId,
1081 IN USHORT SubVendorId,
1082 IN USHORT SubSystemId,
1083 IN UCHAR RevisionId
1084);
1085
1087NTAPI
1089 IN PPCI_FDO_EXTENSION DeviceExtension,
1090 IN ULONG FunctionNumber,
1091 IN PPCI_COMMON_HEADER PciData
1092);
1093
1094BOOLEAN
1095NTAPI
1099);
1100
1101BOOLEAN
1102NTAPI
1104 IN PPCI_PDO_EXTENSION DeviceExtension
1105);
1106
1108NTAPI
1110 IN PPCI_PDO_EXTENSION DeviceExtension,
1111 OUT PPCI_COMMON_HEADER PciData
1112);
1113
1115NTAPI
1117 IN PPCI_PDO_EXTENSION DeviceExtension,
1118 OUT PPCI_COMMON_HEADER PciData
1119);
1120
1121UCHAR
1122NTAPI
1124 IN PPCI_PDO_EXTENSION DeviceExtension,
1125 IN UCHAR Offset,
1126 IN ULONG CapabilityId,
1129);
1130
1131BOOLEAN
1132NTAPI
1134 IN PPCI_PDO_EXTENSION DeviceExtension,
1137 IN BOOLEAN ForPowerDown
1138);
1139
1141NTAPI
1144);
1145
1147
1149NTAPI
1151 IN ULONG_PTR IpiContext
1152);
1153
1154BOOLEAN
1155NTAPI
1157 _Out_ PIO_RESOURCE_DESCRIPTOR ResourceDescriptor,
1158 _In_ ULONG Bar,
1159 _In_ ULONG NextBar,
1160 _In_ BOOLEAN Rom);
1161
1162BOOLEAN
1163NTAPI
1166 IN ULONG Method
1167);
1168
1169VOID
1170NTAPI
1175);
1176
1178NTAPI
1182);
1183
1185NTAPI
1188 IN OUT PDEVICE_CAPABILITIES DeviceCapability
1189);
1190
1191//
1192// Configuration Routines
1193//
1195NTAPI
1198);
1199
1200VOID
1201NTAPI
1204
1205ULONG
1206NTAPI
1208 _In_ PPCI_PDO_EXTENSION DeviceExtension,
1209 _In_ ULONG CapabilityId,
1211 _In_ ULONG Length);
1212
1213VOID
1214NTAPI
1217
1218BOOLEAN
1219NTAPI
1221 _In_ ULONG Bus,
1222 _In_ PCI_SLOT_NUMBER Slot,
1226 _In_ BOOLEAN Read);
1227
1228VOID
1229NTAPI
1231 IN PPCI_FDO_EXTENSION DeviceExtension,
1232 IN PCI_SLOT_NUMBER Slot,
1233 IN PVOID Buffer,
1234 IN ULONG Offset,
1236);
1237
1238VOID
1239NTAPI
1241 IN PPCI_PDO_EXTENSION DeviceExtension,
1242 IN PVOID Buffer,
1243 IN ULONG Offset,
1245);
1246
1247VOID
1248NTAPI
1250 IN PPCI_PDO_EXTENSION DeviceExtension,
1251 IN PVOID Buffer,
1252 IN ULONG Offset,
1254);
1255
1256UCHAR
1257NTAPI
1260);
1261
1262//
1263// State Machine Logic Transition Routines
1264//
1265VOID
1266NTAPI
1268 IN PPCI_FDO_EXTENSION DeviceExtension
1269);
1270
1272NTAPI
1274 IN PPCI_FDO_EXTENSION DeviceExtension,
1275 IN PCI_STATE NewState
1276);
1277
1279NTAPI
1281 IN PPCI_FDO_EXTENSION DeviceExtension,
1282 IN PCI_STATE NewState
1283);
1284
1285VOID
1286NTAPI
1288 IN PPCI_FDO_EXTENSION DeviceExtension,
1289 IN PCI_STATE NewState
1290);
1291
1292//
1293// Arbiter Support
1294//
1296NTAPI
1299);
1300
1302NTAPI
1304 IN PPCI_FDO_EXTENSION DeviceExtension,
1306);
1307
1308//
1309// Debug Helpers
1310//
1311BOOLEAN
1312NTAPI
1315 IN PPCI_FDO_EXTENSION DeviceExtension,
1316 IN USHORT MaxMinor
1317);
1318
1319VOID
1320NTAPI
1322 IN PPCI_COMMON_HEADER PciData
1323);
1324
1325VOID
1326NTAPI
1328 IN PDEVICE_CAPABILITIES DeviceCaps
1329);
1330
1331VOID
1332NTAPI
1335);
1336
1337VOID
1338NTAPI
1341);
1342
1343VOID
1344NTAPI
1346 IN PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialResource
1347);
1348
1349//
1350// Interface Support
1351//
1353NTAPI
1355 IN PPCI_FDO_EXTENSION DeviceExtension,
1357 IN ULONG Size,
1359 IN PVOID InterfaceData,
1361 IN BOOLEAN LastChance
1362);
1363
1365NTAPI
1368);
1369
1371NTAPI
1374);
1375
1377NTAPI
1380);
1381
1383NTAPI
1386 _Out_ PULONGLONG Minimum,
1387 _Out_ PULONGLONG Maximum,
1390);
1391
1393NTAPI
1398);
1399
1401NTAPI
1406);
1407
1408INT32
1409NTAPI
1412);
1413
1415NTAPI
1418);
1419
1421NTAPI
1424);
1425
1427NTAPI
1430);
1431
1433NTAPI
1436);
1437
1439NTAPI
1442);
1443
1445NTAPI
1448);
1449
1451NTAPI
1454);
1455
1457NTAPI
1460);
1461
1463NTAPI
1466);
1467
1469NTAPI
1471 IN PVOID DeviceExtension,
1473 IN PVOID InterfaceData,
1475 IN USHORT Size,
1477);
1478
1480NTAPI
1482 IN PVOID DeviceExtension,
1484 IN PVOID InterfaceData,
1486 IN USHORT Size,
1488);
1489
1491NTAPI
1493 IN PVOID DeviceExtension,
1495 IN PVOID InterfaceData,
1497 IN USHORT Size,
1499);
1500
1502NTAPI
1504 IN PVOID DeviceExtension,
1506 IN PVOID InterfaceData,
1508 IN USHORT Size,
1510);
1511
1513NTAPI
1515 IN PVOID DeviceExtension,
1517 IN PVOID InterfaceData,
1519 IN USHORT Size,
1521);
1522
1524NTAPI
1526 IN PVOID DeviceExtension,
1528 IN PVOID InterfaceData,
1530 IN USHORT Size,
1532);
1533
1534VOID
1535NTAPI
1538);
1539
1541NTAPI
1544 _Out_ PULONGLONG Minimum,
1545 _Out_ PULONGLONG Maximum,
1548);
1549
1551NTAPI
1556);
1557
1559NTAPI
1564);
1565
1566INT32
1567NTAPI
1570);
1571
1573NTAPI
1576 _Out_ PULONGLONG Minimum,
1577 _Out_ PULONGLONG Maximum,
1580);
1581
1583NTAPI
1588);
1589
1591NTAPI
1596);
1597
1598INT32
1599NTAPI
1602);
1603
1604VOID
1605NTAPI
1608);
1609
1610VOID
1611NTAPI
1614);
1615
1617NTAPI
1620 _In_ PCI_SIGNATURE ArbiterType,
1622);
1623
1625NTAPI
1627 IN PVOID DeviceExtension,
1629 IN PVOID InterfaceData,
1631 IN USHORT Size,
1633);
1634
1636NTAPI
1638 IN PVOID DeviceExtension,
1640 IN PVOID InterfaceData,
1642 IN USHORT Size,
1644);
1645
1647NTAPI
1649 IN PVOID DeviceExtension,
1651 IN PVOID InterfaceData,
1653 IN USHORT Size,
1655);
1656
1658NTAPI
1660 IN PVOID DeviceExtension,
1662 IN PVOID InterfaceData,
1664 IN USHORT Size,
1666);
1667
1669NTAPI
1671 IN PVOID DeviceExtension,
1673 IN PVOID InterfaceData,
1675 IN USHORT Size,
1677);
1678
1680NTAPI
1682 IN PVOID DeviceExtension,
1684 IN PVOID InterfaceData,
1686 IN USHORT Size,
1688);
1689
1690//
1691// PCI Enumeration and Resources
1692//
1694NTAPI
1696 IN PPCI_FDO_EXTENSION DeviceExtension,
1697 IN OUT PDEVICE_RELATIONS *pDeviceRelations
1698);
1699
1701NTAPI
1705);
1706
1708NTAPI
1711 IN OUT PDEVICE_RELATIONS *pDeviceRelations
1712);
1713
1715NTAPI
1718 IN OUT PDEVICE_RELATIONS *pDeviceRelations
1719);
1720
1722NTAPI
1726);
1727
1728BOOLEAN
1729NTAPI
1733);
1734
1736NTAPI
1739 IN BOOLEAN DoReset,
1740 IN BOOLEAN SomethingSomethingDarkSide
1741);
1742
1744NTAPI
1747 IN PPCI_COMMON_HEADER PciData,
1749);
1750
1751//
1752// Identification Functions
1753//
1754PWCHAR
1755NTAPI
1759);
1760
1762NTAPI
1766 IN ULONG Locale,
1768);
1769
1771NTAPI
1773 IN PPCI_PDO_EXTENSION DeviceExtension,
1776);
1777
1778//
1779// CardBUS Support
1780//
1781VOID
1782NTAPI
1785);
1786
1787VOID
1788NTAPI
1791);
1792
1793VOID
1794NTAPI
1797);
1798
1799VOID
1800NTAPI
1803);
1804
1805VOID
1806NTAPI
1809 IN PPCI_COMMON_HEADER PciData,
1810 IN PIO_RESOURCE_DESCRIPTOR IoDescriptor
1811);
1812
1813VOID
1814NTAPI
1817 IN PPCI_COMMON_HEADER PciData
1818);
1819
1820VOID
1821NTAPI
1824 IN PPCI_COMMON_HEADER PciData
1825);
1826
1827//
1828// PCI Device Support
1829//
1830VOID
1831NTAPI
1834);
1835
1836VOID
1837NTAPI
1840);
1841
1842VOID
1843NTAPI
1846);
1847
1848VOID
1849NTAPI
1852);
1853
1854VOID
1855NTAPI
1858 IN PPCI_COMMON_HEADER PciData,
1859 IN PIO_RESOURCE_DESCRIPTOR IoDescriptor
1860);
1861
1862VOID
1863NTAPI
1866 IN PPCI_COMMON_HEADER PciData
1867);
1868
1869VOID
1870NTAPI
1873 IN PPCI_COMMON_HEADER PciData
1874);
1875
1876//
1877// PCI-to-PCI Bridge Device Support
1878//
1879VOID
1880NTAPI
1883);
1884
1885VOID
1886NTAPI
1889);
1890
1891VOID
1892NTAPI
1895);
1896
1897VOID
1898NTAPI
1901);
1902
1903VOID
1904NTAPI
1907 IN PPCI_COMMON_HEADER PciData,
1908 IN PIO_RESOURCE_DESCRIPTOR IoDescriptor
1909);
1910
1911VOID
1912NTAPI
1915 IN PPCI_COMMON_HEADER PciData
1916);
1917
1918VOID
1919NTAPI
1922 IN PPCI_COMMON_HEADER PciData
1923);
1924
1925//
1926// Bus Number Routines
1927//
1928BOOLEAN
1929NTAPI
1932);
1933
1934//
1935// Routine Interface
1936//
1938NTAPI
1949 OUT PDEVICE_OBJECT *pFoundDeviceObject
1950);
1951
1952//
1953// External Resources
1954//
1956extern KEVENT PciGlobalLock;
1968//extern PCI_INTERFACE PciNativeIdeInterface;
1979
1980/* Exported by NTOS, should this go in the NDK? */
1982
1983#endif /* _PCIX_PCH_ */
static _Out_opt_ PULONGLONG Start
Type
Definition: Type.h:7
#define VOID
Definition: acefi.h:82
unsigned char BOOLEAN
Definition: actypes.h:127
LONG NTSTATUS
Definition: precomp.h:26
#define NTSYSAPI
Definition: ntoskrnl.h:12
PDEVICE_OBJECT PhysicalDeviceObject
Definition: btrfs_drv.h:1157
_Acquires_exclusive_lock_ Resource _Acquires_shared_lock_ Resource _Inout_ PERESOURCE Resource
Definition: cdprocs.h:843
_In_ ULONG_PTR HackFlags
Definition: cdrom.h:983
Definition: bufpool.h:45
_In_ PIRP Irp
Definition: csq.h:116
#define NTSTATUS
Definition: precomp.h:19
NTSTATUS NTAPI PciInitializeArbiterRanges(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCM_RESOURCE_LIST Resources)
Definition: arb_comn.c:181
PCI_INTERFACE PciDevicePresentInterface
Definition: devhere.c:18
BOOLEAN PciEnableNativeModeATA
Definition: init.c:24
#define MAX_ANSI_STRINGS
Definition: pci.h:97
VOID NTAPI PciReadSlotConfig(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_SLOT_NUMBER Slot, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
Definition: config.c:165
NTSTATUS NTAPI routeintrf_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: routintf.c:47
PCI_INTERFACE BusHandlerInterface
Definition: busintrf.c:18
NTSYSAPI BOOLEAN InitSafeBootMode
Definition: init.c:71
VOID NTAPI PPBridge_SaveCurrentSettings(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: ppbridge.c:225
NTSTATUS NTAPI agpintrf_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: agpintrf.c:47
enum _PCI_STATE PCI_STATE
BOOLEAN NTAPI PciDebugIrpDispatchDisplay(IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension, IN USHORT MaxMinor)
Definition: debug.c:124
VOID NTAPI Cardbus_SaveCurrentSettings(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: cardbus.c:35
NTSTATUS NTAPI PciPdoCreate(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_SLOT_NUMBER Slot, OUT PDEVICE_OBJECT *PdoDeviceObject)
Definition: pdo.c:542
NTSTATUS NTAPI PciPdoIrpStopDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:262
PDRIVER_OBJECT PciDriverObject
Definition: init.c:19
VOID NTAPI PciWriteDeviceConfig(IN PPCI_PDO_EXTENSION DeviceExtension, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
Definition: config.c:133
VOID NTAPI PPBridge_GetAdditionalResourceDescriptors(IN PPCI_CONFIGURATOR_CONTEXT Context, IN PPCI_COMMON_HEADER PciData, IN PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: ppbridge.c:629
PCI_INTERFACE ArbiterInterfaceIo
Definition: ar_memio.c:31
NTSTATUS NTAPI pcicbintrf_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: cardbus.c:109
struct _PCI_LOCK PCI_LOCK
VOID NTAPI PciDebugPrintPartialResource(IN PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialResource)
Definition: debug.c:349
enum _PCI_DISPATCH_STYLE PCI_DISPATCH_STYLE
NTSTATUS NTAPI busintrf_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: busintrf.c:142
VOID(NTAPI * PCI_CONFIGURATOR_GET_ADDITIONAL_RESOURCE_DESCRIPTORS)(IN struct _PCI_CONFIGURATOR_CONTEXT *Context, IN PPCI_COMMON_HEADER PciData, IN PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: pci.h:474
NTSTATUS NTAPI PciIrpNotSupported(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: dispatch.c:261
struct _PCI_POWER_STATE PCI_POWER_STATE
VOID NTAPI PciInsertEntryAtTail(IN PSINGLE_LIST_ENTRY ListHead, IN PPCI_FDO_EXTENSION DeviceExtension, IN PKEVENT Lock)
Definition: utils.c:399
struct _PCI_MN_DISPATCH_TABLE * PPCI_MN_DISPATCH_TABLE
NTSTATUS NTAPI arbusno_PackResource(_In_ PIO_RESOURCE_DESCRIPTOR Descriptor, _In_ ULONGLONG Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resource)
Definition: ar_busno.c:54
NTSTATUS NTAPI PciPdoSetPowerState(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:93
VOID NTAPI PciArbiter_Reference(_In_ PVOID Context)
Definition: arb_comn.c:30
VOID NTAPI PciDebugDumpCommonConfig(IN PPCI_COMMON_HEADER PciData)
Definition: debug.c:207
NTSTATUS NTAPI PciQueryBusInformation(IN PPCI_PDO_EXTENSION PdoExtension, OUT PPNP_BUS_INFORMATION *Buffer)
Definition: utils.c:1335
NTSTATUS NTAPI PciPdoIrpCancelStopDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:290
NTSTATUS NTAPI busintrf_Initializer(IN PVOID Instance)
Definition: busintrf.c:132
NTSTATUS NTAPI devpresent_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: devhere.c:45
PPCI_SECONDARY_EXTENSION NTAPI PciFindNextSecondaryExtension(IN PSINGLE_LIST_ENTRY ListHead, IN PCI_SIGNATURE ExtensionType)
Definition: utils.c:583
NTSTATUS NTAPI PciSetResources(IN PPCI_PDO_EXTENSION PdoExtension, IN BOOLEAN DoReset, IN BOOLEAN SomethingSomethingDarkSide)
Definition: enum.c:2255
struct _PCI_ID_BUFFER * PPCI_ID_BUFFER
NTSTATUS NTAPI PciFdoWaitWake(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: power.c:206
INT32 NTAPI arbusno_ScoreRequirement(_In_ PIO_RESOURCE_DESCRIPTOR Descriptor)
Definition: ar_busno.c:85
_PCI_STATE
Definition: pci.h:138
@ PciMaxObjectState
Definition: pci.h:145
@ PciSurpriseRemoved
Definition: pci.h:143
@ PciDeleted
Definition: pci.h:141
@ PciStarted
Definition: pci.h:140
@ PciSynchronizedOperation
Definition: pci.h:144
@ PciStopped
Definition: pci.h:142
@ PciNotStarted
Definition: pci.h:139
NTSTATUS NTAPI PciFdoSetPowerState(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: power.c:221
struct _PCI_LOCK * PPCI_LOCK
VOID(NTAPI * PCI_CONFIGURATOR_RESET_DEVICE)(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: pci.h:480
union _PCI_HEADER_TYPE_DEPENDENT PCI_HEADER_TYPE_DEPENDENT
enum _PCI_SIGNATURE PCI_SIGNATURE
struct _PCI_MN_DISPATCH_TABLE PCI_MN_DISPATCH_TABLE
NTSTATUS NTAPI ario_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: ar_memio.c:153
VOID NTAPI PciVerifierInit(IN PDRIVER_OBJECT DriverObject)
Definition: pcivrify.c:94
VOID NTAPI Device_GetAdditionalResourceDescriptors(IN PPCI_CONFIGURATOR_CONTEXT Context, IN PPCI_COMMON_HEADER PciData, IN PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: device.c:260
NTSTATUS NTAPI PciQueryId(IN PPCI_PDO_EXTENSION DeviceExtension, IN BUS_QUERY_ID_TYPE QueryType, OUT PWCHAR *Buffer)
Definition: id.c:200
NTSTATUS NTAPI armem_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: ar_memio.c:339
PWCHAR NTAPI PciGetDeviceDescriptionMessage(IN UCHAR BaseClass, IN UCHAR SubClass)
Definition: id.c:88
struct _PCI_INTERFACE * PPCI_INTERFACE
NTSTATUS NTAPI PciFdoIrpQueryLegacyBusInformation(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:365
struct _PCI_INTERFACE PCI_INTERFACE
NTSTATUS NTAPI PciPdoIrpSurpriseRemoval(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:514
NTSTATUS NTAPI PciBuildRequirementsList(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData, OUT PIO_RESOURCE_REQUIREMENTS_LIST *Buffer)
Definition: enum.c:572
BOOLEAN NTAPI PciIsSlotPresentInParentMethod(IN PPCI_PDO_EXTENSION PdoExtension, IN ULONG Method)
Definition: utils.c:1096
NTSTATUS NTAPI PciFdoIrpStartDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:76
PCI_INTERFACE PciCardbusPrivateInterface
Definition: cardbus.c:18
NTSTATUS NTAPI routeintrf_Initializer(IN PVOID Instance)
Definition: routintf.c:37
struct _PCI_CONFIGURATOR_CONTEXT * PPCI_CONFIGURATOR_CONTEXT
struct _PCI_LEGACY_DEVICE * PPCI_LEGACY_DEVICE
NTSTATUS NTAPI PciFdoIrpStopDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:166
NTSTATUS NTAPI ario_Initializer(IN PVOID Instance)
Definition: ar_memio.c:119
NTSTATUS NTAPI tranirq_Initializer(IN PVOID Instance)
Definition: tr_irq.c:35
VOID NTAPI Cardbus_MassageHeaderForLimitsDetermination(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: cardbus.c:51
struct _PCI_FUNCTION_RESOURCES * PPCI_FUNCTION_RESOURCES
VOID NTAPI Device_ChangeResourceSettings(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: device.c:284
NTSTATUS NTAPI arbusno_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: ar_busno.c:143
NTSTATUS NTAPI PciPdoIrpQueryInterface(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:304
VOID NTAPI PciArbiter_Dereference(_In_ PVOID Context)
Definition: arb_comn.c:39
BOOLEAN PciAssignBusNumbers
Definition: config.c:18
struct _PCI_PDO_EXTENSION * PPCI_PDO_EXTENSION
struct _PCI_HACK_ENTRY * PPCI_HACK_ENTRY
VOID NTAPI Device_SaveLimits(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: device.c:119
VOID NTAPI PciDebugPrintIoResReqList(IN PIO_RESOURCE_REQUIREMENTS_LIST Requirements)
Definition: debug.c:303
NTSTATUS NTAPI PciCancelStateTransition(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_STATE NewState)
Definition: state.c:145
struct _PCI_IPI_CONTEXT PCI_IPI_CONTEXT
struct _PCI_MJ_DISPATCH_TABLE PCI_MJ_DISPATCH_TABLE
PCI_DEVICE_TYPES NTAPI PciClassifyDeviceType(IN PPCI_PDO_EXTENSION PdoExtension)
Definition: utils.c:1053
NTSTATUS NTAPI PciIrpInvalidDeviceRequest(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: dispatch.c:277
NTSTATUS NTAPI PciQueryCapabilities(IN PPCI_PDO_EXTENSION PdoExtension, IN OUT PDEVICE_CAPABILITIES DeviceCapability)
Definition: utils.c:1747
VOID(NTAPI * PCI_CONFIGURATOR_SAVE_LIMITS)(IN struct _PCI_CONFIGURATOR_CONTEXT *Context)
Definition: pci.h:461
VOID NTAPI PciGetExpressCapabilities(_Inout_ PPCI_PDO_EXTENSION PdoExtension)
Records the Express capability of a new function and whether its extended configuration space can be ...
Definition: express.c:99
NTSTATUS NTAPI PciBeginStateTransition(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_STATE NewState)
Definition: state.c:97
NTSTATUS(NTAPI * PCI_INTERFACE_INITIALIZER)(IN PVOID Instance)
Definition: pci.h:382
struct _PCI_CONFIGURATOR PCI_CONFIGURATOR
struct _PCI_CONFIGURATOR_CONTEXT PCI_CONFIGURATOR_CONTEXT
NTSTATUS NTAPI arbusno_UnpackRequirement(_In_ PIO_RESOURCE_DESCRIPTOR Descriptor, _Out_ PULONGLONG Minimum, _Out_ PULONGLONG Maximum, _Out_ PULONGLONG Length, _Out_ PULONGLONG Alignment)
Definition: ar_busno.c:35
NTSTATUS NTAPI PciQueryEjectionRelations(IN PPCI_PDO_EXTENSION PdoExtension, IN OUT PDEVICE_RELATIONS *pDeviceRelations)
Definition: enum.c:559
VOID NTAPI Cardbus_RestoreCurrent(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: cardbus.c:59
NTSTATUS NTAPI PciCacheLegacyDeviceRouting(IN PDEVICE_OBJECT DeviceObject, IN ULONG BusNumber, IN ULONG SlotNumber, IN UCHAR InterruptLine, IN UCHAR InterruptPin, IN UCHAR BaseClass, IN UCHAR SubClass, IN PDEVICE_OBJECT PhysicalDeviceObject, IN PPCI_PDO_EXTENSION PdoExtension, OUT PDEVICE_OBJECT *pFoundDeviceObject)
Definition: routintf.c:70
NTSTATUS NTAPI PciFdoIrpSurpriseRemoval(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:351
struct _PCI_POWER_STATE * PPCI_POWER_STATE
NTSTATUS NTAPI armem_UnpackResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resource, _Out_ PULONGLONG Start, _Out_ PULONGLONG Length)
Definition: ar_memio.c:267
PCI_INTERFACE PciRoutingInterface
Definition: routintf.c:20
NTSTATUS NTAPI PciGetBiosConfig(IN PPCI_PDO_EXTENSION DeviceExtension, OUT PPCI_COMMON_HEADER PciData)
Definition: utils.c:767
NTSTATUS NTAPI PciPdoIrpQueryResourceRequirements(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:395
NTSTATUS NTAPI PciQueryRequirements(IN PPCI_PDO_EXTENSION PdoExtension, IN OUT PIO_RESOURCE_REQUIREMENTS_LIST *RequirementsList)
Definition: enum.c:675
VOID NTAPI ario_ApplyBrokenVideoHack(IN PPCI_FDO_EXTENSION FdoExtension)
Definition: ar_memio.c:181
NTSTATUS NTAPI PciQueryTargetDeviceRelations(IN PPCI_PDO_EXTENSION PdoExtension, IN OUT PDEVICE_RELATIONS *pDeviceRelations)
Definition: enum.c:532
VOID NTAPI PPBridge_RestoreCurrent(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: ppbridge.c:621
BOOLEAN NTAPI PciAreBusNumbersConfigured(IN PPCI_PDO_EXTENSION PdoExtension)
Definition: busno.c:20
VOID NTAPI PcipLinkSecondaryExtension(IN PSINGLE_LIST_ENTRY List, IN PVOID Lock, IN PPCI_SECONDARY_EXTENSION SecondaryExtension, IN PCI_SIGNATURE ExtensionType, IN PVOID Destructor)
Definition: utils.c:458
NTSTATUS NTAPI PciPdoIrpQueryDeviceText(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:411
VOID NTAPI Cardbus_ChangeResourceSettings(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: cardbus.c:89
PPCI_IRQ_ROUTING_TABLE PciIrqRoutingTable
Definition: init.c:26
_PCI_DISPATCH_STYLE
Definition: pci.h:152
@ IRP_UPWARD
Definition: pci.h:155
@ IRP_COMPLETE
Definition: pci.h:153
@ IRP_DISPATCH
Definition: pci.h:156
@ IRP_DOWNWARD
Definition: pci.h:154
KEVENT PciGlobalLock
Definition: init.c:20
NTSTATUS NTAPI PciQueryDeviceRelations(IN PPCI_FDO_EXTENSION DeviceExtension, IN OUT PDEVICE_RELATIONS *pDeviceRelations)
Definition: enum.c:2134
NTSTATUS NTAPI PciQueryDeviceText(IN PPCI_PDO_EXTENSION PdoExtension, IN DEVICE_TEXT_TYPE QueryType, IN ULONG Locale, OUT PWCHAR *Buffer)
Definition: id.c:394
BOOLEAN PciRunningDatacenter
Definition: init.c:18
PCI_INTERFACE PciPmeInterface
Definition: pmeintf.c:18
enum _PCI_SIGNATURE * PPCI_SIGNATURE
NTSTATUS NTAPI ario_PackResource(_In_ PIO_RESOURCE_DESCRIPTOR Descriptor, _In_ ULONGLONG Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resource)
Definition: ar_memio.c:67
VOID NTAPI PciInitializeEcam(_In_ PPCI_FDO_EXTENSION FdoExtension)
Maps the bus an FDO decodes into the ECAM window and verifies the window the first time a bus with de...
Definition: ecam.c:336
struct _PCI_VERIFIER_DATA * PPCI_VERIFIER_DATA
VOID NTAPI Device_MassageHeaderForLimitsDetermination(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: device.c:219
PPCI_PDO_EXTENSION NTAPI PciFindPdoByFunction(IN PPCI_FDO_EXTENSION DeviceExtension, IN ULONG FunctionNumber, IN PPCI_COMMON_HEADER PciData)
Definition: utils.c:694
BOOLEAN NTAPI PciOpenKey(IN PWCHAR KeyName, IN HANDLE RootKey, IN ACCESS_MASK DesiredAccess, OUT PHANDLE KeyHandle, OUT PNTSTATUS KeyStatus)
Definition: utils.c:165
VOID NTAPI Device_SaveCurrentSettings(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: device.c:20
PCI_INTERFACE PciLegacyDeviceDetectionInterface
Definition: lddintrf.c:18
VOID NTAPI PPBridge_MassageHeaderForLimitsDetermination(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: ppbridge.c:583
BOOLEAN NTAPI PciIsDeviceOnDebugPath(IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: utils.c:750
PCI_INTERFACE ArbiterInterfaceBusNumber
Definition: ar_busno.c:18
PCI_INTERFACE ArbiterInterfaceMemory
Definition: ar_memio.c:18
NTSTATUS NTAPI PciPdoIrpCancelRemoveDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:248
PCI_INTERFACE TranslatorInterfaceInterrupt
Definition: tr_irq.c:18
NTSTATUS(NTAPI * PCI_DISPATCH_FUNCTION)(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PVOID DeviceExtension)
Definition: pci.h:339
NTSTATUS NTAPI PciPdoIrpQueryDeviceState(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:486
VOID NTAPI Device_ResetDevice(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: device.c:273
NTSTATUS NTAPI PciCallDownIrpStack(IN PPCI_FDO_EXTENSION DeviceExtension, IN PIRP Irp)
Definition: dispatch.c:39
INT32 NTAPI armem_ScoreRequirement(_In_ PIO_RESOURCE_DESCRIPTOR Descriptor)
Definition: ar_memio.c:284
union _PCI_HEADER_TYPE_DEPENDENT * PPCI_HEADER_TYPE_DEPENDENT
struct _PCI_FUNCTION_RESOURCES PCI_FUNCTION_RESOURCES
NTSTATUS NTAPI PciPdoIrpReadConfig(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:458
NTSTATUS NTAPI PciPdoIrpQueryLegacyBusInformation(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:528
NTSTATUS NTAPI tranirq_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: tr_irq.c:45
NTSTATUS NTAPI locintrf_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: locintrf.c:45
NTSTATUS NTAPI PciPdoIrpRemoveDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:234
struct _PCI_CONFIGURATOR * PPCI_CONFIGURATOR
NTSTATUS NTAPI PciInitializeArbiters(IN PPCI_FDO_EXTENSION FdoExtension)
Definition: arb_comn.c:90
VOID NTAPI PciDecodeEnable(IN PPCI_PDO_EXTENSION PdoExtension, IN BOOLEAN Enable, OUT PUSHORT Command)
Definition: utils.c:1286
NTSTATUS NTAPI PciPdoIrpQueryId(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:428
VOID NTAPI Cardbus_SaveLimits(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: cardbus.c:43
VOID NTAPI PciDebugPrintCmResList(IN PCM_RESOURCE_LIST ResourceList)
Definition: debug.c:365
NTSTATUS NTAPI agpintrf_Initializer(IN PVOID Instance)
Definition: agpintrf.c:37
NTSTATUS NTAPI PciFdoIrpQueryDeviceRelations(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:208
struct _PCI_IPI_CONTEXT * PPCI_IPI_CONTEXT
NTSTATUS NTAPI PciPdoIrpQueryPower(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:107
BOOLEAN NTAPI PciIsCriticalDeviceClass(IN UCHAR BaseClass, IN UCHAR SubClass)
Definition: utils.c:671
BOOLEAN PciEcamVerified
Definition: ecam.c:20
NTSTATUS NTAPI PciArbiterConstructor(_In_ PPCI_FDO_EXTENSION FdoExtension, _In_ PCI_SIGNATURE ArbiterType, _Out_ PARBITER_INTERFACE Interface)
Definition: arb_comn.c:48
struct _PCI_ID_BUFFER PCI_ID_BUFFER
NTSTATUS NTAPI PciPdoIrpQueryDeviceRelations(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:330
UCHAR NTAPI PciReadDeviceCapability(IN PPCI_PDO_EXTENSION DeviceExtension, IN UCHAR Offset, IN ULONG CapabilityId, OUT PPCI_CAPABILITIES_HEADER Buffer, IN ULONG Length)
Definition: utils.c:885
NTSTATUS NTAPI PciPdoIrpWriteConfig(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:472
NTSTATUS NTAPI armem_PackResource(_In_ PIO_RESOURCE_DESCRIPTOR Descriptor, _In_ ULONGLONG Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resource)
Definition: ar_memio.c:245
NTSTATUS NTAPI PciQueryInterface(IN PPCI_FDO_EXTENSION DeviceExtension, IN CONST GUID *InterfaceType, IN ULONG Size, IN ULONG Version, IN PVOID InterfaceData, IN PINTERFACE Interface, IN BOOLEAN LastChance)
Definition: intrface.c:45
NTSTATUS NTAPI PciPassIrpFromFdoToPdo(IN PPCI_FDO_EXTENSION DeviceExtension, IN PIRP Irp)
Definition: dispatch.c:70
VOID NTAPI PciHookHal(VOID)
Definition: hookhal.c:248
PCI_INTERFACE AgpTargetInterface
Definition: agpintrf.c:20
struct PCI_ARBITER_INSTANCE * PPCI_ARBITER_INSTANCE
NTSTATUS NTAPI lddintrf_Constructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: lddintrf.c:45
BOOLEAN NTAPI PciStringToUSHORT(IN PWCHAR String, OUT PUSHORT Value)
Definition: utils.c:61
VOID NTAPI Cardbus_ResetDevice(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: cardbus.c:79
NTSTATUS NTAPI PciFdoIrpQueryRemoveDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:124
NTSTATUS NTAPI PciPdoIrpQueryCapabilities(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:364
NTSTATUS NTAPI PciPdoIrpStartDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:121
INT32 NTAPI ario_ScoreRequirement(_In_ PIO_RESOURCE_DESCRIPTOR Descriptor)
Definition: ar_memio.c:98
NTSTATUS NTAPI PciPdoIrpQueryRemoveDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:220
NTSTATUS NTAPI PciSetPowerManagedDevicePowerState(IN PPCI_PDO_EXTENSION DeviceExtension, IN DEVICE_POWER_STATE DeviceState, IN BOOLEAN IrpSet)
Definition: power.c:121
NTSTATUS NTAPI arbusno_UnpackResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resource, _Out_ PULONGLONG Start, _Out_ PULONGLONG Length)
Definition: ar_busno.c:71
ULONGLONG NTAPI PciGetHackFlags(IN USHORT VendorId, IN USHORT DeviceId, IN USHORT SubVendorId, IN USHORT SubSystemId, IN UCHAR RevisionId)
Definition: utils.c:603
VOID NTAPI PPBridge_ChangeResourceSettings(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: ppbridge.c:684
PPCI_HACK_ENTRY PciHackTable
Definition: init.c:28
PCI_INTERFACE PciLocationInterface
Definition: locintrf.c:18
NTSTATUS NTAPI PciSaveBiosConfig(IN PPCI_PDO_EXTENSION DeviceExtension, OUT PPCI_COMMON_HEADER PciData)
NTSTATUS NTAPI PciFdoIrpCancelRemoveDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:152
UCHAR NTAPI PciGetAdjustedInterruptLine(IN PPCI_PDO_EXTENSION PdoExtension)
Definition: config.c:24
NTSTATUS NTAPI PciFdoIrpQueryInterface(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:235
PPCI_VERIFIER_DATA NTAPI PciVerifierRetrieveFailureData(IN ULONG FailureCode)
Definition: pcivrify.c:60
NTSTATUS NTAPI locintrf_Initializer(IN PVOID Instance)
Definition: locintrf.c:35
NTSTATUS NTAPI arbusno_Initializer(IN PVOID Instance)
Definition: ar_busno.c:110
VOID NTAPI PPBridge_SaveLimits(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: ppbridge.c:466
VOID(NTAPI * PCI_IPI_FUNCTION)(IN PVOID Reserved, IN PVOID Context)
Definition: pci.h:516
BOOLEAN NTAPI PciCanDisableDecodes(IN PPCI_PDO_EXTENSION DeviceExtension, IN PPCI_COMMON_HEADER Config, IN ULONGLONG HackFlags, IN BOOLEAN ForPowerDown)
Definition: utils.c:954
PPCI_FDO_EXTENSION NTAPI PciFindParentPciFdoExtension(IN PDEVICE_OBJECT DeviceObject, IN PKEVENT Lock)
Definition: utils.c:339
NTSTATUS NTAPI PciFdoIrpQueryCapabilities(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:310
struct _PCI_FDO_EXTENSION PCI_FDO_EXTENSION
NTSTATUS NTAPI PciGetDeviceProperty(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, OUT PVOID *OutputBuffer)
Definition: utils.c:474
struct _PCI_LEGACY_DEVICE PCI_LEGACY_DEVICE
NTSTATUS NTAPI PciGetRegistryValue(IN PWCHAR ValueName, IN PWCHAR KeyName, IN HANDLE RootHandle, IN ULONG Type, OUT PVOID *OutputBuffer, OUT PULONG OutputLength)
Definition: utils.c:192
PPCI_INTERFACE PciInterfaces[]
Definition: intrface.c:18
_PCI_DEVICE_TYPES
Definition: pci.h:126
@ PciTypeHostBridge
Definition: pci.h:128
@ PciTypeDevice
Definition: pci.h:131
@ PciTypePciBridge
Definition: pci.h:129
@ PciTypeInvalid
Definition: pci.h:127
@ PciTypeCardbusBridge
Definition: pci.h:130
NTSTATUS NTAPI PciPdoIrpDeviceUsageNotification(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:500
VOID(NTAPI * PCI_CONFIGURATOR_CHANGE_RESOURCE_SETTINGS)(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: pci.h:469
NTSTATUS NTAPI lddintrf_Initializer(IN PVOID Instance)
Definition: lddintrf.c:35
SINGLE_LIST_ENTRY PciFdoExtensionListHead
Definition: fdo.c:18
VOID(NTAPI * PCI_CONFIGURATOR_SAVE_CURRENT_SETTINGS)(IN struct _PCI_CONFIGURATOR_CONTEXT *Context)
Definition: pci.h:465
struct _PCI_VERIFIER_DATA PCI_VERIFIER_DATA
VOID NTAPI PciCommitStateTransition(IN PPCI_FDO_EXTENSION DeviceExtension, IN PCI_STATE NewState)
Definition: state.c:181
NTSTATUS NTAPI PciPdoIrpQueryStopDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:276
NTSTATUS NTAPI PciFdoIrpDeviceUsageNotification(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:337
KIPI_BROADCAST_WORKER PciExecuteCriticalSystemRoutine
Definition: pci.h:1146
PWATCHDOG_TABLE WdTable
Definition: init.c:27
BOOLEAN NTAPI PciEcamReadWriteConfig(_In_ ULONG Bus, _In_ PCI_SLOT_NUMBER Slot, _Inout_updates_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length, _In_ BOOLEAN Read)
Performs a configuration space access through the ECAM window.
Definition: ecam.c:386
BOOLEAN NTAPI PciComputeNewCurrentSettings(IN PPCI_PDO_EXTENSION PdoExtension, IN PCM_RESOURCE_LIST ResourceList)
Definition: enum.c:55
NTSTATUS NTAPI PciFdoIrpQueryStopDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:180
NTSTATUS NTAPI PciFdoIrpQueryPower(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: power.c:236
VOID NTAPI PciInitializeState(IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: state.c:88
NTSTATUS NTAPI pcicbintrf_Initializer(IN PVOID Instance)
Definition: cardbus.c:99
NTSTATUS NTAPI PciPdoIrpQueryResources(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:380
BOOLEAN NTAPI PciUnicodeStringStrStr(IN PUNICODE_STRING InputString, IN PCUNICODE_STRING EqualString, IN BOOLEAN CaseInSensitive)
Definition: utils.c:27
VOID NTAPI PPBridge_ResetDevice(IN PPCI_PDO_EXTENSION PdoExtension, IN PPCI_COMMON_HEADER PciData)
Definition: ppbridge.c:674
VOID NTAPI PciReadDeviceConfig(IN PPCI_PDO_EXTENSION DeviceExtension, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
Definition: config.c:149
NTSTATUS NTAPI PciPdoWaitWake(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:79
NTSTATUS NTAPI PciPmeInterfaceInitializer(IN PVOID Instance)
Definition: pmeintf.c:35
VOID NTAPI PciDebugDumpQueryCapabilities(IN PDEVICE_CAPABILITIES DeviceCaps)
Definition: debug.c:221
NTSTATUS(NTAPI * PCI_INTERFACE_CONSTRUCTOR)(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: pci.h:373
struct PCI_SECONDARY_EXTENSION * PPCI_SECONDARY_EXTENSION
NTSTATUS NTAPI PciQueryResources(IN PPCI_PDO_EXTENSION PdoExtension, OUT PCM_RESOURCE_LIST *Buffer)
Definition: enum.c:371
NTSTATUS NTAPI armem_UnpackRequirement(_In_ PIO_RESOURCE_DESCRIPTOR Descriptor, _Out_ PULONGLONG Minimum, _Out_ PULONGLONG Maximum, _Out_ PULONGLONG Length, _Out_ PULONGLONG Alignment)
Definition: ar_memio.c:222
NTSTATUS NTAPI ario_UnpackRequirement(_In_ PIO_RESOURCE_DESCRIPTOR Descriptor, _Out_ PULONGLONG Minimum, _Out_ PULONGLONG Maximum, _Out_ PULONGLONG Length, _Out_ PULONGLONG Alignment)
Definition: ar_memio.c:48
struct _PCI_PDO_EXTENSION PCI_PDO_EXTENSION
NTSTATUS NTAPI PciBuildDefaultExclusionLists(VOID)
Definition: utils.c:275
enum _PCI_DEVICE_TYPES PCI_DEVICE_TYPES
VOID(NTAPI * PCI_CONFIGURATOR_RESTORE_CURRENT)(IN struct _PCI_CONFIGURATOR_CONTEXT *Context)
Definition: pci.h:457
VOID NTAPI Cardbus_GetAdditionalResourceDescriptors(IN PPCI_CONFIGURATOR_CONTEXT Context, IN PPCI_COMMON_HEADER PciData, IN PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: cardbus.c:67
DRIVER_DISPATCH PciDispatchIrp
Definition: pci.h:555
struct _PCI_MJ_DISPATCH_TABLE * PPCI_MJ_DISPATCH_TABLE
BOOLEAN NTAPI PciCreateIoDescriptorFromBarLimit(_Out_ PIO_RESOURCE_DESCRIPTOR ResourceDescriptor, _In_ ULONG Bar, _In_ ULONG NextBar, _In_ BOOLEAN Rom)
Builds the requirement of a BAR from the value it reads back after all ones were written to it.
Definition: utils.c:1179
BOOLEAN NTAPI PciIsDatacenter(VOID)
Definition: utils.c:131
NTSTATUS NTAPI PciPdoIrpQueryBusInformation(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_PDO_EXTENSION DeviceExtension)
Definition: pdo.c:442
DRIVER_ADD_DEVICE PciAddDevice
Definition: pci.h:633
NTSTATUS NTAPI PciGetConfigHandlers(IN PPCI_FDO_EXTENSION FdoExtension)
Definition: config.c:266
NTSTATUS NTAPI PciPmeInterfaceConstructor(IN PVOID DeviceExtension, IN PVOID Instance, IN PVOID InterfaceData, IN USHORT Version, IN USHORT Size, IN PINTERFACE Interface)
Definition: pmeintf.c:74
NTSTATUS NTAPI ario_UnpackResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resource, _Out_ PULONGLONG Start, _Out_ PULONGLONG Length)
Definition: ar_memio.c:84
struct _PCI_HACK_ENTRY PCI_HACK_ENTRY
VOID(NTAPI * PCI_CONFIGURATOR_INITIALIZE)(IN struct _PCI_CONFIGURATOR_CONTEXT *Context)
Definition: pci.h:453
NTSTATUS NTAPI PciSendIoctl(IN PDEVICE_OBJECT DeviceObject, IN ULONG IoControlCode, IN PVOID InputBuffer, IN ULONG InputBufferLength, IN PVOID OutputBuffer, IN ULONG OutputBufferLength)
Definition: utils.c:530
struct _PCI_FDO_EXTENSION * PPCI_FDO_EXTENSION
VOID NTAPI Device_RestoreCurrent(IN PPCI_CONFIGURATOR_CONTEXT Context)
Definition: device.c:251
_PCI_SIGNATURE
Definition: pci.h:103
@ PciInterface_NativeIde
Definition: pci.h:117
@ PciFdoExtensionType
Definition: pci.h:105
@ PciPdoExtensionType
Definition: pci.h:104
@ PciInterface_PciCb
Definition: pci.h:113
@ PciInterface_IntRouteHandler
Definition: pci.h:112
@ PciArb_BusNumber
Definition: pci.h:109
@ PciInterface_Location
Definition: pci.h:119
@ PciArb_Io
Definition: pci.h:106
@ PciInterface_DevicePresent
Definition: pci.h:116
@ PciArb_Interrupt
Definition: pci.h:108
@ PciInterface_BusHandler
Definition: pci.h:111
@ PciTrans_Interrupt
Definition: pci.h:110
@ PciInterface_LegacyDeviceDetection
Definition: pci.h:114
@ PciArb_Memory
Definition: pci.h:107
@ PciInterface_AgpTarget
Definition: pci.h:118
@ PciInterface_PmeHandler
Definition: pci.h:115
NTSTATUS NTAPI armem_Initializer(IN PVOID Instance)
Definition: ar_memio.c:305
NTSTATUS NTAPI PciFdoIrpCancelStopDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:194
NTSTATUS NTAPI PciFdoIrpRemoveDevice(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
Definition: fdo.c:138
NTSTATUS NTAPI devpresent_Initializer(IN PVOID Instance)
Definition: devhere.c:35
ULONG NTAPI PciReadDeviceExtendedCapability(_In_ PPCI_PDO_EXTENSION DeviceExtension, _In_ ULONG CapabilityId, _Out_writes_bytes_(Length) PPCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Buffer, _In_ ULONG Length)
Finds an extended capability and reads it into the caller's buffer.
Definition: express.c:39
@ PdoExtension
Definition: precomp.h:49
@ FdoExtension
Definition: precomp.h:48
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT _In_ PUSB_PORT_PATH _Out_ PUSB_CD_ERROR_INFORMATION _In_ USHORT _In_ PDEVICE_OBJECT PdoDeviceObject
Definition: hubbusif.h:95
void Bar(void)
Definition: terminate.cpp:70
* PNTSTATUS
Definition: strlen.c:14
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
Definition: ndis.h:4715
_In_ const STRING _In_ BOOLEAN CaseInSensitive
Definition: rtlfuncs.h:2437
DRIVER_DISPATCH(nfs41_FsdDispatch)
#define _Inout_
Definition: no_sal2.h:162
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _Inout_updates_bytes_(s)
Definition: no_sal2.h:184
#define _Out_writes_bytes_(s)
Definition: no_sal2.h:178
ULONG ACCESS_MASK
Definition: nt_native.h:40
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
Definition: ntbasedef.h:395
_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
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
_Must_inspect_result_ _In_ KTMOBJECT_TYPE QueryType
Definition: nttmapi.h:404
_In_ ULONG BusNumber
Definition: pciidex.h:65
#define CONST
Definition: pedump.c:81
short WCHAR
Definition: pedump.c:58
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
char CHAR
Definition: pedump.c:57
static PMEMKEY RootKey
Definition: registry.c:55
_In_ PVOID Context
Definition: storport.h:2269
_In_ BOOLEAN Read
Definition: strmini.h:479
Definition: shell.h:41
PPCI_FDO_EXTENSION BusFdoExtension
Definition: pci.h:419
PCI_SECONDARY_EXTENSION Header
Definition: pci.h:417
WCHAR InstanceName[24]
Definition: pci.h:420
ARBITER_INSTANCE CommonInstance
Definition: pci.h:421
PPCI_INTERFACE Interface
Definition: pci.h:418
SINGLE_LIST_ENTRY List
Definition: pci.h:407
PCI_SIGNATURE ExtensionType
Definition: pci.h:408
PPCI_CONFIGURATOR Configurator
Definition: pci.h:507
PPCI_PDO_EXTENSION PdoExtension
Definition: pci.h:504
USHORT SecondaryStatus
Definition: pci.h:508
PPCI_COMMON_HEADER Current
Definition: pci.h:505
PPCI_COMMON_HEADER PciData
Definition: pci.h:506
PCI_CONFIGURATOR_CHANGE_RESOURCE_SETTINGS ChangeResourceSettings
Definition: pci.h:494
PCI_CONFIGURATOR_RESTORE_CURRENT RestoreCurrent
Definition: pci.h:491
PCI_CONFIGURATOR_SAVE_LIMITS SaveLimits
Definition: pci.h:492
PCI_CONFIGURATOR_RESET_DEVICE ResetDevice
Definition: pci.h:496
PCI_CONFIGURATOR_GET_ADDITIONAL_RESOURCE_DESCRIPTORS GetAdditionalResourceDescriptors
Definition: pci.h:495
PCI_CONFIGURATOR_INITIALIZE Initialize
Definition: pci.h:490
PCI_CONFIGURATOR_SAVE_CURRENT_SETTINGS SaveCurrentSettings
Definition: pci.h:493
BOOLEAN DeviceState
Definition: pci.h:207
BOOLEAN Fake
Definition: pci.h:222
BOOLEAN LatencyTimer
Definition: pci.h:237
struct _PCI_PDO_EXTENSION * ChildBridgePdoList
Definition: pci.h:217
BOOLEAN ArbitersInitialized
Definition: pci.h:225
SINGLE_LIST_ENTRY SecondaryExtension
Definition: pci.h:229
BOOLEAN ChildDelete
Definition: pci.h:223
struct _PCI_FDO_EXTENSION::@826 HotPlugParameters
BOOLEAN CacheLineSize
Definition: pci.h:236
PDEVICE_OBJECT AttachedDeviceObject
Definition: pci.h:212
PDEVICE_OBJECT PhysicalDeviceObject
Definition: pci.h:210
LONG BusHackFlags
Definition: pci.h:241
PPCI_COMMON_CONFIG PreservedConfig
Definition: pci.h:231
struct _PCI_FDO_EXTENSION * ParentFdoExtension
Definition: pci.h:216
BOOLEAN EnablePERR
Definition: pci.h:238
PCI_LOCK Lock
Definition: pci.h:232
BOOLEAN TentativeNextState
Definition: pci.h:208
ULONG ExtensionType
Definition: pci.h:205
BOOLEAN EnableSERR
Definition: pci.h:239
PPCI_BUS_INTERFACE_STANDARD PciBusInterface
Definition: pci.h:218
LONG PciPmeInterfaceCount
Definition: pci.h:242
BOOLEAN Acquired
Definition: pci.h:235
BUS_HANDLER * BusHandler
Definition: pci.h:220
struct _PCI_MJ_DISPATCH_TABLE * IrpDispatchTable
Definition: pci.h:206
SINGLE_LIST_ENTRY List
Definition: pci.h:204
PDEVICE_OBJECT FunctionalDeviceObject
Definition: pci.h:211
PCI_POWER_STATE PowerState
Definition: pci.h:228
struct _PCI_PDO_EXTENSION * ChildPdoList
Definition: pci.h:214
BOOLEAN BaseBus
Definition: pci.h:221
BOOLEAN BrokenVideoHackApplied
Definition: pci.h:226
KEVENT SecondaryExtLock
Definition: pci.h:209
struct _PCI_FDO_EXTENSION * BusRootFdoExtension
Definition: pci.h:215
BOOLEAN MaxSubordinateBus
Definition: pci.h:219
BOOLEAN Hibernated
Definition: pci.h:227
LONG ChildWaitWakeCount
Definition: pci.h:230
KEVENT ChildListLock
Definition: pci.h:213
BOOLEAN Scanned
Definition: pci.h:224
IO_RESOURCE_DESCRIPTOR Limit[7]
Definition: pci.h:247
CM_PARTIAL_RESOURCE_DESCRIPTOR Current[7]
Definition: pci.h:248
Definition: pci.h:163
ULONGLONG HackFlags
Definition: pci.h:168
USHORT SubSystemID
Definition: pci.h:167
USHORT VendorID
Definition: pci.h:164
USHORT RevisionID
Definition: pci.h:169
USHORT DeviceID
Definition: pci.h:165
UCHAR Flags
Definition: pci.h:170
USHORT SubVendorID
Definition: pci.h:166
ULONG Count
Definition: pci.h:440
ULONG StringSize[MAX_ANSI_STRINGS]
Definition: pci.h:442
CHAR BufferData[256]
Definition: pci.h:445
ANSI_STRING Strings[MAX_ANSI_STRINGS]
Definition: pci.h:441
ULONG TotalLength
Definition: pci.h:443
PCHAR CharBuffer
Definition: pci.h:444
USHORT MinSize
Definition: pci.h:392
USHORT Flags
Definition: pci.h:395
LONG ReferenceCount
Definition: pci.h:396
USHORT MaxVersion
Definition: pci.h:394
PCI_INTERFACE_CONSTRUCTOR Constructor
Definition: pci.h:398
PCI_SIGNATURE Signature
Definition: pci.h:397
PCI_INTERFACE_INITIALIZER Initializer
Definition: pci.h:399
USHORT MinVersion
Definition: pci.h:393
CONST GUID * InterfaceType
Definition: pci.h:391
LONG RunCount
Definition: pci.h:526
ULONG Barrier
Definition: pci.h:527
PVOID Context
Definition: pci.h:530
PCI_IPI_FUNCTION Function
Definition: pci.h:529
PVOID DeviceExtension
Definition: pci.h:528
UCHAR InterruptPin
Definition: pci.h:543
UCHAR SubClass
Definition: pci.h:545
UCHAR BaseClass
Definition: pci.h:544
PPCI_PDO_EXTENSION PdoExtension
Definition: pci.h:548
UCHAR InterruptLine
Definition: pci.h:542
PDEVICE_OBJECT PhysicalDeviceObject
Definition: pci.h:546
PDEVICE_OBJECT DeviceObject
Definition: pci.h:539
ROUTING_TOKEN RoutingToken
Definition: pci.h:547
struct _PCI_LEGACY_DEVICE * Next
Definition: pci.h:538
ULONG BusNumber
Definition: pci.h:540
ULONG SlotNumber
Definition: pci.h:541
Definition: pci.h:194
BOOLEAN OldIrql
Definition: pci.h:196
LONG Atom
Definition: pci.h:195
ULONG PnpIrpMaximumMinorFunction
Definition: pci.h:359
PCI_DISPATCH_FUNCTION SystemControlIrpDispatchFunction
Definition: pci.h:364
PPCI_MN_DISPATCH_TABLE PowerIrpDispatchTable
Definition: pci.h:362
PCI_DISPATCH_STYLE OtherIrpDispatchStyle
Definition: pci.h:365
PCI_DISPATCH_FUNCTION OtherIrpDispatchFunction
Definition: pci.h:366
ULONG PowerIrpMaximumMinorFunction
Definition: pci.h:361
PPCI_MN_DISPATCH_TABLE PnpIrpDispatchTable
Definition: pci.h:360
PCI_DISPATCH_STYLE SystemControlIrpDispatchStyle
Definition: pci.h:363
PCI_DISPATCH_STYLE DispatchStyle
Definition: pci.h:350
PCI_DISPATCH_FUNCTION DispatchFunction
Definition: pci.h:351
PCI_SLOT_NUMBER Slot
Definition: pci.h:283
PCI_FDO_EXTENSION * BridgeFdoExtension
Definition: pci.h:323
BOOLEAN DeviceState
Definition: pci.h:279
LONG BusInterfaceReferenceCount
Definition: pci.h:287
BOOLEAN ProgIf
Definition: pci.h:294
BOOLEAN BaseClass
Definition: pci.h:296
USHORT ExpressCapabilityPtr
Definition: pci.h:331
PCI_HEADER_TYPE_DEPENDENT Dependent
Definition: pci.h:320
PCI_POWER_STATE PowerState
Definition: pci.h:319
ULONGLONG HackFlags
Definition: pci.h:321
BOOLEAN AdjustedInterruptLine
Definition: pci.h:298
BOOLEAN InterruptPin
Definition: pci.h:299
PDEVICE_OBJECT PhysicalDeviceObject
Definition: pci.h:284
BOOLEAN RawInterruptLine
Definition: pci.h:300
USHORT SubsystemVendorId
Definition: pci.h:291
USHORT SubsystemId
Definition: pci.h:292
USHORT CommandEnables
Definition: pci.h:329
KEVENT SecondaryExtLock
Definition: pci.h:282
UCHAR ExpressDeviceType
Definition: pci.h:332
BOOLEAN SavedCacheLineSize
Definition: pci.h:303
BOOLEAN SavedLatencyTimer
Definition: pci.h:302
struct _PCI_PDO_EXTENSION * NextHashEntry
Definition: pci.h:325
BOOLEAN UpdateHardware
Definition: pci.h:310
USHORT DeviceId
Definition: pci.h:290
struct _PCI_PDO_EXTENSION * NextBridge
Definition: pci.h:324
BOOLEAN HeaderType
Definition: pci.h:304
ULONG ExtensionType
Definition: pci.h:277
USHORT InitialCommand
Definition: pci.h:330
BOOLEAN NeedsHotPlugConfiguration
Definition: pci.h:313
BOOLEAN SubClass
Definition: pci.h:295
BOOLEAN AdditionalResourceCount
Definition: pci.h:297
PCI_LOCK Lock
Definition: pci.h:326
BOOLEAN CapabilitiesPtr
Definition: pci.h:301
USHORT VendorId
Definition: pci.h:289
PVOID Next
Definition: pci.h:276
BOOLEAN OnDebugPath
Definition: pci.h:317
BOOLEAN LegacyDriver
Definition: pci.h:309
BOOLEAN BIOSAllowsIDESwitchToNativeMode
Definition: pci.h:315
BOOLEAN TargetAgpCapabilityId
Definition: pci.h:328
BOOLEAN MovedDevice
Definition: pci.h:311
SINGLE_LIST_ENTRY SecondaryExtension
Definition: pci.h:286
struct _PCI_MJ_DISPATCH_TABLE * IrpDispatchTable
Definition: pci.h:278
LONG AgpInterfaceReferenceCount
Definition: pci.h:288
BOOLEAN IsExtendedConfigReachable
Definition: pci.h:333
BOOLEAN NotPresent
Definition: pci.h:305
BOOLEAN DisablePowerDown
Definition: pci.h:312
BOOLEAN ExpectedWritebackFailure
Definition: pci.h:307
BOOLEAN NoTouchPmeEnable
Definition: pci.h:308
BOOLEAN IoSpaceUnderNativeIdeControl
Definition: pci.h:316
PCI_PMC PowerCapabilities
Definition: pci.h:327
BOOLEAN IDEInNativeMode
Definition: pci.h:314
BOOLEAN TentativeNextState
Definition: pci.h:280
PCI_FUNCTION_RESOURCES * Resources
Definition: pci.h:322
BOOLEAN RevisionId
Definition: pci.h:293
PPCI_FDO_EXTENSION ParentFdoExtension
Definition: pci.h:285
BOOLEAN IoSpaceNotRequired
Definition: pci.h:318
BOOLEAN ReportedMissing
Definition: pci.h:306
LONG CrashDump
Definition: pci.h:187
DEVICE_POWER_STATE DeviceWakeLevel
Definition: pci.h:181
DEVICE_POWER_STATE CurrentDeviceState
Definition: pci.h:179
LONG Hibernate
Definition: pci.h:186
DEVICE_POWER_STATE SystemStateMapping[7]
Definition: pci.h:182
SYSTEM_POWER_STATE CurrentSystemState
Definition: pci.h:178
SYSTEM_POWER_STATE SystemWakeLevel
Definition: pci.h:180
PIRP WaitWakeIrp
Definition: pci.h:183
LONG Paging
Definition: pci.h:185
PVOID SavedCancelRoutine
Definition: pci.h:184
ULONG FailureCode
Definition: pci.h:429
VF_FAILURE_CLASS FailureClass
Definition: pci.h:430
PCHAR DebuggerMessageText
Definition: pci.h:432
ULONG AssertionControl
Definition: pci.h:431
Definition: ntbasedef.h:640
int32_t INT32
Definition: typedefs.h:58
uint32_t * PULONG
Definition: typedefs.h:59
unsigned char UCHAR
Definition: typedefs.h:53
#define NTAPI
Definition: typedefs.h:36
uint64_t ULONGLONG
Definition: typedefs.h:67
uint16_t * PUSHORT
Definition: typedefs.h:56
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
uint16_t * PWCHAR
Definition: typedefs.h:56
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
char * PCHAR
Definition: typedefs.h:51
struct _PCI_HEADER_TYPE_DEPENDENT::@829 type2
struct _PCI_HEADER_TYPE_DEPENDENT::@828 type1
struct _PCI_HEADER_TYPE_DEPENDENT::@827 type0
_In_ PIO_STACK_LOCATION IoStackLocation
Definition: usbdlib.h:265
enum _VF_FAILURE_CLASS VF_FAILURE_CLASS
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:476
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061
_In_ WDFDEVICE _Out_ PWDF_DEVICE_STATE DeviceState
Definition: wdfdevice.h:2005
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2664
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4539
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
Definition: wdfdevice.h:3775
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
Definition: wdfdevice.h:2705
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2439
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
Definition: wdffdo.h:465
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
Definition: wdffdo.h:463
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
Definition: wdfio.h:325
_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
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:953
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
Definition: wdfregistry.h:243
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
Definition: wdfresource.h:309
_In_ WDFIORESREQLIST RequirementsList
Definition: wdfresource.h:65
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
Definition: wdfresource.h:342
_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
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFWMIINSTANCE * Instance
Definition: wdfwmi.h:481
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
DEVICE_REGISTRY_PROPERTY
Definition: iotypes.h:1194
* PDEVICE_CAPABILITIES
Definition: iotypes.h:965
enum _DEVICE_TEXT_TYPE DEVICE_TEXT_TYPE