IDXGIResource::GetSharedHandle-Methode (dxgi.h)
[Ab Direct3D 11.1 wird empfohlen, getSharedHandle nicht mehr zu verwenden, um das Handle für eine freigegebene Ressource abzurufen. Verwenden Sie stattdessen IDXGIResource1::CreateSharedHandle , um ein Handle für die Freigabe zu erhalten. Um IDXGIResource1::CreateSharedHandle zu verwenden, müssen Sie die Ressource als freigegeben erstellen und angeben, dass sie NT-Handles verwendet (d. h. Sie legen das D3D11_RESOURCE_MISC_SHARED_NTHANDLE-Flag fest). Außerdem wird empfohlen, freigegebene Ressourcen zu erstellen, die NT-Handles verwenden, damit Sie CloseHandle, DuplicateHandle usw. für diese freigegebenen Ressourcen verwenden können.]
Ruft das Handle für eine freigegebene Ressource ab.
Syntax
HRESULT GetSharedHandle(
[out] HANDLE *pSharedHandle
);
Parameter
[out] pSharedHandle
Typ: HANDLE*
Ein Zeiger auf ein Handle.
Rückgabewert
Typ: HRESULT
Gibt einen der DXGI_ERROR Werte zurück.
Hinweise
GetSharedHandle gibt ein Handle für die Ressource zurück, die Sie als freigegeben erstellt haben (d. a. Sie legen die D3D11_RESOURCE_MISC_SHARED mit oder ohne das flag D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX fest). Sie können dieses Handle an die ID3D11Device::OpenSharedResource-Methode übergeben, um einem anderen Gerät Zugriff auf die freigegebene Ressource zu gewähren. Sie können dieses Handle auch in einem anderen Prozess marshallen, um eine Ressource für ein Gerät in einem anderen Prozess freizugeben. Dieses Handle ist jedoch kein NT-Handle. Verwenden Sie daher das Handle nicht mit CloseHandle, DuplicateHandle usw.
Der Ersteller einer freigegebenen Ressource darf die Ressource erst zerstören, wenn alle beabsichtigten Entitäten die Ressource geöffnet haben. Die Gültigkeit des Handles ist an die Lebensdauer des zugrunde liegenden Videospeichers gebunden. Wenn auf Geräten, die auf diese Ressource verweisen, keine Ressourcenobjekte vorhanden sind, ist das Handle nicht mehr gültig. Um die Lebensdauer des Handles und des Videospeichers zu verlängern, müssen Sie die freigegebene Ressource auf einem Gerät öffnen.
GetSharedHandle kann auch Handles für Ressourcen zurückgeben, die an ID3D11Device::OpenSharedResource übergeben wurden, um diese Ressourcen zu öffnen.
GetSharedHandle schlägt fehl, wenn die Ressource, für die ein Handle abgerufen werden soll, nicht freigegeben ist.
Anforderungen
Zielplattform | Windows |
Kopfzeile | dxgi.h |
Bibliothek | DXGI.lib |