Condividi tramite


Gestione di più blocchi

Con il runtime Direct3D, è possibile consentire ai vertex e ai buffer di indice di avere più blocchi in sospeso. I driver di visualizzazione in modalità utente devono gestire più blocchi allo stesso modo del runtime nel modello di driver di visualizzazione di Windows 2000.

Un driver di visualizzazione in modalità utente non deve eseguire una chiamata alla relativa funzione LockAsync per una risorsa già bloccata. Ciò significa che il driver non può eseguire alcuna chiamata alla relativa funzione LockAsync per una determinata risorsa dopo che la prima chiamata alla funzione LockAsync ha esito positivo nel bloccare tale risorsa. Analogamente, il driver non può eseguire alcuna chiamata alla relativa funzione Lock per una determinata risorsa dopo che la prima chiamata alla funzione Lock ha esito positivo nel bloccare tale risorsa. Il runtime corrisponde a ogni chiamata eseguita alla funzione LockAsync del driver con una chiamata alla funzione UnlockAsync del driver. Il runtime corrisponde anche a ogni chiamata eseguita alla funzione Lock del driver con una chiamata alla funzione Unlock del driver.

Il driver di visualizzazione in modalità utente non riesce a eseguire una chiamata alla relativa funzione UnlockAsync , a meno che la risorsa descritta dalla struttura D3DDDIARG_UNLOCKASYNC non sia stata effettivamente bloccata da una chiamata precedente alla funzione LockAsync del driver. Analogamente, il driver non può eseguire una chiamata alla relativa funzione Unlock , a meno che la risorsa descritta dalla struttura D3DDDIARG_UNLOCK non sia stata effettivamente bloccata da una chiamata precedente alla funzione Lock del driver. Nelle situazioni in cui le risorse non sono state bloccate in precedenza, UnlockAsync e Unlock restituiscono E_INVALIDARG.