Método IMFDXGIDeviceManager::LockDevice (mfobjects.h)
Proporciona al autor de la llamada acceso exclusivo al dispositivo Microsoft Direct3D.
Sintaxis
HRESULT LockDevice(
[in] HANDLE hDevice,
[in] REFIID riid,
[out] void **ppUnkDevice,
[in] BOOL fBlock
);
Parámetros
[in] hDevice
Identificador del dispositivo Direct3D. Para obtener el identificador del dispositivo, llame a IMFDXGIDeviceManager::OpenDeviceHandle.
[in] riid
Identificador de interfaz (IID) de la interfaz solicitada. El dispositivo Direct3D admitirá las siguientes interfaces:
[out] ppUnkDevice
Recibe un puntero a la interfaz solicitada. El autor de la llamada debe liberar la interfaz .
[in] fBlock
Especifica si se debe esperar el bloqueo del dispositivo. Si el dispositivo ya está bloqueado y este parámetro es TRUE, el método se bloquea hasta que se desbloquea el dispositivo. De lo contrario, si el dispositivo está bloqueado y este parámetro es FALSE, el método devuelve inmediatamente con el código de error DXVA2_E_VIDEO_DEVICE_LOCKED.
Valor devuelto
Este método puede devolver uno de estos valores.
Código devuelto | Descripción |
---|---|
|
Correcto. |
|
El identificador especificado no es un identificador de dispositivo Direct3D. |
|
El Administrador de dispositivos DXGI no se inicializó. El propietario del dispositivo debe llamar a IMFDXGIDeviceManager::ResetDevice. |
|
El identificador del dispositivo no es válido. |
|
El dispositivo está bloqueado y fBlock es FALSE. |
Comentarios
Cuando haya terminado de usar el dispositivo Direct3D, llame a IMFDXGIDeviceManager::UnlockDevice para desbloquear el dispositivo.
Si el método devuelve MF_E_DXGI_NEW_VIDEO_DEVICE, llame a IMFDXGIDeviceManager::CloseDeviceHandle para cerrar el identificador y, a continuación, llame a OpenDeviceHandle de nuevo para obtener un nuevo identificador. El método IMFDXGIDeviceManager::ResetDevice invalida todos los identificadores de dispositivo abiertos.
Si fBlock es TRUE, este método puede interbloquear potencialmente. Por ejemplo, se interbloqueará si un subproceso llama a LockDevice y, a continuación, espera en otro subproceso que llama a LockDevice. También se interbloqueará si un subproceso llama a LockDevice dos veces sin llamar a UnlockDevice entre sí.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2012 [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | mfobjects.h (include Mfidl.h) |