Partager via


PFND3DDDI_UNLOCKASYNC fonction de rappel (d3dumddi.h)

La fonction UnlockAsync déverrouille une ressource ou une surface dans la ressource que la fonction LockAsync a précédemment verrouillée.

Syntaxe

PFND3DDDI_UNLOCKASYNC Pfnd3dddiUnlockasync;

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

Paramètres

hDevice

Handle pour un périphérique d’affichage (c’est-à-dire le contexte graphique).

unnamedParam2

pData [in]

Pointeur vers une structure D3DDDIARG_UNLOCKASYNC qui décrit la ressource ou la surface dans la ressource à déverrouiller.

Valeur retournée

UnlockAsync retourne l’une des valeurs suivantes :

Code de retour Description
S_OK La ressource est déverrouillée.
E_OUTOFMEMORY UnlockAsync n’a pas pu allouer la mémoire nécessaire pour qu’il se termine.
E_INVALIDARG La ressource décrite D3DDDIARG_UNLOCKASYNC n’a pas été verrouillée par un appel précédent à la fonction LockAsync du pilote.

Remarques

Un pilote d’affichage en mode utilisateur doit appeler la fonction pfnUnlockCb avec le handle d’allocation approprié après l’appel de la fonction UnlockAsync .

Un pilote d’affichage en mode utilisateur implémente éventuellement UnlockAsync ; Le runtime Microsoft Direct3D appelle UnlockAsync uniquement si le pilote implémente les fonctions LockAsync, UnlockAsync et Rename .

Comme LockAsync, UnlockAsync est appelé sur le thread d’application main tandis que la plupart des autres appels aux fonctions de pilote d’affichage en mode utilisateur sont effectués sur un thread de travail (sur les ordinateurs à plusieurs processeurs).

Si un pilote d’affichage en mode utilisateur expose une version DDI de 0x0000000B ou supérieure (le pilote retourne cette valeur dans le membre DriverVersion de la structure D3D10DDIARG_OPENADAPTER dans un appel à la fonction OpenAdapter du pilote), le runtime Direct3D appelle UnlockAsync de manière réentrante. Lorsque le runtime appelle UnlockAsync de manière réentrante, un thread peut s’exécuter dans UnlockAsync , tandis qu’un autre thread qui référence le même périphérique d’affichage s’exécute à l’intérieur d’une autre fonction de pilote d’affichage en mode utilisateur.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête d3dumddi.h (inclure D3dumddi.h)

Voir aussi

D3DDDIARG_UNLOCKASYNC

D3DDDI_DEVICEFUNCS

LockAsync

Renommer

pfnUnlockCb