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


функция обратного вызова DXGKCB_ACQUIRE_POST_DISPLAY_OWNERSHIP (dispmprt.h)

Вызывается драйвером мини-порта дисплея Windows (WDDM) 1.2 или более поздней версии для получения сведений о дисплее с текущего устройства с самотестировщиком питания (POST) или ранее запущенным драйвером WDDM.

Драйвер должен использовать эти сведения для оптимизации начального запроса на изменение режима после запуска устройства отображения.

Синтаксис

DXGKCB_ACQUIRE_POST_DISPLAY_OWNERSHIP DxgkcbAcquirePostDisplayOwnership;

NTSTATUS DxgkcbAcquirePostDisplayOwnership(
  [in]  HANDLE DeviceHandle,
  [out] PDXGK_DISPLAY_INFORMATION DisplayInfo
)
{...}

Параметры

[in] DeviceHandle

Дескриптор, представляющий видеоадаптер. Драйвер мини-порта дисплея ранее получил этот дескриптор в элементе DeviceHandleструктуры DXGKRNL_INTERFACE , переданной в DxgkDdiStartDevice.

[out] DisplayInfo

Указатель на структуру DXGK_DISPLAY_INFORMATION , выделенную драйвером мини-порта дисплея. Если DxgkCbAcquirePostDisplayOwnership возвращает STATUS_SUCCESS, эта структура содержит сведения для отображения текущего устройства отображения, используемого для операций POST.

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

DxgkCbAcquirePostDisplayOwnership возвращает STATUS_SUCCESS в случае успешного выполнения. В противном случае возвращается один из кодов ошибок, определенных в ntstatus.h.

Комментарии

Допустимые цветовые форматы

Элемент DisplayInfo->ColorFormat должен содержать побитовое или сочетание следующих двух форматов:
  • D3DDDIFMT_X8R8G8B8
  • D3DDDIFMT_A8R8G8B8
Если операционная система возвращает D3DDDIFMT_R8G8B8 формат, драйвер мини-порта дисплея должен игнорировать его.

Инициализация цели представления видео

Возможно, элемент DisplayInfo->TargetId не инициализирован. В этом случае идентификатор целевого объекта показа видео — D3DDDI_ID_UNINITIALIZED. Обычно это происходит после загрузки системы.

Аналогичным образом возможно, что элемент DisplayInfo-AcpiId> не инициализирован. В этом случае идентификатор ACPI AcpiId имеет нулевое значение.

В случае обновления от драйвера к драйверу предыдущий драйвер предоставит целевой идентификатор и идентификатор ACPI.

Рекомендации по реализации

Начиная с версии WDDM 1.2, драйвер мини-порта дисплея должен следовать этим рекомендациям при вызове DxgkCbAcquirePostDisplayOwnership:
  • Точка входа для функции DxgkCbAcquirePostDisplayOwnership является частью структуры DXGKRNL_INTERFACE . Эта структура возвращается драйверу с помощью параметра DxgkInterface при вызове функции DxgkDdiStartDevice драйвера.
  • Драйвер мини-порта дисплея необязательно вызывает DxgkCbAcquirePostDisplayOwnership. Однако операционная система может по-прежнему вызывать функцию DxgkDdiStopDeviceAndReleasePostDisplayOwnership драйвера устройства, если драйвер ранее не вызывал DxgkCbAcquirePostDisplayOwnership.
  • Драйвер мини-порта дисплея может вызывать DxgkCbAcquirePostDisplayOwnership, если устройство запускается в ответ на событие Plug and Play (PnP). В этом случае драйвер должен вызвать DxgkCbAcquirePostDisplayOwnership из контекста вызова функции DxgkDdiStartDevice .
  • Драйвер мини-порта дисплея может вызывать DxgkCbAcquirePostDisplayOwnership , если устройство возобновляет состояние питания PowerDeviceD0 после состояния гибернации. В этом случае драйвер должен вызвать DxgkCbAcquirePostDisplayOwnership из контекста вызова функции DxgkDdiSetPowerState .
  • Драйвер мини-порта дисплея должен вызывать функцию DxgkCbAcquirePostDisplayOwnership, только если драйвер работает в Windows 8 или более поздней версии операционной системы Windows.
    Примечание Драйвер мини-порта дисплея может вызвать RtlGetVersion , чтобы определить версию операционной системы.
     
  • DxgkCbAcquirePostDisplayOwnership может возвращать DXGK_DISPLAY_INFORMATION структуру с элементом Width , равным нулю. Это означает, что текущее устройство отображения не поддерживает операции POST или операционная система не имеет текущих отображаемых сведений для текущего устройства POST.

Требования

Требование Значение
Минимальная версия клиента Windows 8
Минимальная версия сервера Windows Server 2012
Целевая платформа Персональный компьютер
Верхняя часть dispmprt.h (включая Dispmprt.h)
IRQL <= APC_LEVEL

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

DXGKRNL_INTERFACE

DXGK_DISPLAY_INFORMATION

DxgkDdiSetPowerState

DxgkDdiStartDevice

DxgkDdiStopDeviceAndReleasePostDisplayOwnership

RtlGetVersion