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


Функция 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. Нельзя задать для номер порта значение нулю, указывающее порт по умолчанию.

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

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 (include Ndis.h)
библиотеки Ndis.lib
IRQL <= DISPATCH_LEVEL
правил соответствия DDI Irql_Miniport_Driver_Function(ndis)

См. также

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

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

MiniportHaltEx

MiniportInitializeEx

NDIS_PORT_CHARACTERISTICS

NdisMAllocatePort