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) |