Empfangen und Übersetzen von NIC-Adressen
Der Windows Sockets-Switch verwendet immer die WSK-Adressfamilien, die IP-Adressen enthalten, wenn er mit SAN-Dienstanbietern und SAN-NICs interagiert. Der Switch verwendet nicht die native Adressfamilie eines SAN. Daher muss ein SAN-Dienstanbieter seinen zugeordneten Proxytreiber verwenden, um die Liste der IP-Adressen abzurufen, die seinen NICs zugewiesen sind. Der SAN-Dienstanbieter verwendet diese IP-Adressen bei der Interaktion mit seinem Proxytreiber. Der Proxytreiber muss zwischen IP-Adressen und nativen Adressen übersetzen.
Während der Initialisierung wird ein Proxytreiber in der Regel bei Der Transport Driver Interface (TDI) für Adressänderungsbenachrichtigungen registriert. Alle Plug & Play(PnP)-fähigen Transporte, einschließlich TCP/IP, stellen Adressänderungsbenachrichtigungen über TDI an Clients bereit, die sich für solche Benachrichtigungen registriert haben.
Hinweis TDI wird in Microsoft Windows-Versionen nach Windows Vista nicht mehr unterstützt. Verwenden Sie stattdessen die Windows-Filterplattform oder den Winsock-Kernel .
Registrieren für die Benachrichtigung über Adressänderungen
Während der Initialisierung ruft ein Proxytreiber die TdiRegisterPnPHandlers-Funktion auf, um sich für Adressänderungsbenachrichtigungen zu registrieren. In diesem Aufruf übergibt der Proxytreiber Zeiger auf Rückruffunktionen für Adresszufügungen und Löschungen in den AddAddressHandlerV2 - und DelAddressHandlerV2-Membern der TDI_CLIENT_INTERFACE_INFO-Struktur. Nachdem sich der Proxytreiber für den Empfang dieser Benachrichtigungen registriert hat, gibt TDI mithilfe des Add-Address-Rückrufs sofort alle derzeit aktiven Netzwerkadressen an.
TDI übergibt die folgenden Parameter an die Add-Address- oder Delete-Address-Rückruffunktionen eines Proxytreibers:
Adresse
Zeiger auf eine TA_ADDRESS Struktur, die die Netzwerkadresse beschreibt, die der Netzwerkkarte zugewiesen oder daraus entfernt wurde. Im Fall von TCP/IP ist dieser Zeiger tatsächlich ein Zeiger auf eine TA_ADDRESS_IP-Struktur.
Devicename
Zeiger auf eine Unicode-Zeichenfolge, die die Transport-zu-NIC-Bindung identifiziert, der die Adresse zugeordnet ist. Bei TCP/IP hat die Unicode-Zeichenfolge das folgende Format:
\Device\Tcpip_{NIC-GUID}
Dabei ist NIC-GUID der global eindeutige Bezeichner, der vom Netzwerkkonfigurationssubsystem der NIC zugewiesen wird.
Die vorangehenden Strukturdefinitionen sind in der tdi.h-Headerdatei definiert. Die vorherigen Registrierungs- und Rückruffunktionen sind in der Headerdatei tdikrnl.h definiert. Diese Headerdateien sind im Microsoft Windows Driver Development Kit (DDK) und im Windows Driver Kit (WDK) verfügbar. Ausführliche Informationen zu TDI-PnP-Benachrichtigungen finden Sie in TDI-Clientrückrufen und TDI-Clientereignis- und PnP-Benachrichtigungshandlern.
Hinweis TDI wird in Microsoft Windows-Versionen nach Windows Vista nicht mehr unterstützt. Verwenden Sie stattdessen die Windows-Filterplattform oder den Winsock-Kernel .
Verwalten einer Liste von IP-Adressen
Der Proxytreiber eines SAN-Dienstanbieters verwendet Add-Address- und Delete-Address-Benachrichtigungen, um die Liste der IP-Adressen zu verwalten, die jeder NIC unter ihrer Kontrolle zugewiesen sind. Der Proxytreiber verwendet diese Liste, um zwischen einer oder mehreren IP-Adressen zu übersetzen, die einer SAN NIC durch den TCP/IP-Transport zugewiesen sind, und nativen SAN-Adressen. Der Proxytreiber muss auch eine Gerätesteuerungsroutine bereitstellen, die die Liste der einer NIC zugewiesenen IP-Adressen für den Windows Sockets-Switch zur Verfügung stellt, wenn der Switch eine SIO_ADDRESS_LIST_QUERY-Steuerelementcodeabfrage ausgibt. Die DriverEntry-Routine des Proxytreibers muss einen Einstiegspunkt für diese Gerätesteuerungsroutine angeben.
Der Windows Sockets-Switch verwaltet eine Liste aller IP-Adressen, die jeder SAN-Netzwerkkarte zugewiesen sind. Um IP-Adressen für diese inklusive Liste abzurufen, ruft der Switch die WSPIoctl-Funktion jedes SAN-Dienstanbieters auf und übergibt den SIO_ADDRESS_LIST_QUERY-Steuerungscode. Jeder SAN-Dienstanbieter fragt wiederum seinen zugeordneten Proxytreiber nach seiner individuellen Liste der IP-Adressen ab, die seinen SAN-NICs zugewiesen sind. Nachdem der Switch über eine Adressänderung benachrichtigt wurde, fragt er erneut jeden SAN-Dienstanbieter nach Updates in jeder einzelnen Liste ab.