Share via


KsDeviceGetBusData-Funktion (ks.h)

Die KsDeviceGetBusData-Funktion liest Daten aus dem Bus, in dem sich das angegebene AVStream-Gerät befindet.

Syntax

KSDDKAPI ULONG KsDeviceGetBusData(
  [in] PKSDEVICE Device,
  [in] ULONG     DataType,
  [in] PVOID     Buffer,
  [in] ULONG     Offset,
  [in] ULONG     Length
);

Parameter

[in] Device

Ein Zeiger auf die KSDEVICE-Struktur , die das angegebene AVStream-Gerät darstellt, für das Daten aus dem Bus gelesen werden sollen.

[in] DataType

Dieser Parameter gibt den Typ der zu lesenden Busdaten an. 0 (Null) entspricht dem Konfigurationsraum. Weitere Informationen finden Sie in der Diskussion zu WhichSpace auf der Referenzseite für IRP_MN_READ_CONFIG.

[in] Buffer

Ein Zeiger auf einen Puffer, der die vom Bus gelesenen Daten empfängt. Muss mindestens so groß wie Die Länge sein.

[in] Offset

Dieser Parameter enthält den Byteoffset in dem durch DataType angegebenen Bereich, aus dem Daten gelesen werden.

[in] Length

Dieser Parameter gibt die Anzahl der Bytes an, die in Buffer gelesen werden sollen.

Rückgabewert

KsDeviceGetBusData gibt die Anzahl der Bytes zurück, die tatsächlich aus dem Bus gelesen werden. Wenn ein Fehler auftritt, ist dieser Wert null.

Hinweise

Abhängig vom Treiber für den Bus, in dem sich das angegebene Gerät befindet, gibt es zwei mögliche Verhaltensweisen und Einschränkungssätze für diese Funktion. Wenn der angegebene Bustreiber den Busschnittstellenstandard (in der Regel PCI) unterstützt, rufen Sie diese Funktion entweder unter IRQL = PASSIVE_LEVEL oder DISPATCH_LEVEL auf. Nach einem solchen Aufruf gibt KsDeviceGetBusData die tatsächliche Anzahl von Bytes zurück, die aus dem angeforderten Bereich gelesen werden. Wenn der angegebene Bustreiber jedoch den Busschnittstellenstandard nicht unterstützt, kommuniziert AVStream über IoCallDriver mit dem Bustreiber. Beachten Sie, dass dies die Verwendung von KsDeviceGetBusData auf IRQL = PASSIVE_LEVEL beschränkt und auch bedeutet, dass der Rückgabewert im Falle eines Fehlers entweder 0 oder gleich Length ist, wenn die Datenerfassung erfolgreich war.

Um die Kompatibilität sicherzustellen, möchten Minidriver-Writer möglicherweise die Verwendung von KsDeviceGetBusData auf IRQL = PASSIVE_LEVEL beschränken.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Microsoft Windows XP und höheren Betriebssystemen sowie DirectX 8.0 und höher DirectX-Versionen.
Zielplattform Universell
Header ks.h (ks.h einschließen)
Bibliothek Ks.lib
IRQL PASSIVE_LEVEL (siehe Abschnitt "Hinweise")

Weitere Informationen

IoCallDriver

KsDeviceSetBusData