Freigeben über


Einführung in NDIS-Protokolltreiber

Ein NDIS-Protokolltreiber exportiert eine Reihe von ProtocolXxx-Funktionen am unteren Rand. Ein solcher Protokolltreiber kommuniziert mit NDIS, um Netzwerkdaten zu senden und zu empfangen. Der Protokolltreiber bindet an einen zugrunde liegenden Miniporttreiber oder Zwischentreiber, der eine MiniportXxx-Schnittstelle am oberen Rand exportiert.

Hinweis Der obere Rand des Miniporttreibers eines zwischengeschalteten Treibers (virtueller Miniport) verwaltet keine physischen Geräte. Zugrunde liegende Miniporttreiber verwalten physische Geräte.

Protokolltreiber verwenden immer von NDIS bereitgestellte Funktionen, um mit zugrunde liegenden NDIS-Treibern zu kommunizieren, um Netzwerkdaten zu senden und zu empfangen. Beispielsweise muss ein Protokolltreiber mit einem verbindungslosen unteren Rand (der mit zugrunde liegenden Treibern für verbindungslose Medien wie Ethernet kommuniziert) NdisSendNetBufferLists aufrufen, um Netzwerkdaten an einen zugrunde liegenden NDIS-Treiber zu senden. Der Protokolltreiber kann NdisOidRequest aufrufen, um OIDs abzufragen oder festzulegen, die zugrunde liegende verbindungslose Treiber unterstützen. Ein Protokolltreiber mit einem verbindungsorientierten unteren Edge (der mit zugrunde liegenden Treibern für verbindungsorientierte Medien wie ISDN kommuniziert) muss NdisCoSendNetBufferLists aufrufen, um Netzwerkdaten an einen NDIS-Treiber auf niedrigerer Ebene zu senden. Es kann auch NdisCoOidRequest aufrufen, um OIDs abzufragen oder festzulegen, die von zugrunde liegenden verbindungsorientierten Treibern unterstützt werden.

NDIS bietet auch eine Reihe von NdisXxx-Funktionen , die die Details des zugrunde liegenden Betriebssystems ausblenden. Beispielsweise kann ein Protokolltreiber NdisInitializeEvent aufrufen, um ein Ereignis zu Synchronisierungszwecken zu erstellen, und NdisInitializeListHead , um eine verknüpfte Liste zu erstellen. Protokolltreiber, die die NDIS-Versionen solcher Funktionen verwenden, sind auf microsoft-Betriebssystemen portierbarer. Protokolltreiber können jedoch auch Kernelmodusunterstützungsroutinen wie IoCreateDevice aufrufen. Weitere Informationen finden Sie unter Zusammenfassung Kernel-Mode Supportroutinen.

Entwickler von Protokolltreibern sollten dieselben Programmierüberlegungen verwenden, die auf andere NDIS-Treiber angewendet werden.