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)

Weitere Informationen

BUS_DATA_TYPE

HalGetBusData

HalSetBusDataByOffset

HalSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG