Freigeben über


Anbieten und Freigeben von Änderungen

Beim Windows Display Driver Model (WDDM) v2 werden die Anforderungen an Offer und Reclaim gelockert. Benutzermodustreiber müssen für interne Zuordnungen keine Angebots- und Rückforderungen mehr verwenden. Im Leerlauf befindliche/angehaltene Anwendungen entfernen interne Treiberressourcen mithilfe der Trim-API, die in Microsoft DirectX 11.1 eingeführt wurde.

Angebots- und Rückforderungen werden weiterhin auf API-Ebene unterstützt, und der Benutzermodustreiber ist erforderlich, um Anwendungsanforderungen zum Anbieten oder Freigeben von Ressourcen an den Kernel weiterzuleiten. Unter WDDM v2 wird die Angebotszuordnung nicht mehr über die Zuordnungsliste unterstützt, und daher muss der Benutzermodustreiber die Art und Weise ändern, wie angebots- und rücknahme implementiert wird.

Ressourcen, die von einer Anwendung angeboten werden, sollten sofort vom Benutzermodustreiber angeboten werden, indem OfferCb aufgerufen wird, wenn die Ressourcen keinen Verweis in den DMA-Puffern (Direct Memory Access) aufweisen, die derzeit in allen Kontexten erstellt werden. Wenn die Ressourcen über ausstehende Verweise im zu erstellenden DMA-Puffer verfügen, sollte der Benutzermodustreiber den Aufruf von OfferCb zurückstellen, bis der abhängige DMA-Puffer über RenderCb übermittelt wurde. Der Grafikkern sorgt dafür, dass der Vorgang auf nicht blockierende Weise zurückversetzt wird, bis die Ressource sicher bereitgestellt werden kann. Daher muss sich der Benutzermodustreiber keine Sorgen machen, dass er den Aufruf von OfferCb zurückstellen muss, bis der abhängige Vorgang für die Grafikverarbeitungseinheit (GPU) abgeschlossen ist.

Das Aufrufen der Rückforderung wird automatisch in einer Zuordnung ausgelagert, wenn sie in der Liste der Wohnsitzanforderungen enthalten ist (d. h. der Benutzer oder Fahrer hat die Zuordnung über einen MakeResidentCb-Anruf angefordert). Für ReclaimAllocations2Cb ist dieser Vorgang asynchron, und ein Auslagerungszaun wird zurückgegeben und sollte auf die gleiche Weise behandelt werden wie Zäune, die von MakeResidentCb zurückgegeben werden. Die Zuordnung ist garantiert resident und kann auf der GPU verwendet werden, wenn der Zaun signalisiert wird.

Unmittelbar nach der Rückgabe von ReclaimAllocationsCb/ReclaimAllocations2Cb ist der Sicherungsspeicher der Zuordnung garantiert gültig, und die Zuordnung kann unter CPU-Zugriff über Lock2Cb platziert werden. Der Treiber muss dafür nicht auf den Auslagerungszaun warten.