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

Функция NdisIfRegisterProvider регистрирует поставщик сетевого интерфейса NDIS.

Синтаксис

NDIS_STATUS NdisIfRegisterProvider(
  [in] PNDIS_IF_PROVIDER_CHARACTERISTICS ProviderCharacteristics,
  [in] NDIS_HANDLE                       IfProviderContext,
       PNDIS_HANDLE                      pNdisIfProviderHandle
);

Параметры

[in] ProviderCharacteristics

Указатель на предоставленный вызывающим объект NDIS_IF_PROVIDER_CHARACTERISTICS структура. Эта структура определяет характеристики поставщика, включая точки входа для функций обратного вызова поставщика.

[in] IfProviderContext

Дескриптор области контекста, предоставленной вызывающим для этого поставщика сетевых интерфейсов. Задайте для этого параметра значение null, если нет области контекста.

pNdisIfProviderHandle

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

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

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

Возвращаемый код Описание
NDIS_STATUS_SUCCESS
Операция успешно завершена.
NDIS_STATUS_RESOURCES
Операция завершилась ошибкой из-за нехватки ресурсов.
NDIS_STATUS_INVALID_PARAMETER
NdisIfRegisterProvider не удалось зарегистрировать поставщика, так как структура NDIS_IF_PROVIDER_CHARACTERISTICS в параметре providerCharacteristics содержит недопустимые данные члена.
NDIS_STATUS_NOT_SUPPORTED
NdisIfRegisterProvider не удалось зарегистрировать поставщик, так как элемент заголовка в NDIS_IF_PROVIDER_CHARACTERISTICS указывает версию структуры, которая не поддерживается.

Замечания

Драйверы NDIS вызывают функцию NdisIfRegisterProvider один раз во время инициализации для регистрации в качестве поставщика интерфейса NDIS. Например, драйвер может вызывать NdisIfRegisterProvider из подпрограммы DriverEnt ry. Поставщик интерфейса — это программный компонент, который управляет сетевыми интерфейсами для поддержки MIB (RFC 2863).

Для обработки запросов поставщика интерфейса OID поставщики интерфейсов предоставляют точки входа для функций обратного вызова в NDIS_IF_PROVIDER_CHARACTERISTICS структура ProviderCharacteristicsNdisIfRegisterProvider.

Поставщики интерфейсов NDIS вызывают функцию NdisIfRegisterInterface для регистрации сетевого интерфейса. Поставщик может зарегистрировать несколько интерфейсов.

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

Компонент, который больше не является поставщиком интерфейса, может вызывать функцию NdisIfDeregisterProvid er в любое время, чтобы освободить ресурсы поставщика интерфейса, выделенные NDIS при вызове драйвера NdisIfRegisterProvider.

Требования

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

См. также

DriverEntry

NDIS_IF_PROVIDER_CHARACTERISTICS

NdisIfDeregisterProvider

NdisIfRegisterInterface