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

Функция NdisMFreePort освобождает порт NDIS, который ранее был выделен с помощью функции NdisMAllocatePort .

Синтаксис

NDIS_STATUS NdisMFreePort(
       NDIS_HANDLE      NdisMiniportHandle,
  [in] NDIS_PORT_NUMBER PortNumber
);

Параметры

NdisMiniportHandle

Адаптер мини-порта обрабатывает, что NDIS передается параметру MiniportAdapterHandleФункция MiniportInitializeEx.

[in] PortNumber

Номер порта NDIS, который должен освободить NDIS. Значение PortNumber — это значение NDIS_PORT_NUMBER, которое имеет тип данных ULONG. NDIS предоставил номер порта в элементе PortNumber NDIS_PORT_CHARACTERISTICS структуру, когда драйвер мини-порта вызывал функцию NdisMAllocatePort .

Номер порта может быть номером от 1 до 0xffffff. Параметр PortNumber не может быть равен нулю, что указывает порт по умолчанию.

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

NdisMFreePort может возвращать одно из следующих значений:

Код возврата Описание
NDIS_STATUS_SUCCESS
NDIS успешно освободила ресурсы для порта.
NDIS_STATUS_INVALID_PORT
NDIS не удалось освободить ресурсы для порта, так как номер порта был недопустимым.
NDIS_STATUS_INVALID_PORT_STATE
NDIS не удалось освободить ресурсы для порта, так как порт находится в состоянии, когда свободная операция недопустима. Чтобы освободить порт, порт должен находиться в выделенном состоянии.
NDIS_STATUS_INVALID_DATA
Недопустимый номер порта, указанный в параметре PortNumber .

Комментарии

Если драйвер мини-порта выделил порт, вызвав функцию NdisMAllocatePort , драйвер должен освободить порт, прежде чем он вернется из функции MiniportHaltEx . Если драйвер мини-порта активировал порт, выдав событие NetEventPortActivation Plug and Play (PnP), драйвер должен выдать событие NetEventPortDeactivation PnP для порта, прежде чем освобождать порт.

Когда драйвер мини-порта вызывает NdisMFreePort , чтобы освободить порт, NDIS также освобождает номер порта, назначенный освобожденному порту, чтобы NDIS могли повторно использовать номер порта.

Драйвер мини-порта не должен пытаться освободить порт по умолчанию.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Целевая платформа Универсальное
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI Irql_Miniport_Driver_Function(ndis)

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

Порт NDIS по умолчанию

Освобождение порта NDIS

MiniportHaltEx

MiniportInitializeEx

NDIS_PORT_CHARACTERISTICS

NdisMAllocatePort