Compartilhar via


Desassociação de um adaptador

O NDIS chama a função ProtocolUnbindAdapterEx de um driver de protocolo para solicitar que o driver seja desvinmado de um adaptador subjacente. Como recíproco de ProtocolBindAdapterEx, o NDIS chama ProtocolUnbindAdapterEx para fechar a associação ao adaptador e liberar os recursos alocados pelo driver para a associação.

Em ProtocolUnbindAdapterEx, um driver de protocolo chama NdisCloseAdapterEx para fechar a associação a um adaptador subjacente. O driver de protocolo passa NdisCloseAdapterEx o identificador que NdisOpenAdapterEx forneceu em seu parâmetro NdisBindingHandle . Esse identificador identifica a associação que o NDIS deve fechar.

Os drivers de protocolo devem fechar um adaptador da função ProtocolBindAdapterEx ou da função ProtocolUnbindAdapterEx .

Se um driver de protocolo precisar iniciar uma operação para fechar uma associação, o driver poderá chamar NdisUnbindAdapter. NdisUnbindAdapter agenda um item de trabalho que resulta em uma chamada NDIS para ProtocolUnbindAdapterEx. Esse item de trabalho pode ser executado antes que a chamada para NdisUnbindAdapter retorne. Portanto, os gravadores de driver devem assumir que o identificador de associação é inválido após o retorno de NdisUnbindAdapter .

Se um driver de protocolo retornar NDIS_STATUS_PENDING de ProtocolUnbindAdapterEx, ele deverá chamar NdisCompleteUnbindAdapterEx com o status final para concluir a solicitação de associação.

Se o NDIS retornar NDIS_STATUS_PENDING de NdisCloseAdapterEx, o NDIS chamará posteriormente a função ProtocolCloseAdapterCompleteEx do driver de protocolo.

O NDIS poderá chamar ProtocolUnbindAdapterEx se a associação estiver no estado Pausado.

Depois que todas as operações desassociadas forem concluídas, a associação estará no estado Unbound.