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


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

Драйвер минипорта вызывает функцию NdisMRegisterMiniportDriver, чтобы зарегистрировать MiniportXx точки входа с помощью 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 DriverEntry в параметре Argument1 (см. раздел DriverEntry NDIS Miniport Driver).

[in] RegistryPath

Указатель на непрозрачный путь реестра, который драйвер минипорта получил в подпрограмме driverEntry 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 Miniport Driver.

Каждый драйвер минипорта экспортирует набор стандартных функций MiniportXx путем настройки структуры характеристик и вызова 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 после успешного возврата NdisMRegisterMiniportDrive r, драйвер должен вызвать функции NdisMDeregisterMiniportDriver перед возвратом DriverEntry. Если DriverEntry выполнен успешно, драйвер должен вызвать NdisMDeregisterMiniportDriver из функции MiniportDriverUnload.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается в NDIS 6.0 и более поздних версиях.
целевая платформа Всеобщий
заголовка ndis.h (include Ndis.h)
библиотеки Ndis.lib
IRQL PASSIVE_LEVEL
правил соответствия DDI Irql_Miniport_Driver_Function(ndis)

См. также

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

DriverEntry

MiniportDriverUnload

MiniportInitializeEx

MiniportSetOptions

NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver