Função NdisMFreePort (ndis.h)

A função NdisMFreePort libera uma porta NDIS que foi alocada anteriormente com a função NdisMAllocatePort .

Sintaxe

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

Parâmetros

NdisMiniportHandle

O identificador do adaptador de miniport que o NDIS passou para o parâmetro MiniportAdapterHandle do Função MiniportInitializeEx .

[in] PortNumber

O número da porta NDIS que o NDIS deve liberar. O valor PortNumber é um valor NDIS_PORT_NUMBER, que tem um tipo de dados ULONG. O NDIS forneceu o número da porta no membro PortNumber do NDIS_PORT_CHARACTERISTICS estrutura quando o driver de miniporto chamou a função NdisMAllocatePort .

O número da porta pode ser um número de 1 a 0xffffff. Não é possível definir PortNumber como zero, o que indica a porta padrão.

Retornar valor

NdisMFreePort pode retornar um dos seguintes valores:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
O NDIS liberou com êxito os recursos para a porta.
NDIS_STATUS_INVALID_PORT
O NDIS não pôde liberar os recursos para a porta porque o número da porta era inválido.
NDIS_STATUS_INVALID_PORT_STATE
O NDIS não pôde liberar os recursos para a porta porque a porta estava em um estado em que a operação gratuita é inválida. Para liberar a porta, a porta deve estar no estado alocado.
NDIS_STATUS_INVALID_DATA
O número da porta fornecido no parâmetro PortNumber era inválido.

Comentários

Se um driver de miniporto alocou uma porta chamando a função NdisMAllocatePort , o driver deverá liberar a porta antes de retornar de sua função MiniportHaltEx . Se o driver de miniporto ativou a porta emitindo um evento netEventPortActivation Plug and Play (PnP), o driver deverá emitir um evento PnP NetEventPortDeactivation para a porta antes de liberar a porta.

Quando um driver de miniporto chama NdisMFreePort para liberar uma porta, o NDIS também libera o número da porta atribuída à porta liberada para que o NDIS possa reutilizar o número da porta.

O driver de miniporta não deve tentar liberar a porta padrão.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
Regras de conformidade da DDI Irql_Miniport_Driver_Function(ndis)

Confira também

Porta NDIS padrão

Liberando uma porta NDIS

MiniportHaltEx

MiniportInitializeEx

NDIS_PORT_CHARACTERISTICS

NdisMAllocatePort