Функция 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 (включая Ndis.h)
Библиотека Ndis.lib
IRQL PASSIVE_LEVEL
Правила соответствия DDI Irql_Interfaces_Function(ndis)

См. также раздел

NDIS_MAKE_NET_LUID

NET_LUID

NdisIfFreeNetLuidIndex

NdisIfRegisterInterface