Condividi tramite


PFND3DDDI_UNLOCKASYNC funzione di callback (d3dumddi.h)

La funzione UnlockAsync sblocca una risorsa o una superficie all'interno della risorsa bloccata in precedenza dalla funzione LockAsync.

Sintassi

PFND3DDDI_UNLOCKASYNC Pfnd3dddiUnlockasync;

HRESULT Pfnd3dddiUnlockasync(
  HANDLE hDevice,
  const D3DDDIARG_UNLOCKASYNC *unnamedParam2
)
{...}

Parametri

hDevice

Handle per un dispositivo di visualizzazione, ovvero il contesto grafico.

unnamedParam2

pData [in]

Puntatore a una struttura D3DDDIARG_UNLOCKASYNC che descrive la risorsa o la superficie all'interno della risorsa da sbloccare.

Valore restituito

UnlockAsync restituisce uno dei valori seguenti:

codice restituito Descrizione
S_OK La risorsa viene sbloccata correttamente.
E_OUTOFMEMORY UnlockAsync non è riuscito ad allocare la memoria necessaria per il completamento.
E_INVALIDARG La risorsa che D3DDDIARG_UNLOCKASYNC descrive non è stata bloccata da una chiamata precedente alla funzione lockAsync del driver.

Osservazioni

Un driver di visualizzazione in modalità utente deve chiamare la funzione pfnUnlockCb con l'handle di allocazione appropriato dopo la chiamata della funzione unlockAsync.

Un driver di visualizzazione in modalità utente implementa facoltativamente UnlockAsync; Il runtime di Microsoft Direct3D chiama UnlockAsync solo se il driver implementa le funzioni LockAsync, UnlockAsynce Rename.

Come LockAsync, UnlockAsync viene chiamato sul thread principale dell'applicazione, mentre la maggior parte delle altre chiamate alle funzioni del driver di visualizzazione in modalità utente viene eseguita su un thread di lavoro (in computer con più processori).

Se un driver di visualizzazione in modalità utente espone una versione DDI di 0x0000000B o versione successiva (il driver restituisce questo valore nel DriverVersion membro della struttura D3D10DDIARG_OPENADAPTER in una chiamata alla funzione OpenAdapter del driver), il runtime Direct3D chiamerà UnlockAsync in modo reentrant. Quando il runtime chiama UnlockAsync in modo reentrant, un thread può essere eseguito all'interno UnlockAsync mentre un altro thread che fa riferimento allo stesso dispositivo di visualizzazione viene eseguito all'interno di un'altra funzione driver di visualizzazione in modalità utente.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
piattaforma di destinazione Desktop
intestazione d3dumddi.h (include D3dumddi.h)

Vedere anche

D3DDDIARG_UNLOCKASYNC

D3DDDI_DEVICEFUNCS

LockAsync

Rinomina

pfnUnlockCb