Метод 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 |