HalSetBusDataByOffset-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ätekonfigurationsraum empfohlenen Methoden nicht verwendet werden können.

Diese Funktion legt Buskonfigurationsdaten für ein Gerät auf einem dynamisch konfigurierbaren E/A-Bus mit einer veröffentlichten Standardschnittstelle fest.

Syntax

NTHALAPI ULONG HalSetBusDataByOffset(
  [in] BUS_DATA_TYPE BusDataType,
  [in] ULONG         BusNumber,
  [in] ULONG         SlotNumber,
  [in] PVOID         Buffer,
  [in] ULONG         Offset,
  [in] ULONG         Length
);

Parameter

[in] BusDataType

Festzulegende Busdaten. Dieser Wert kann PCIConfiguration sein. Die obere Grenze für die unterstützten Typen ist immer MaximumBusDataType.

[in] BusNumber

Nullbasierte und systemseitig zugewiesene Nummer des Busses in Systemen mit mehreren Bussen desselben BusDataType. Dieses Argument enthält 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, wird dieser Wert als PCI_SLOT_NUMBER Wert angegeben, d. h. die Kombinierten Slot- und Funktionsnummern.

[in] Buffer

Zeiger auf einen vom Aufrufer bereitgestellten Puffer für Konfigurationsinformationen speziell für BusDataType.

Wenn Sie PCIConfiguration angeben, enthält der Puffer die INFORMATIONEN zum PCI-Konfigurationsbereich für die angegebene SlotNumber und die Funktionsnummer. Der angegebene Offset und die angegebene Länge bestimmen, wie viele Informationen bereitgestellt werden sollen. Bestimmte Member des PCI-Konfigurationsbereichs verfügen über schreibgeschützte Werte Der Aufrufer ist für die Beibehaltung der vom System bereitgestellten Werte von schreibgeschützten Membern verantwortlich. Beachten Sie, dass HalSetBusDataByOffset für ein Typ-1-PCI-Gerät verhindert, dass Schreibvorgänge innerhalb des allgemeinen Headers registriert werden (erste 256 GB des Konfigurationsbereichs).

[in] Offset

Byteoffset in der PCI_COMMON_CONFIG-Struktur, in der die vom Aufrufer bereitgestellten Konfigurationswerte beginnen. Aufrufer können die systemdefinierte konstante PCI_COMMON_HDR_LENGTH verwenden, um den gerätespezifischen Bereich der PCI_COMMON_CONFIG anzugeben.

[in] Length

Anzahl der Bytes im Puffer.

Rückgabewert

Der Rückgabewert ist die tatsächliche Länge, die in den Konfigurationsbereich geschrieben wird.

Hinweise

Ein Treiber kann diese Funktion oder HalSetBusData aufrufen, wenn ungewöhnliche Umstände oder die Art seines Geräts einen solchen Aufruf erfordern. Beispielsweise kann ein Treiber eine dieser Funktionen aufrufen, um ein Bit im PCI-status registrieren, wenn sein Gerät während der Initialisierung einen Abbruch des Ziels signalisiert. In der Regel konfiguriert der Hardware- oder Startcode das Gerät entsprechend.

Beim Zugriff auf den gerätespezifischen Bereich des PCI-Konfigurationsraums garantiert HalSetBusDataByOffset, dass diese Funktion niemals Daten außerhalb des durch den Eingabeoffset und der Länge angegebenen Bereichs liest oder schreibt. Selbst wenn die Eingabelänge genau ein Byte oder ein Zwei-Byte-Wort ist, greift diese Funktion niemals auf Daten außerhalb des angeforderten Bereichs zu.

Anforderungen

Anforderung Wert
Header ntddk.h (include Ntddk.h)

Weitere Informationen

BUS_DATA_TYPE

HalGetBusData

HalGetBusDataByOffset

HalSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG