Функция NdisMRegisterMiniportDriver (ndis.h)

Драйвер минипорта вызывает функцию NdisMRegisterMiniportDriver для регистрации точек входа MiniportXxx с NDIS в качестве первого шага при инициализации.

Синтаксис

NDIS_STATUS NdisMRegisterMiniportDriver(
  [in]           PDRIVER_OBJECT                        DriverObject,
  [in]           PUNICODE_STRING                       RegistryPath,
  [in, optional] NDIS_HANDLE                           MiniportDriverContext,
  [in]           PNDIS_MINIPORT_DRIVER_CHARACTERISTICS MiniportDriverCharacteristics,
  [out]          PNDIS_HANDLE                          NdisMiniportDriverHandle
);

Параметры

[in] DriverObject

Указатель на непрозрачный объект драйвера, полученный драйвером мини-порта в подпрограмме DriverEntry в параметре Argument1 (см. driverEntry of NDIS Miniport Drivers).

[in] RegistryPath

Указатель на непрозрачный путь реестра, полученный драйвером мини-порта в подпрограмме DriverEntry в параметре Argument2 .

[in, optional] MiniportDriverContext

Дескриптор области контекста, выделенной драйвером, где драйвер хранит сведения о состоянии и конфигурации.

[in] MiniportDriverCharacteristics

Указатель на NDIS_MINIPORT_DRIVER_CHARACTERISTICS структуру, которую инициализировал вызывающий объект.

[out] NdisMiniportDriverHandle

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

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

NdisMRegisterMiniportDriver возвращает одно из следующих значений состояния:

Код возврата Описание
NDIS_STATUS_SUCCESS

NdisMRegisterMiniportDriver успешно зарегистрировал драйвер мини-порта.

NDIS_STATUS_BAD_CHARACTERISTICS
Параметр CharacteristicsLength неверен для версии NDIS, указанной в элементе MajorNdisVersion в структуре в MiniportDriverCharacteristics .
NDIS_STATUS_BAD_VERSION
Параметр MajorNdisVersion или MinorNdisVersion , указанный в структуре характеристик, недопустим.
NDIS_STATUS_RESOURCES
Нехватка ресурсов, возможно, памяти, не позволила NDIS зарегистрировать вызывающий объект.
NDIS_STATUS_FAILURE
Это состояние ошибки по умолчанию, возвращаемое, если ни одна из предыдущих ошибок не привела к сбою регистрации.

Комментарии

Драйвер NDIS вызывает NdisMRegisterMiniportDriver из своей подпрограммы DriverEntry . Дополнительные сведения см. в разделе DriverEntry драйверов минипорта NDIS.

Каждый драйвер минипорта экспортирует набор стандартных функций MiniportXxx, настроив структуру характеристик и вызвав NdisMRegisterMiniportDriver. NDIS копирует структуру характеристик во внутреннее хранилище NDIS. Поэтому после регистрации драйвер не может изменить точки входа MiniportXxxx .

Чтобы зарегистрировать интерфейс виртуального минипорта, промежуточные драйверы NDIS должны вызвать NdisMRegisterMiniportDriver с флагом NDIS_INTERMEDIATE_DRIVER, установленным в структуре в MiniportDriverCharacteristics . Драйверы NDIS с нижним краем WDM должны вызывать NdisMRegisterMiniportDriver с флагом NDIS_WDM_DRIVER, установленным в структуре в MiniportDriverCharacteristics .

Драйверы могут регистрироваться в качестве объединенного драйвера минипорта и промежуточного драйвера. Чтобы зарегистрировать свой физический драйвер минипорта, минипорт-промежуточный драйвер вызывает NdisMRegisterMiniportDriver с соответствующими параметрами так же, как для любого драйвера минипорта. Чтобы зарегистрировать интерфейс виртуального минипорта, драйвер снова вызывает NdisMRegisterMiniportDriver , но с флагом NDIS_INTERMEDIATE_DRIVER, установленным в параметре MiniportDriverCharacteristics .

Чтобы разрешить драйверам минипорта регистрировать необязательные службы, NDIS вызывает функцию MiniportSetOptions в контексте NdisMRegisterMiniportDriver.

После вызова драйвера NdisMRegisterMiniportDriver драйвер должен быть готов к вызову в функции MiniportInitializeEx , указанной в параметре MiniportDriverCharacteristics в любое время после возврата DriverEntry.

Если ошибка возникает в DriverEntry после успешного возврата NdisMRegisterMiniportDriver , драйвер должен вызвать Функция NdisMDeregisterMiniportDriver до возврата DriverEntry . Если DriverEntry выполнен успешно, драйвер должен вызвать NdisMDeregisterMiniportDriver из функции MiniportDriverUnload .

Требования

   
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версий.
Целевая платформа Универсальное
Заголовок ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL PASSIVE_LEVEL
Правила соответствия DDI Irql_Miniport_Driver_Function(ndis)

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

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

DriverEntry

MiniportDriverUnload

MiniportInitializeEx

MiniportSetOptions

NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver