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


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

Функция dxgkDdiStartDevice подготавливает адаптер дисплея для получения запросов ввода-вывода.

Синтаксис

DXGKDDI_START_DEVICE DxgkddiStartDevice;

NTSTATUS DxgkddiStartDevice(
  [in]  IN_CONST_PVOID MiniportDeviceContext,
  [in]  IN_PDXGK_START_INFO DxgkStartInfo,
  [in]  IN_PDXGKRNL_INTERFACE DxgkInterface,
  [out] OUT_PULONG NumberOfVideoPresentSources,
  [out] OUT_PULONG NumberOfChildren
)
{...}

Параметры

[in] MiniportDeviceContext

Дескриптор для блока контекста, связанного с адаптером отображения. Функция драйвера минипорта отображения DxgkDdiAddDevice ранее предоставила этот дескриптор подсистеме ядра графики DirectX.

[in] DxgkStartInfo

Указатель на структуру DXGK_START_INFO, содержащую сведения, необходимые драйверу мини-порта для инициализации.

[in] DxgkInterface

Указатель на структуру DXGKRNL_INTERFACE, содержащую указатели на функции, реализованную подсистемой ядра графики DirectX, которую может вызвать драйвер мини-порта отображения.

[out] NumberOfVideoPresentSources

Указатель на переменную ULONG ULONG, которая получает количество источников видео, поддерживаемых адаптером отображения. Дополнительные сведения о источниках представления видео см. в нескольких мониторов и сетей представления видео.

[out] NumberOfChildren

Указатель на переменную ULONG ULONG, которая получает общее количество устройств, которые являются дочерними адаптерами дисплея, представленными MiniportDeviceContext. Это число должно включать потенциальные дочерние устройства, а также дочерние устройства, которые в настоящее время присутствуют. Например, если при закреплении переносимого компьютера будут доступны дополнительные выходные данные видео, эти выходные данные видео должны быть подсчитаны независимо от того, закреплен ли переносимый компьютер в настоящее время. Дополнительные сведения о дочерних устройствах см. в дочерних устройствахадаптера отображения.

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

DxgkDdiStartDevice возвращает STATUS_SUCCESS, если он выполнен успешно; в противном случае возвращается один из кодов ошибок, определенных в Ntstatus.h.

Замечания

Функция DxgkDdiStartDevice должна выполнять следующие действия:

  • Сохраните указатели функции, предоставленные структурой DXGKRNL_INTERFACE, переданной параметру DxgkInterface. Кроме того, сохраните элемент DeviceHandle структуры DXGKRNL_INTERFACE; Этот дескриптор потребуется для обратного вызова в подсистему ядра графики DirectX.
  • Выделите структуру DXGK_DEVICE_INFO и вызовите DxgkCbGetDeviceInformation для заполнения элементов этой структуры, включая путь реестра, PDO и список переведенных ресурсов для адаптера отображения, представленного MiniportDeviceContext. Сохраните выбранные элементы (те, которые потребуется драйверу минипорта отображения) структуры DXGK_DEVICE_INFO в блоке контекста, представленном MiniportDeviceContext.
  • Сопоставить ресурсы памяти с системным пространством, вызвав функцию DxgkCbMapMemor y.
  • Инициализировать блок контекста, представленный MiniportDeviceContext с любым состоянием, необходимым для подготовки оборудования для получения запросов ввода-вывода.
  • Задайте NumberOfVideoPresentSources количество источников видео, поддерживаемых адаптером отображения, представленным MiniportDeviceContext.
  • Задайте NumberOfChildren количество устройств, которые являются (или могут стать) дочерними элементами адаптера дисплея, представленным MiniportDeviceContext.
  • Включите прерывания для адаптера отображения, представленного MiniportDeviceContext.
Начиная с модели драйвера windows (WDDM) 1.2, драйвер мини-порта дисплея вызывает функцию DxgkCbAcquirePostDisplayOwnership, чтобы получить сведения о режиме отображения, который ранее был задан встроенного ПО и системным загрузчиком. Если DxgkCbAcquirePostDisplayOwnership возвращается с STATUS_SUCCESS, драйвер определяет, нужно ли повторно инициализировать отображение на основе сведений о режиме отображения, возвращенных с помощью параметра DisplayInfo. В противном случае драйвер не должен предполагать, что на устройстве включен какой-либо определенный режим отображения, и он должен инициализировать дисплей.

Функция DxgkDdiStartDevice должна быть выполнена на страницу.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows Vista.
целевая платформа Настольный
заголовка dispmprt.h
IRQL PASSIVE_LEVEL

См. также

DXGKRNL_INTERFACE

DXGK_DEVICE_INFO

DxgkCbAcquirePostDisplayOwnership

DxgkCbGetDeviceInformation

DxgkCbMapMemory

DxgkDdiAddDevice

DxgkDdiStopDevice