Freigeben über


KS-Allokatoren

Ein Allocator ist ein KS-Objekt, das Datenpuffer instanziiert, die als Frames für E/A-Anforderungen bezeichnet werden. Ein Frame ist ein Teil des kontinuierlichen Speichers, dessen Größe durch das AllocatorFraming-Element von KSPIN_DESCRIPTOR_EX angegeben wird.

Miniteiber können Allokatoren für mehrere Puffertypen unterstützen, wie zum Beispiel für On-Board-RAM auf einer Videokarte. Die meisten Minidriver verwenden jedoch den Standardverteiler , um Systemspeicher zuzuweisen. Minidriver können Framegröße, maximale Anzahl von Frames und Ausrichtungsanforderungen angeben. Der Standard-Allocator kümmert sich um die Erfüllung der Anforderungen und kann die Leistung optimieren, indem verworfene Frames erneut verwendet werden.

Ein Minidriver erstellt einen Allocator durch Aufrufen der KsCreateAllocator-Routine oder verwandter Funktionen. In diesem Aufruf übergibt der Minidriver einen Zeiger an eine KSALLOCATOR_FRAMING Struktur. Diese Struktur enthält Parameter, die den angeforderten Allocator beschreiben.

Im Streamklassenmodell unterstützen Minidriver, die Zuweiser erstellen, die KSPROPERTY_CONNECTION_ALLOCATORFRAMING-Eigenschaft. Dies ist eine schreibgeschützte Anforderung, die einen Zeiger auf die relevante KSALLOCATOR_FRAMING Struktur für den angegebenen Senkenziehpunkt zurückgibt.

Minidriver, die Allokatoren bereitstellen, sollten auch die KSPROPERTY_STREAM_ALLOCATOR-Eigenschaft unterstützen. Diese Eigenschaft bietet Lese-/Schreibzugriff auf das Handle des aktuell dem Stream-Verbindungspunkt zugewiesenen Allocators.

Minidriver, die unter AVStream ausgeführt werden, können Pins enthalten, die ihre eigenen Allokatoren implementieren. Legen Sie dazu das KSALLOCATOR_DISPATCH Element der KSPIN_DISPATCH-Struktur fest. Geben Sie NULL für dieses Element an, wenn Sie keinen Zuweisungsgeber für diesen Pin angeben möchten.

Darüber hinaus verwenden AVStream-Minidriver die KSALLOCATOR_FRAMING_EX Struktur, um allocator-Anforderungen anzugeben. Clients verwenden dann die KSPROPERTY_CONNECTION_ALLOCATORFRAMING_EX-Eigenschaft , um Rahmenanforderungen für einen Pin abzurufen. Weitere Informationen finden Sie unter AVStream Allocators .

Dieser Abschnitt enthält die folgenden zusätzlichen Informationen:

Standard-Allocatoren

Filtern bestimmter Allokatoren

Zuordnungsschemas