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


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

Функция NdisIfAllocateNetLuidIndex выделяет индекс NET_LUID для поставщика сетевых интерфейсов NDIS.

Синтаксис

NDIS_STATUS NdisIfAllocateNetLuidIndex(
        NET_IFTYPE ifType,
  [out] PUINT32    pNetLuidIndex
);

Параметры

ifType

Тип интерфейса центра назначения номеров Интернета (IANA) для индекса. Например, IF_TYPE_ETHERNET_CSMACD (6) — это значение для IfType, назначенных любому интерфейсу Ethernet. Список типов интерфейсов см. в типах интерфейсов NDIS.

[out] pNetLuidIndex

Указатель на указанную вызывающим NET_LUID переменную индекса. Если выделение выполнено успешно, NdisIfAllocateNetLuidIndex задает эту переменную для выделенного 24-разрядного значения индекса NET_LUID.

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

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

Возвращаемый код Описание
NDIS_STATUS_SUCCESS
Операция успешно завершена.
NDIS_STATUS_RESOURCES
Операция завершилась ошибкой из-за нехватки ресурсов.

Замечания

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

NdisIfAllocateNetLuidIndex пытается выделить 24-разрядный индекс NET_LUID, уникальный для локального компьютера и связанный с типом интерфейса, указанным параметром IfType. NDIS записывает индекс NET_LUID в постоянном хранилище, чтобы индекс оставался связанным с тем же интерфейсом даже после перезагрузки компьютера. NDIS не выделяет тот же индекс NET_LUID для будущих вызывающих NdisIfAllocateNetLuidIndex до тех пор, пока поставщик интерфейса не вызывает функцию NdisIfFreeNetLuidIndex для освобождения индекса.

Чтобы создать значение NET_LUID из индекса NET_LUID и типа интерфейса, поставщик интерфейса вызывает макрос NDIS_MAKE_NET_LUID.

Поставщик интерфейса должен хранить значения NET_LUID, которые он выделяет в постоянном хранилище. Например, при потере мощности компьютера поставщик должен хранить значения NET_LUID в постоянном хранилище, чтобы он смог вызвать NdisIfFreeNetLuidIndex позже, чтобы освободить все индексы, которые больше не используются. Кроме того, поставщик должен использовать то же NET_LUID значение, когда оно регистрирует тот же интерфейс с помощью функция NdisIfRegisterInterface.

Требования

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

См. также

NDIS_MAKE_NET_LUID

NET_LUID

NdisIfFreeNetLuidIndex

NdisIfRegisterInterface