Функция 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 вызывают функцию 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) |