Associação a um adaptador
O NDIS chama a função ProtocolBindAdapterEx de um driver de protocolo para abrir uma associação sempre que um adaptador subjacente ao qual o driver pode se associar ficar disponível. Depois que o NDIS chama ProtocolBindAdapterEx, a associação entra no estado Abertura. No estado Abertura , o driver de protocolo aloca recursos para a associação e abre o adaptador.
O NDIS passa para ProtocolBindAdapterEx o contexto NDIS para a operação de associação, bem como um ponteiro para uma estrutura NDIS_BIND_PARAMETERS . Essa estrutura contém informações sobre o adaptador, como:
O nome do adaptador.
O local do Registro para parâmetros específicos a essa associação na entrada de serviço de protocolo no registro.
O objeto de dispositivo físico do adaptador.
Para abrir um adaptador, os drivers de protocolo chamam a função NdisOpenAdapterEx . O driver de protocolo passa o seguinte para NdisOpenAdapterEx:
O identificador que o NDIS retornou ao driver no parâmetro NdisProtocolHandle da função NdisRegisterProtocolDriver .
O contexto do driver de protocolo para essa associaçã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 aos quais o driver de protocolo dá suporte e, opcionalmente, uma matriz de tipos de quadro que o driver pode receber nessa associação.
Se um driver de protocolo retornar NDIS_STATUS_PENDING de ProtocolBindAdapterEx, ele deverá chamar NdisCompleteBindAdapterEx com o status final para concluir a solicitação de associação.
Se o NDIS retornar NDIS_STATUS_PENDING de NdisOpenAdapterEx, o NDIS chamará posteriormente a função ProtocolOpenAdapterCompleteEx do driver de protocolo com o status final após a conclusão da solicitação aberta.
Depois que o driver abrir com êxito a associação ao adaptador, a associação estará 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 da função ProtocolUnbindAdapterEx .
Se depois de abrir o adaptador e antes de concluir a solicitação de associação, ProtocolBindAdapterEx encontrar uma falha e precisar fechar a associação ao adaptador, ele poderá chamar NdisCloseAdapterEx. Para obter mais informações sobre como fechar um adaptador, consulte Desassociando de um adaptador.