Compartilhar via


Recebendo e traduzindo endereços NIC

A opção Windows Sockets sempre usa as famílias de endereços WSK, que contêm endereços IP, quando interage com provedores de serviços SAN e NICs SAN. A opção não usa a família de endereços nativos de uma SAN. Portanto, um provedor de serviços SAN deve usar seu driver proxy associado para recuperar a lista de endereços IP atribuídos às NICs. O provedor de serviços SAN usa esses endereços IP ao interagir com seu driver proxy. O driver proxy deve ser convertido entre endereços IP e endereços nativos.

Durante a inicialização, um driver proxy normalmente se registra com a TDI (Interface de Driver de Transporte) para notificações de alteração de endereço. Todos os transportes com reconhecimento PnP (Plug and Play), incluindo TCP/IP, fornecem notificações de alteração de endereço por meio de TDI para clientes que se registraram para essas notificações.

Nota A TDI não terá suporte nas versões do Microsoft Windows após o Windows Vista. Em vez disso, use a Plataforma de Filtragem do Windows ou o Kernel winsock .

Registrando-se para notificação de alteração de endereço

Durante a inicialização, um driver proxy chama a função TdiRegisterPnPHandlers para se registrar para notificações de alteração de endereço. Nessa chamada, o driver proxy passa ponteiros para funções de retorno de chamada para adições de endereço e exclusões nos membros AddAddressHandlerV2 e DelAddressHandlerV2 da estrutura TDI_CLIENT_INTERFACE_INFO. Depois que o driver proxy se registra para receber essas notificações, a TDI indica imediatamente todos os endereços de rede ativos no momento usando o retorno de chamada de endereço de suplemento.

A TDI passa os seguintes parâmetros para as funções de retorno de chamada de endereço de exclusão ou de endereço de exclusão de um driver proxy:

Endereço
Ponteiro para uma estrutura TA_ADDRESS que descreve o endereço de rede atribuído ou removido da NIC. No caso de TCP/IP, esse ponteiro é, na verdade, um ponteiro para uma estrutura TA_ADDRESS_IP.

Devicename
Ponteiro para uma cadeia de caracteres Unicode que identifica a associação de transporte para NIC à qual o endereço está associado. No caso de TCP/IP, a cadeia de caracteres Unicode tem o seguinte formato:

\Device\Tcpip_{NIC-GUID}

em que NIC-GUID é o identificador globalmente exclusivo atribuído pelo subsistema de configuração de rede à NIC.

As definições de estrutura anteriores são definidas no arquivo de cabeçalho tdi.h. As funções de registro e retorno de chamada anteriores são definidas no arquivo de cabeçalho tdikrnl.h. Esses arquivos de cabeçalho estão disponíveis no DDK (Microsoft Windows Driver Development Kit) e no WDK (Kit de Driver do Windows). Informações detalhadas sobre notificações PnP TDI estão incluídas em Retornos de chamada do cliente TDI e manipuladores de eventos de cliente TDI e de notificação PnP.

Nota A TDI não terá suporte nas versões do Microsoft Windows após o Windows Vista. Em vez disso, use a Plataforma de Filtragem do Windows ou o Kernel winsock .

Mantendo uma lista de endereços IP

O driver proxy de um provedor de serviços SAN usa notificações de endereço de adição e exclusão de endereço para manter a lista de endereços IP atribuídos a cada NIC sob seu controle. O driver proxy usa essa lista para converter entre um ou mais endereços IP atribuídos a uma SAN NIC pelo transporte TCP/IP e endereços SAN nativos. O driver proxy também deve fornecer uma rotina de controle de dispositivo que disponibilize a lista de endereços IP atribuídos a uma NIC para a opção Windows Sockets sempre que a opção fizer uma consulta de código de controle SIO_ADDRESS_LIST_QUERY. A rotina DriverEntry do driver proxy deve especificar um ponto de entrada para essa rotina de controle de dispositivo.

A opção Windows Sockets mantém uma lista de todos os endereços IP atribuídos a cada NIC san. Para recuperar endereços IP para essa lista inclusiva, a opção chama a função WSPIoctl de cada provedor de serviços SAN, passando o código de controle SIO_ADDRESS_LIST_QUERY. Cada provedor de serviços SAN, por sua vez, consulta seu driver proxy associado para sua lista individual de endereços IP atribuídos às NICs SAN. Depois que a opção é notificada sobre uma alteração de endereço, ela consulta novamente cada provedor de serviços SAN para obter atualizações em cada lista individual.