Metodo IMFDXGIDeviceManager::LockDevice (mfobjects.h)
Concede al chiamante l'accesso esclusivo al dispositivo Microsoft Direct3D.
Sintassi
HRESULT LockDevice(
[in] HANDLE hDevice,
[in] REFIID riid,
[out] void **ppUnkDevice,
[in] BOOL fBlock
);
Parametri
[in] hDevice
Handle per il dispositivo Direct3D. Per ottenere l'handle del dispositivo, chiamare IMFDXGIDeviceManager::OpenDeviceHandle.
[in] riid
Identificatore di interfaccia (IID) dell'interfaccia richiesta. Il dispositivo Direct3D supporterà le interfacce seguenti:
[out] ppUnkDevice
Riceve un puntatore all'interfaccia richiesta. Il chiamante deve rilasciare l'interfaccia.
[in] fBlock
Specifica se attendere il blocco del dispositivo. Se il dispositivo è già bloccato e questo parametro è TRUE, il metodo si blocca fino a quando il dispositivo non viene sbloccato. In caso contrario, se il dispositivo è bloccato e questo parametro è FALSE, il metodo restituisce immediatamente con il codice di errore DXVA2_E_VIDEO_DEVICE_LOCKED.
Valore restituito
Questo metodo può restituire uno di questi valori.
Codice restituito | Descrizione |
---|---|
|
Operazione completata. |
|
L'handle specificato non è un handle del dispositivo Direct3D. |
|
La Gestione dispositivi DXGI non è stata inizializzata. Il proprietario del dispositivo deve chiamare IMFDXGIDeviceManager::ResetDevice. |
|
L'handle del dispositivo non è valido. |
|
Il dispositivo è bloccato e fBlock è FALSE. |
Commenti
Al termine dell'uso del dispositivo Direct3D, chiamare IMFDXGIDeviceManager::UnlockDevice per sbloccare il dispositivo.
Se il metodo restituisce MF_E_DXGI_NEW_VIDEO_DEVICE, chiamare IMFDXGIDeviceManager::CloseDeviceHandle per chiudere l'handle e quindi chiamare nuovamente OpenDeviceHandle per ottenere un nuovo handle. Il metodo IMFDXGIDeviceManager::ResetDevice invalida tutti gli handle di dispositivo aperti.
Se fBlock è TRUE, questo metodo può potenzialmente causare deadlock. Ad esempio, si verifica un deadlock se un thread chiama LockDevice e quindi attende su un altro thread che chiama LockDevice. Inoltre, se un thread chiama LockDevice due volte senza chiamare UnlockDevice tra.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2012 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | mfobjects.h (include Mfidl.h) |