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


Функция 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 of NDIS Miniport Drivers.

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

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

Драйверы могут регистрироваться в качестве объединенного драйвера минипорта и промежуточного драйвера. Чтобы зарегистрировать физический драйвер минипорта, драйвер miniport-intermediate вызывает 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