Compartir a través de


PFND3DDDI_UNLOCKASYNC función de devolución de llamada (d3dumddi.h)

La función UnlockAsync desbloquea un recurso o una superficie dentro del recurso que la función LockAsync bloqueó anteriormente.

Sintaxis

PFND3DDDI_UNLOCKASYNC Pfnd3dddiUnlockasync;

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

Parámetros

hDevice

Identificador de un dispositivo de visualización (es decir, el contexto de gráficos).

unnamedParam2

pData [in]

Puntero a una estructura de D3DDDIARG_UNLOCKASYNC que describe el recurso o la superficie dentro del recurso que se va a desbloquear.

Valor devuelto

UnlockAsync devuelve uno de los valores siguientes:

Código devuelto Descripción
S_OK El recurso se desbloquea correctamente.
E_OUTOFMEMORY UnlockAsync no pudo asignar la memoria necesaria para que se complete.
E_INVALIDARG El recurso que D3DDDIARG_UNLOCKASYNC describe no estaba bloqueado por una llamada anterior a la función LockAsync del controlador.

Comentarios

Un controlador de pantalla en modo de usuario debe llamar a la función pfnUnlockCb con el identificador de asignación adecuado después de llamar a la función UnlockAsync .

Opcionalmente, un controlador de pantalla en modo de usuario implementa UnlockAsync; El tiempo de ejecución de Microsoft Direct3D llama a UnlockAsync solo si el controlador implementa las funciones LockAsync, UnlockAsync y Rename .

Al igual que LockAsync, se llama a UnlockAsync en el subproceso de aplicación principal, mientras que la mayoría de las demás llamadas a las funciones de controlador de pantalla en modo de usuario se realizan en un subproceso de trabajo (en equipos con varios procesadores).

Si un controlador de pantalla en modo de usuario expone una versión DDI de 0x0000000B o superior (el controlador devuelve este valor en el miembro DriverVersion de la estructura D3D10DDIARG_OPENADAPTER en una llamada a la función OpenAdapter del controlador), el tiempo de ejecución de Direct3D llamará a UnlockAsync de forma reentrant. Cuando el tiempo de ejecución llama a UnlockAsync de forma reentrant, un subproceso se puede ejecutar dentro de UnlockAsync mientras que otro subproceso que hace referencia al mismo dispositivo de visualización se ejecuta dentro de otra función de controlador de pantalla en modo de usuario.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Escritorio
Encabezado d3dumddi.h (incluya D3dumddi.h)

Consulte también

D3DDDIARG_UNLOCKASYNC

D3DDDI_DEVICEFUNCS

LockAsync

Cambiar nombre

pfnUnlockCb