функция обратного вызова DXGKDDI_VIDPN_ASSIGNSOURCEMODESET (d3dkmddi.h)
Функция pfnAssignSourceModeSet назначает режим источника, заданный конкретному источнику в указанном VidPN.
Синтаксис
DXGKDDI_VIDPN_ASSIGNSOURCEMODESET DxgkddiVidpnAssignsourcemodeset;
NTSTATUS DxgkddiVidpnAssignsourcemodeset(
[in] IN_D3DKMDT_HVIDPN hVidPn,
[in] IN_CONST_D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId,
[in] IN_CONST_D3DKMDT_HVIDPNSOURCEMODESET hVidPnSourceModeSet
)
{...}
Параметры
[in] hVidPn
Дескриптор объекта VidPN. Ранее диспетчер VidPN предоставлял этот дескриптор драйверу мини-порта дисплея, вызвав DxgkDdiEnumVidPnCofuncModality или DxgkDdiRecommendFunctionalVidPn.
[in] VidPnSourceId
Целое число, идентифицирующее один из источников видео, связанных с объектом VidPN.
[in] hVidPnSourceModeSet
Дескриптор объекта набора исходного режима, который должен быть назначен источнику, определяемому VidPnSourceId. Драйвер мини-порта дисплея ранее получил этот дескриптор, вызвав pfnCreateNewSourceModeSet.
Возвращаемое значение
Функция pfnAssignSourceModeSet возвращает одно из следующих значений:
Код возврата | Описание |
---|---|
STATUS_SUCCESS | Функция выполнена успешно. |
STATUS_GRAPHICS_INVALID_VIDPN | Дескриптор, предоставленный в hVidPn, был недопустимым. |
STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE | Недопустимый идентификатор, указанный в VidPnSourceId. |
STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET | Дескриптор, предоставленный в hVidPnSourceModeSet, был недопустимым. |
STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET | Набор исходного режима, который вы пытаетесь назначить, не содержит режим, который уже был закреплен на источнике. |
Комментарии
Идентификаторы источника VidPN назначаются операционной системой. DxgkDdiStartDevice, реализованный драйвером мини-порта дисплея, возвращает число N источников видеотрансляции, поддерживаемых видеоадаптером. Затем операционная система назначает идентификаторы 0, 1, 2, ... N - 1.
Если вы получили дескриптор, вызвав pfnCreateNewSourceModeSet , а затем передайте этот дескриптор в pfnAssignSourceModeSet, вам не нужно освобождать дескриптор путем вызова pfnReleaseSourceModeSet.
Если вы получили дескриптор, вызвав pfnCreateNewSourceModeSet , а затем решили не назначать новый исходный режим для источника, необходимо освободить только что полученный дескриптор, вызвав pfnReleaseSourceModeSet.
pfnAssignSourceModeSet не освобождает объект набора исходного режима, если pfnAssignSourceModeSet завершается сбоем с недопустимым входным параметром (т. е. сбоем с кодом ошибки STATUS_GRAPHICS_INVALID_VIDPN, STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE или STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET), так как указанных параметров было недостаточно для операционной системы, чтобы определить, какой объект набора режима следует освободить. Такие ситуации с недопустимыми параметрами указывают на грубую ошибку кода в драйвере. Эту ошибку можно исправить, указав правильный дескриптор VidPN, идентификатор источника или дескриптор набора режима источника VidPN.
pfnAssignSourceModeSet освобождает объект набора исходного режима после успешной проверки всех входных параметров, если pfnAssignSourceModeSet завершается сбоем по одной из следующих причин:
- Набор исходного режима пуст.
- Набор режимов источника не содержит режим, закрепленный в предыдущем наборе режимов, если таковой имеется.
- Набор исходного режима не был создан для источника, определяемого VidPnSourceId.
Типы данных D3DKMDT_HVIDPN и D3DKMDT_HVIDPNSOURCEMODESET определены в D3dkmdt.h.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Целевая платформа | Персональный компьютер |
Верхняя часть | d3dkmddi.h (включая D3dkmddi.h) |
IRQL | PASSIVE_LEVEL |