DriverEntry функции видео miniport Driver

DriverEntry — это начальная точка входа в драйвер видео минипорта.

Синтаксис

ULONG DriverEntry(
  _In_ PVOID Context1,
  _In_ PVOID Context2
);

Параметры

Context1 [in] Указатель на значение контекста, с которым драйвер мини-порта должен вызывать VideoPortInitialize. Это значение контекста определяет объект драйвера, созданный системой для этого драйвера мини-порта.

Context2 [in] — указатель на второе значение контекста, с помощью которого драйвер мини-порта должен вызвать VideoPortInitialize. Это значение контекста определяет путь к реестру для этого драйвера мини-порта.

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

DriverEntry возвращает значение, возвращаемое VideoPortInitialize.

Комментарии

Каждый драйвер мини-порта должен иметь функцию с явным именем DriverEntry для загрузки. DriverEntry вызывается непосредственно системой ввода-вывода.

DriverEntry должен выполнить следующие действия:

  • Выделите память в стеке для структуры VIDEO_HW_INITIALIZATION_DATA и вызовите VideoPortZeroMemory , чтобы инициализировать ее с нуля.

  • Заполните значения, относящиеся к драйверу и адаптеру, в элементах VIDEO_HW_INITIALIZATION_DATA, включая точки входа драйвера мини-порта. Следующие точки входа должны быть заданы для подпрограммы, предоставляемой драйвером мини-порта:

    HwVidFindAdapter

    HwVidInitialize

    HwVidStartIO

    HwVidInterrupt

    HwVidQueryInterface

    HwVidGetVideoChildDescriptor

    HwVidGetPowerState

    HwVidSetPowerState

  • Если оборудование драйвера поддерживает устаревшие ресурсы, драйвер должен сообщить о них. DriverEntry должен выполнять следующие действия, если список ресурсов известен во время компиляции драйвера:

    • Запросить и сообщить обо всех таких ресурсах в элементах HwLegacyResourceList и HwLegacyResourceCount структуры VIDEO_HW_INITIALIZATION_DATA . Устаревшие ресурсы — это ресурсы, не перечисленные в пространстве конфигурации PCI устройства, но декодированные устройством.
    • Заполните поле RangePassive соответствующим образом для каждой VIDEO_ACCESS_RANGE структуры, определенной в драйвере мини-порта.

    Если устаревший список ресурсов не может быть определен до времени выполнения, драйвер должен вместо этого реализовать функцию HwVidLegacyResources , чтобы сообщить о них.

  • Вызовите VideoPortInitialize, передав Context1 и Context2 в качестве первых двух параметров, указатель на структуру VIDEO_HW_INITIALIZATION_DATA в качестве третьего параметра и NULL в качестве четвертого параметра.

DriverEntry должен распространять значение, возвращаемое VideoPortInitialize , обратно вызывающей стороне.

Если DriverEntry запрашивает ресурсы, он должен включать только те ресурсы, которые декодирует оборудование, но которые не утверждаются PCI. Драйвер мини-порта может снова "освободить" эти устаревшие ресурсы в последующих вызовах VideoPortVerifyAccessRanges; однако драйвер видеопорта просто игнорирует запросы для таких ранее запрошенных ресурсов. Управление питанием и закрепление будут отключены в системе, если драйвер мини-порта пытается запросить устаревший диапазон доступа в VideoPortVerifyAccessRanges , который ранее не был заявлен в элементе HwLegacyResourceListструктуры VIDEO_HW_INITIALIZATION_DATA во время DriverEntry (или в HwVidLegacyResources, если он реализован).

Для драйверов Microsoft Windows 2000 и более поздних версий, которые также поддерживают компьютеры под управлением Windows NT 4.0, константы конфигурации оборудования определяются в файле video.h. Эти константы описаны в следующей таблице.

Константа Значение

SIZE_OF_NT4_VIDEO_PORT_CONFIG_INFO

Размер (в байтах) структуры Windows NT 4.0 VIDEO_PORT_CONFIG_INFO.

SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA

Размер структуры VIDEO_HW_INITIALIZATION_DATA Windows NT 4.0 в байтах. Если VideoPortInitialize завершается сбоем, драйвер видео минипорта должен задать член HwInitDataSize структуры VIDEO_HW_INITIALIZATION_DATA размер либо windows 2000 (и более поздних версий) этой структуры, либо Windows NT версии 4.0. Выберите соответствующий размер структуры в соответствии с версией операционной системы, в которой будет работать драйвер мини-порта. Затем драйвер видео минипорта должен снова вызвать VideoPortInitialize . Пример использования см. в примерах видеодрайва минипорта, которые были включены в пакет средств разработки драйверов Windows (DDK).

SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA

Размер (в байтах) windows 2000 и более поздних версий VIDEO_HW_INITIALIZATION_DATA структуры.

SIZE_OF_WXP_VIDEO_HW_INITIALIZATION_DATA

Размер (в байтах) Windows Vista и более поздних версий VIDEO_HW_INITIALIZATION_DATA структуры.

SIZE_OF_WXP_VIDEO_PORT_CONFIG_INFO

Размер структуры VIDEO_PORT_CONFIG_INFO Windows Vista (в байтах).

DriverEntry следует сделать страничной.

Требования

Целевая платформа

Персональный компьютер

Заголовок

Video.h (включая Video.h)

Библиотека

NtosKrnl.lib

DLL

NtosKrnl.exe

См. также

HwVidFindAdapter

HwVidLegacyResources

VIDEO_HW_INITIALIZATION_DATA

VideoPortInitialize

VideoPortVerifyAccessRanges

VideoPortZeroMemory