Функция 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 возвращает одно из следующих значений состояния:
Код возврата | Описание |
---|---|
|
NdisMRegisterMiniportDriver успешно зарегистрировал драйвер мини-порта. |
|
Параметр CharacteristicsLength неверен для версии NDIS, указанной в элементе MajorNdisVersion в структуре MiniportDriverCharacteristics . |
|
Параметр MajorNdisVersion или MinorNdisVersion , указанный в структуре характеристик, недопустим. |
|
Нехватка ресурсов, возможно, памяти, не позволила NDIS зарегистрировать вызывающий объект. |
|
Это состояние ошибки по умолчанию, возвращаемое, если ни одна из предыдущих ошибок не привела к сбою регистрации. |
Комментарии
Драйвер 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) |
См. также раздел
Инициализация драйвера мини-порта
NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver