KsDeviceRegisterAdapterObject-Funktion (ks.h)

Die KsDeviceRegisterAdapterObject-Funktion registriert ein DMA-Adapterobjekt bei AVStream zum Ausführen von Scatter/Gather-DMA auf dem angegebenen Gerät. Alle treiber, die für Win64 kompiliert werden, sollten stattdessen IKsDeviceFunctions::RegisterAdapterObjectEx verwenden.

Syntax

void KsDeviceRegisterAdapterObject(
  [in] PKSDEVICE       Device,
  [in] PADAPTER_OBJECT AdapterObject,
  [in] ULONG           MaxMappingsByteCount,
  [in] ULONG           MappingTableStride
);

Parameter

[in] Device

Ein Zeiger auf die KSDEVICE-Struktur , die das AVStream-Gerät darstellt, für das ein Adapterobjekt registriert werden soll.

[in] AdapterObject

Ein Zeiger auf die DMA_ADAPTER Struktur, die von IoGetDmaAdapter zurückgegeben wird und den DMA-Controller darstellt.

[in] MaxMappingsByteCount

Dieser Parameter gibt die maximale Anzahl von Bytes an, die das Gerät für eine einzelne Zuordnung verarbeiten kann. Ermöglicht AVStream, große Blöcke zusammenhängenden physischen Arbeitsspeichers automatisch in mehrere Scatter-/Gather-Elemente für Geräte aufzuteilen, die eine Größenbegrenzung für einzelne Zuordnungen in DMA-Übertragungen festlegen. Es ist nicht garantiert, dass Brüche an Seitengrenzen auftreten.

[in] MappingTableStride

Dieser Parameter gibt an, wie viele Bytes jeder Eintrag in der Zuordnungstabelle benötigt. Dies muss mindestens sizeof (KSMAPPING) sein und kann so groß wie nötig sein.

Zusätzlicher Speicherplatz kann vom Minidriver als Kontextinformationen verwendet werden.

Rückgabewert

Keine

Bemerkungen

Ein Minidriver, der KsDeviceRegisterAdapterObject aufruft , ist dafür verantwortlich, das Adapterobjekt zuvor über IoGetDmaAdapter zu erwerben.

Beachten Sie außerdem, dass der Minidriver KsDeviceRegisterAdapterObject aufrufen muss, wenn der Minidriver das KSPIN_FLAG_GENERATE_MAPPINGS-Flag für einen beliebigen Pin an einem beliebigen Filter des Geräts angibt, bevor daten verarbeitet werden. Weitere Informationen zu diesem Flag finden Sie auf der Referenzseite für KSPIN_DESCRIPTOR_EX. Siehe auch AVStream DMA-Dienste.

Wenn Sie MaxMappingByteCount auf eine physische Seite in der Länge festlegen, ist nicht garantiert, dass sich Zuordnungen auf einer einzelnen physischen Seite befinden. Darüber hinaus garantiert das Festlegen von MaxMappingsByteCount , wie in der obigen Memberbeschreibung erwähnt, nicht, dass Umbrüche an Seitengrenzen auftreten. Wenn Sie Umbrüche für Seitengrenzen benötigen, sollten Sie keine Begrenzung für Zuordnungsgrößen angeben. Zerlegen Sie stattdessen die zurückgegebenen Punkt-/Sammelzuordnungen manuell in seitenbündige Blöcke.

Weitere Informationen finden Sie unter Unterstützen von DMA in 64-Bit-AVStream-Treibern.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ks.h (einschließlich Ks.h)
Bibliothek Ks.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

IoGetDmaAdapter

KSFILTER_DESCRIPTOR

KSMAPPING

KSPIN_DESCRIPTOR_EX