HalGetBusDataByOffset-Funktion (ntddk.h)
Warnung
HalGetBusDataByOffset und HalSetBusDataByOffset werden aus Gründen der Abwärtskompatibilität bereitgestellt, sollten jedoch nur verwendet werden, wenn die unter Zugreifen auf Gerätekonfigurationsspeicher empfohlenen Methoden nicht verwendet werden können.
Diese Funktion ruft ab dem Offset Informationen zu einem Slot oder einer Adresse auf einem E/A-Bus ab.
Syntax
NTHALAPI ULONG HalGetBusDataByOffset(
[in] BUS_DATA_TYPE BusDataType,
[in] ULONG BusNumber,
[in] ULONG SlotNumber,
[in] PVOID Buffer,
[in] ULONG Offset,
[in] ULONG Length
);
Parameter
[in] BusDataType
Abzurufende Busdaten. Die Obergrenze für die unterstützten Bustypen ist immer MaximumBusDataType. Der einzige unterstützte BusDataType ist PCIConfiguration
Alle anderen Typen sind veraltet.
[in] BusNumber
Nullbasierte und systemseitig zugewiesene Anzahl des Busses in Systemen mit mehreren Bussen desselben BusDataType. Dieses Argument trägt auch die Segmentnummer. Verwenden Sie zum Angeben der Segmentnummer (Segment << 8) | BusNumber
[in] SlotNumber
Logische Slotnummer oder Standort des Geräts. Wenn Sie PCIConfiguration als BusDataType angeben, ist dieser Wert ein PCI_SLOT_NUMBER Wert, d. h. die kombinierten Slot- und Funktionsnummern.
[in] Buffer
Zeiger auf einen vom Aufrufer bereitgestellten Puffer für Konfigurationsinformationen, die für BusDataType spezifisch sind.
Wenn Sie PCIConfiguration angeben, enthält der Puffer die INFORMATIONEN zum PCI-Konfigurationsbereich für die angegebene SlotNumber und die angegebene Funktionsnummer. Der angegebene Offset und die angegebene Länge bestimmen, wie viele Informationen bereitgestellt werden sollen. Bestimmte Mitglieder des PCI-Konfigurationsbereichs verfügen über schreibgeschützte Werte Der Aufrufer ist für die Beibehaltung der vom System bereitgestellten Werte schreibgeschützter Member verantwortlich. Beachten Sie, dass für ein Typ-1-PCI-Gerät HalSetBusDataByOffset Schreibvorgänge in Register innerhalb des allgemeinen Headers (erste 256 GB des Konfigurationsraums) verhindert.
[in] Offset
Byteoffset in der PCI_COMMON_CONFIG Struktur, für die die angeforderten Informationen zurückgegeben werden sollen. Aufrufer können die systemdefinierte konstante PCI_COMMON_HDR_LENGTH verwenden, um den gerätespezifischen Bereich PCI_COMMON_CONFIG anzugeben.
[in] Length
Maximale Anzahl von Bytes im Puffer.
Rückgabewert
Der Rückgabewert ist die tatsächliche Länge, die aus dem Konfigurationsraum gelesen wird.
Hinweise
Gerätetreiber rufen diese Funktion während der Initialisierung auf, um ihre Geräte auf einem bestimmten E/A-Bus zu lokalisieren. Sie können die zurückgegebenen bustypspezifischen Konfigurationsdaten in späteren Aufrufen anderer Konfigurations- und Initialisierungsfunktionen wie HalTranslateBusAddress verwenden.
Beim Zugriff auf den gerätespezifischen Bereich des PCI-Konfigurationsraums garantiert HalGetBusDataByOffset, dass diese Funktion keine Daten außerhalb des durch den Eingabeoffset und der Länge angegebenen Bereichs liest oder schreibt. Auch wenn die Eingabelänge genau ein 1-Byte- oder 2-Byte-Wort ist, greift diese Funktion nie auf Daten außerhalb des angeforderten Bereichs zu.
Anforderungen
Anforderung | Wert |
---|---|
Header | ntddk.h (include Ntddk.h) |