Freigeben über


Angeben von Segmenten für DMA-Puffer

Der Display-Miniporttreiber kann Blendensegmente angeben, aus denen DMA-Puffer zugeordnet werden können. DMA-Puffer können auch als zusammenhängender gesperrter Systemspeicher zugeordnet werden.

Der Videospeicher-Manager ordnet DMA-Puffer zu und zerstört sie, wenn Anwendungen sie benötigen. Daher erfordert der Videospeicher-Manager eine Reihe von Segmenten, aus denen er DMA-Puffer zuordnen kann. Beachten Sie, dass die Segmentgruppe möglicherweise nur aus einem Segment besteht.

Wenn das Microsoft DirectX-Grafikkernsubsystem die DxgkDdiCreateDevice-Funktion des Anzeigeminiporttreibers aufruft, um ein Grafikkontextgerät zu erstellen, kann der Display-Miniporttreiber einen Segmentsatz angeben, aus dem der Videospeicher-Manager DMA-Puffer zuordnen kann. Wenn der Anzeige-Miniporttreiber den DmaBufferSegmentSet-Member der DXGK_DEVICEINFO-Struktur auf 0 festlegt, weist der Videospeicher-Manager zusammenhängenden, nicht auslagerten Arbeitsspeicher für DMA-Puffer zu. In diesem Fall muss der Anzeige-Miniporttreiber über PCI-Zyklen auf den Speicher zugreifen und über DMA Daten direkt von der physischen Adresse des Speichers senden. Wenn der Anzeige-Miniporttreiber DmaBufferSegmentSet auf ungleich null festlegt, ordnet der Videospeicher-Manager ausgelagerten Arbeitsspeicher zu und ordnet die Seiten den angegebenen Blendensegmenten zu. Die Seiten in den Blendensegmenten werden dem Anzeige-Miniporttreiber in einem Aufruf der DxgkDdiSubmitCommand-Funktion angezeigt.

Beachten Sie, dass das grundlegende Videospeicher-Manager-Modell DMA-Puffer im lokalen Videospeicher nicht unterstützt.