Поделиться через


Метод IDXGIResource::GetSharedHandle (dxgi.h)

[Начиная с Direct3D 11.1, рекомендуется больше не использовать GetSharedHandle для получения дескриптора к общему ресурсу. Вместо этого используйте IDXGIResource1::CreateSharedHandle , чтобы получить дескриптор для общего доступа. Чтобы использовать IDXGIResource1::CreateSharedHandle, необходимо создать ресурс как общий и указать, что в нем используются дескрипторы NT (то есть вы задали флаг D3D11_RESOURCE_MISC_SHARED_NTHANDLE ). Мы также рекомендуем создавать общие ресурсы, использующие дескрипторы NT, чтобы можно было использовать CloseHandle, DuplicateHandle и т. д. для этих общих ресурсов.]

Возвращает дескриптор общего ресурса.

Синтаксис

HRESULT GetSharedHandle(
  [out] HANDLE *pSharedHandle
);

Параметры

[out] pSharedHandle

Тип: HANDLE*

Указатель на дескриптор.

Возвращаемое значение

Тип: HRESULT

Возвращает одно из значений DXGI_ERROR .

Комментарии

GetSharedHandle возвращает дескриптор для ресурса, созданного как общий (то есть вы задаете D3D11_RESOURCE_MISC_SHARED с флагом D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX или без нее). Этот дескриптор можно передать методу ID3D11Device::OpenSharedResource , чтобы предоставить другому устройству доступ к общему ресурсу. Вы также можете маршалировать этот дескриптор в другой процесс, чтобы предоставить доступ к ресурсу устройству в другом процессе. Однако этот дескриптор не является дескриптором NT. Поэтому не используйте дескриптор с CloseHandle, DuplicateHandle и т. д.

Создатель общего ресурса не должен уничтожать ресурс до тех пор, пока все предполагаемые сущности не будут открыты. Допустимость дескриптора привязана к времени существования базовой видеопамяти. Если на устройствах, ссылающихся на этот ресурс, нет объектов ресурсов, дескриптор становится недействительным. Чтобы продлить время существования дескриптора и видеопамяти, необходимо открыть общий ресурс на устройстве.

GetSharedHandle также может возвращать дескрипторы для ресурсов, которые были переданы в ID3D11Device::OpenSharedResource , чтобы открыть эти ресурсы.

GetSharedHandle завершается сбоем, если ресурс, которому требуется получить дескриптор, не является общим.

Требования

   
Целевая платформа Windows
Header dxgi.h
Библиотека DXGI.lib

См. также раздел

IDXGIResource