Функция 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 успешно освободила ресурсы для порта. |
|
NDIS не удалось освободить ресурсы для порта, так как номер порта был недопустимым. |
|
NDIS не удалось освободить ресурсы для порта, так как порт находится в состоянии, когда свободная операция недопустима. Чтобы освободить порт, порт должен находиться в выделенном состоянии. |
|
Недопустимый номер порта, указанный в параметре 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) |