функция обратного вызова 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 , которая получает количество источников видеотрансляции, поддерживаемых видеоадаптером. Дополнительные сведения об источниках видеотрансляции см. в разделе Несколько мониторов и видеотрансляции сетей.
[out] NumberOfChildren
Указатель на переменную 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.
- Сопоставьте ресурсы памяти с системным пространством, вызвав функцию DxgkCbMapMemory .
- Инициализируйте блок контекста, представленный MiniportDeviceContext , с любым состоянием, необходимым для подготовки оборудования к приему запросов ввода-вывода.
- Задайте для numberOfVideoPresentSources количество источников видеотрансляции, поддерживаемых видеоадаптером, представленным MiniportDeviceContext.
- Задайте для numberOfChildren число устройств, которые являются (или могут стать) дочерними элементами видеоадаптера, представленного MiniportDeviceContext.
- Включите прерывания для видеоадаптера, представленного MiniportDeviceContext.
Функцию DxgkDdiStartDevice следует сделать страничной.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows Vista. |
Целевая платформа | Персональный компьютер |
Верхняя часть | dispmprt.h |
IRQL | PASSIVE_LEVEL |