IMFDXGIDeviceManager::LockDevice-Methode (mfobjects.h)
Gewährt dem Anrufer exklusiven Zugriff auf das Microsoft Direct3D-Gerät.
Syntax
HRESULT LockDevice(
[in] HANDLE hDevice,
[in] REFIID riid,
[out] void **ppUnkDevice,
[in] BOOL fBlock
);
Parameter
[in] hDevice
Ein Handle für das Direct3D-Gerät. Um das Gerätehandle abzurufen, rufen Sie IMFDXGIDeviceManager::OpenDeviceHandle auf.
[in] riid
Der Schnittstellenbezeichner (Interface Identifier, IID) der angeforderten Schnittstelle. Das Direct3D-Gerät unterstützt die folgenden Schnittstellen:
[out] ppUnkDevice
Empfängt einen Zeiger auf die angeforderte Schnittstelle. Der Aufrufer muss die Schnittstelle freigeben.
[in] fBlock
Gibt an, ob auf die Gerätesperre gewartet werden soll. Wenn das Gerät bereits gesperrt ist und dieser Parameter TRUE ist, blockiert die -Methode, bis das Gerät entsperrt wird. Andernfalls gibt die Methode sofort mit dem Fehlercode DXVA2_E_VIDEO_DEVICE_LOCKED zurück, wenn das Gerät gesperrt ist und dieser Parameter FALSE ist.
Rückgabewert
Diese Methode kann einen dieser Werte zurückgeben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Erfolg. |
|
Der angegebene Handle ist kein Direct3D-Gerätehandle. |
|
Die DXGI-Geräte-Manager wurde nicht initialisiert. Der Besitzer des Geräts muss IMFDXGIDeviceManager::ResetDevice aufrufen. |
|
Das Gerätehandle ist ungültig. |
|
Das Gerät ist gesperrt, und fBlock ist FALSE. |
Hinweise
Wenn Sie mit dem Direct3D-Gerät fertig sind, rufen Sie IMFDXGIDeviceManager::UnlockDevice auf, um das Gerät zu entsperren.
Wenn die Methode MF_E_DXGI_NEW_VIDEO_DEVICE zurückgibt, rufen Sie IMFDXGIDeviceManager::CloseDeviceHandle auf, um das Handle zu schließen, und rufen Sie dann Erneut OpenDeviceHandle auf, um ein neues Handle abzurufen. Die IMFDXGIDeviceManager::ResetDevice-Methode ungültigiert alle geöffneten Gerätehandles.
Wenn fBlockTRUE ist, kann diese Methode möglicherweise einen Deadlock aufweisen. Beispielsweise wird ein Deadlock ausgeführt, wenn ein Thread LockDevice aufruft und dann auf einem anderen Thread wartet, der LockDevice aufruft. Es wird auch ein Deadlock ausgeführt, wenn ein Thread LockDevice zweimal aufruft , ohne zwischengeschaltete UnlockDevice aufzurufen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | mfobjects.h (include Mfidl.h) |