Partilhar via


Ligação a um adaptador

O NDIS chama a função ProtocolBindAdapterEx de um driver de protocolo para abrir uma ligação sempre que um adaptador subjacente ao qual o driver pode ligar-se fica disponível. Depois de o NDIS chamar ProtocolBindAdapterEx, a associação entra no estado de abertura. No estado Opening, o driver de protocolo aloca recursos para a ligação e abre o adaptador.

O NDIS fornece para ProtocolBindAdapterEx o contexto NDIS para a operação de vinculação, bem como um ponteiro para uma estrutura NDIS_BIND_PARAMETERS. Esta estrutura contém informações sobre o adaptador, tais como:

  • O nome do adaptador.

  • O local do registo para parâmetros específicos desta ligação na entrada de protocolo de serviço no registo.

  • O objeto de dispositivo físico para o adaptador.

Para abrir um adaptador, os drivers de protocolo chamam a função NdisOpenAdapterEx. O driver de protocolo passa o seguinte para NdisOpenAdapterEx:

  • O manipulador que NDIS retornou ao driver no parâmetro NdisProtocolHandle da função NdisRegisterProtocolDriver.

  • O contexto do driver de protocolo para essa ligação.

  • Um ponteiro para uma estrutura do tipo NDIS_OPEN_PARAMETERS.

NDIS_OPEN_PARAMETERS contém informações como o nome do adaptador que NdisOpenAdapterEx deve abrir, uma matriz de tipos médios que o driver de protocolo suporta e, opcionalmente, uma matriz de tipos de quadro que o driver pode receber nessa ligação.

Se um driver de protocolo retornar NDIS_STATUS_PENDING a partir de ProtocolBindAdapterEx, deve chamar NdisCompleteBindAdapterEx com o status final para completar o pedido de associação.

Se o NDIS retornar NDIS_STATUS_PENDING de NdisOpenAdapterEx, o NDIS chamará posteriormente a função deProtocolOpenAdapterCompleteEx dodriver de protocolo com o status final após a conclusão da solicitação aberta.

Depois que o driver abre com êxito a ligação para o adaptador, a ligação está no estado Pausado.

Um driver de protocolo chama a função NdisCloseAdapterEx para fechar o adaptador. O driver pode chamar NdisCloseAdapterEx da função ProtocolBindAdapterEx ou função ProtocolUnbindAdapterEx.

Se depois de abrir o adaptador e antes de concluir a solicitação de ligação, ProtocolBindAdapterEx encontrar uma falha e deve fechar a ligação ao adaptador, ele pode chamar NdisCloseAdapterEx. Para obter mais informações sobre como fechar um adaptador, consulte Desvinculação de um adaptador.