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