Freigeben über


HalSetBusDataByOffset-Funktion (ntddk.h)

Warnung

HalGetBusDataByOffset und HalSetBusDataByOffset- werden aus Gründen der Abwärtskompatibilität bereitgestellt, sollten jedoch nur verwendet werden, wenn die in Zugriff auf den Gerätekonfigurationsraum empfohlenen Methoden nicht verwendet werden können.

Mit dieser Funktion werden Buskonfigurationsdaten für ein Gerät auf einem dynamisch konfigurierbaren E/A-Bus mit einer veröffentlichten Standardschnittstelle festgelegt.

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 vom System zugewiesene Nummer 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 Steckplatznummer oder Position des Geräts. Wenn Sie PCIConfiguration als BusDataType angeben, wird dieser Wert als PCI_SLOT_NUMBER Wert angegeben, bei dem es sich um die kombinierten Steckplatz- und Funktionsnummern handelt.

[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 PCI-Konfigurationsrauminformationen für die angegebene SlotNumber und Funktionsnummer. Der angegebene Offset und die Länge bestimmen, wie viele Informationen bereitgestellt werden sollen. Bestimmte Member des PCI-Konfigurationsraums weisen schreibgeschützte Werte auf. Der Aufrufer ist dafür verantwortlich, die vom System bereitgestellten Werte von schreibgeschützten Membern beizubehalten. Beachten Sie, dass für ein Type-1-PCI-Gerät HalSetBusDataByOffset schreibgeschützte Schreibvorgänge innerhalb des allgemeinen Headers (erste 256 Byte des Konfigurationsraums) registriert.

[in] Offset

Byteoffset in der PCI_COMMON_CONFIG Struktur, in der die vom Aufrufer bereitgestellten Konfigurationswerte beginnen. Anrufer können die vom System definierte Konstante PCI_COMMON_HDR_LENGTH verwenden, um den gerätespezifischen Bereich von 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 Konfigurationsraum geschrieben wird.

Bemerkungen

Ein Treiber kann diese Funktion oder HalSetBusData aufrufen, wenn ungewöhnliche Umstände oder die Art des Geräts einen solchen Aufruf erfordert. Beispielsweise kann ein Treiber eine dieser Funktionen aufrufen, um ein Bit im PCI-Statusregister zu löschen, wenn das Gerät ein Ziel während der Initialisierung 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 bereichs liest oder schreibt, der durch den Eingabeoffset und die Länge angegeben ist, und selbst wenn die Eingabelänge genau ein Byte- oder Ein-Byte-Wort ist, greift diese Funktion niemals auf Daten außerhalb des angeforderten Bereichs zu.

Anforderungen

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

Siehe auch

BUS_DATA_TYPE

HalGetBusData-

HalGetBusDataByOffset

HalSetBusData-

HalTranslateBusAddress

PCI_COMMON_CONFIG