Compartilhar via


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 miniporto 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. Você não pode definir DeNumber como zero, o que indica a porta padrão.

Valor de retorno

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.

Observações

Se um driver de miniporto alocar 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 NetEventPortDeactivation PnP 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ído à porta liberada para que o NDIS possa reutilizar o número da porta.

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

Requisitos

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

Consulte também

porta NDIS padrão

liberando uma porta NDIS

MiniportHaltEx

MiniportInitializeEx

NDIS_PORT_CHARACTERISTICS

NdisMAllocatePort