Méthode IMFDXGIDeviceManager ::LockDevice (mfobjects.h)
Donne à l’appelant un accès exclusif à l’appareil Microsoft Direct3D.
Syntaxe
HRESULT LockDevice(
[in] HANDLE hDevice,
[in] REFIID riid,
[out] void **ppUnkDevice,
[in] BOOL fBlock
);
Paramètres
[in] hDevice
Handle de l’appareil Direct3D. Pour obtenir le handle d’appareil, appelez IMFDXGIDeviceManager ::OpenDeviceHandle.
[in] riid
Identificateur d'interface (IID) de l'interface demandée. L’appareil Direct3D prend en charge les interfaces suivantes :
[out] ppUnkDevice
Reçoit un pointeur vers l’interface demandée. L’appelant doit libérer l’interface.
[in] fBlock
Spécifie s’il faut attendre le verrouillage de l’appareil. Si l’appareil est déjà verrouillé et que ce paramètre a la valeur TRUE, la méthode se bloque jusqu’à ce que l’appareil soit déverrouillé. Sinon, si l’appareil est verrouillé et que ce paramètre a la valeur FALSE, la méthode retourne immédiatement avec le code d’erreur DXVA2_E_VIDEO_DEVICE_LOCKED.
Valeur retournée
Cette méthode peut retourner l’une de ces valeurs.
Code de retour | Description |
---|---|
|
Réussite. |
|
Le handle spécifié n’est pas un handle d’appareil Direct3D. |
|
Le Gestionnaire de périphériques DXGI n’a pas été initialisé. Le propriétaire de l’appareil doit appeler IMFDXGIDeviceManager ::ResetDevice. |
|
Le handle d’appareil n’est pas valide. |
|
L’appareil est verrouillé et fBlock a la valeur FALSE. |
Remarques
Lorsque vous avez terminé d’utiliser l’appareil Direct3D, appelez IMFDXGIDeviceManager ::UnlockDevice pour déverrouiller l’appareil.
Si la méthode retourne MF_E_DXGI_NEW_VIDEO_DEVICE, appelez IMFDXGIDeviceManager ::CloseDeviceHandle pour fermer le handle, puis appelez à nouveau OpenDeviceHandle pour obtenir un nouveau handle. La méthode IMFDXGIDeviceManager ::ResetDevice invalide tous les handles d’appareil ouverts.
Si fBlock a la valeur TRUE, cette méthode peut potentiellement se bloquer. Par exemple, il se bloque si un thread appelle LockDevice , puis attend sur un autre thread qui appelle LockDevice. Il se bloque également si un thread appelle LockDevice deux fois sans appeler UnlockDevice entre les deux.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2012 [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | mfobjects.h (inclure Mfidl.h) |