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

Функция DxgkDdiAddDevice создает блок контекста для видеоадаптера и возвращает дескриптор, представляющий видеоадаптер.

Синтаксис

DXGKDDI_ADD_DEVICE DxgkddiAddDevice;

NTSTATUS DxgkddiAddDevice(
  [in]  IN_CONST_PDEVICE_OBJECT PhysicalDeviceObject,
  [out] OUT_PPVOID MiniportDeviceContext
)
{...}

Параметры

[in] PhysicalDeviceObject

Указатель на объект физического устройства (PDO), который идентифицирует видеоадаптер.

[out] MiniportDeviceContext

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

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

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

Комментарии

Функция DxgkDdiAddDevice выделяет блок частного контекста, связанный с видеоадаптером, определенным PhysicalDeviceObject. Дескриптор, возвращенный в MiniportDeviceContext , можно представить как дескриптор адаптера дисплея или как дескриптор для блока контекста, связанного с адаптером дисплея. Подсистема ядра графики DirectX (Dxgkrnl.sys) будет предоставлять дескриптор в последующих вызовах драйвера мини-порта дисплея. В следующем списке приведены примеры различных компонентов Dxgkrnl.sys передачи дескриптора в функции, реализованные драйвером мини-порта дисплея.

  • Драйвер порта отображения предоставляет дескриптор в параметре MiniportDeviceContext функции DxgkDdiStartDevice .

  • Диспетчер VidPN предоставляет дескриптор в параметре hAdapter функции DxgkDdiIsSupportedVidPn .

  • Графическое ядро DirectX предоставляет дескриптор в параметре hAdapter функции DxgkDdiQueryAdapterInfo .

Не следует путать тот факт, что иногда дескриптор называется MiniportDeviceContext , а иногда — hAdapter. Кроме того, не следует путать этот дескриптор с параметром hDevice , который передается определенным функциям драйвера мини-порта дисплея.

DxgkDdiAddDevice вызывается для одного устройства в последовательном ряде. Его поведение аналогично стандартному обратному вызову DRIVER_ADD_DEVICE для драйверов режима ядра WDM.

Некоторые карты видеоадаптеров имеют две или более функций PCI, которые играют роль видеоадаптера. Например, некоторые старые карты реализуют несколько представлений, имея отдельную функцию PCI для каждого представления. Драйвер порта дисплея вызывает DxgkDdiAddDevice один раз для каждой из этих функций PCI. В это время драйвер мини-порта дисплея может указать, что он поддерживает функцию PCI (установив для MiniportDeviceContext ненулевое значение) или что он не поддерживает функцию PCI (установив для MiniportDeviceContext значение NULL). Чтобы получить сведения о конкретной функции PCI, драйвер мини-порта дисплея может передать PhysicalDeviceObject в IoGetDeviceProperty.

В DxgkDdiRemoveDevice освободите блок контекста и все другие ресурсы, выделенные во время DxgkDdiAddDevice.

Функция DxgkDdiAddDevice должна быть выгружаемой.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Целевая платформа Персональный компьютер
Верхняя часть dispmprt.h
IRQL PASSIVE_LEVEL

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

DxgkDdiRemoveDevice

DxgkDdiStartDevice