Compartir a través de


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

La función de UnlockAsync desbloquea un recurso o una superficie dentro del recurso que el LockAsync función bloqueada 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 del recurso que se va a desbloquear.

Valor devuelto

UnlockAsync devuelve uno de los siguientes valores:

código de retorno 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.

Observaciones

Un controlador de pantalla en modo de usuario debe llamar a la función de pfnUnlockCb con el identificador de asignación adecuado después de llamar a la función de 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 de LockAsync, UnlockAsyncy Cambiar nombre funciones.

Al igual que LockAsync, se llama a UnlockAsync en el subproceso de aplicación principal, mientras que la mayoría de las llamadas al 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 driverVersion miembro 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 reentrante. Cuando el tiempo de ejecución llama a unlockAsync de una manera reentrante, un subproceso se puede ejecutar dentro de unlockAsync mientras otro subproceso que hace referencia al mismo dispositivo para mostrar se ejecuta dentro de otra función de controlador de pantalla en modo de usuario.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
de la plataforma de destino de Escritorio
encabezado de d3dumddi.h (incluya D3dumddi.h)

Consulte también

D3DDDIARG_UNLOCKASYNC

D3DDDI_DEVICEFUNCS

lockAsync

Cambiar nombre de

pfnUnlockCb