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
S_OK
Erfolg.
E_HANDLE
Der angegebene Handle ist kein Direct3D-Gerätehandle.
MF_E_DXGI_DEVICE_NOT_INITIALIZED
Die DXGI-Geräte-Manager wurde nicht initialisiert. Der Besitzer des Geräts muss IMFDXGIDeviceManager::ResetDevice aufrufen.
MF_E_DXGI_NEW_VIDEO_DEVICE
Das Gerätehandle ist ungültig.
MF_E_DXGI_VIDEO_DEVICE_LOCKED
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)

Weitere Informationen

IMFDXGIDeviceManager