Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
NDIS-Strukturen, die Versionsinformationen bereitstellen, verfügen über ein Headerelement , das als NDIS_OBJECT_HEADER Struktur definiert ist, und NDIS-Treiber müssen Unterstützung für solche Versionsinformationen bereitstellen.
NDIS kann Treiber unterstützen, die eine höhere oder niedrigere NDIS-Version unterstützen als die aktuelle Version von NDIS (d. a. die Version von NDIS, die auf der Version des Betriebssystems unterstützt wird, auf dem ein Computer ausgeführt wird). Auch die registrierte NDIS-Version (d. h. die Version, die der Treiber während der Initialisierung gemeldet hat) des Treibers kann niedriger als die höchste Version sein, die der Treiber unterstützt. Beispielsweise kann ein NDIS 5.1-Treiber oder ein NDIS 6.1-Treiber auf einer Version des Betriebssystems ausgeführt werden, das NDIS 6.0 ausführt. Der NDIS 5.1-Treiber registriert sich während der Initialisierung einfach als NDIS 5.1-Treiber. Der NDIS 6.1-Treiber muss jedoch die aktuelle Version von NDIS überprüfen und als Treiber registrieren, der die höchste verfügbare NDIS-Ebene unterstützt (in diesem Beispiel NDIS 6.0). Weitere Informationen zum Abrufen der aktuellen NDIS-Version finden Sie unter Abrufen der NDIS-Version.
Anmerkung Ein Treiber ist nicht erforderlich, um alle Features in einer späteren Überarbeitung einer Struktur zu unterstützen. Beispielsweise kann ein Miniporttreiber eine Version 2-Struktur erstellen und Werte bereitstellen, die für eine Version 1-Struktur geeignet sind.
Um auf die Member in Strukturen zuzugreifen, die Versionsinformationen enthalten, müssen NDIS-Treiber den folgenden Prozess ausführen:
Überprüfen Sie die Header.Revision und Header.Size Mitglieder, bevor Sie auf Elemente in der Struktur zugreifen.
Für frühere Versionsstrukturen (d. r. Strukturen mit einer niedrigeren Revisionsnummer als die Zahl, die der vom Treiber unterstützten NDIS-Version zugeordnet ist):
- Der Treiber muss überprüfen, ob der Header.Size-Wert für den Header.Revision-Wert korrekt ist. Beispielsweise ist der Wert von NDIS_SIZEOF_Xxx_REVISION_1 für Xxx_REVISION_1 korrekt, aber für Xxx_REVISION_2 zu klein.
- Der Header.Size-Wert muss gleich oder größer als NDIS_SIZEOF_Xxx_REVISION_Nn sein (wobei Nn die Revisionsnummer der vom Treiber verwendeten Struktur ist), und der Treiber muss die Informationen in der Struktur ordnungsgemäß verarbeiten, wie für diese Revision geeignet ist.
Bei späteren Versionsstrukturen (d. h. Strukturen mit einer höheren Revisionsnummer als die Zahl, die der vom Treiber unterstützten NDIS-Version zugeordnet ist), kann der Treiber die Struktur wie eine ältere Überarbeitung der Struktur verwenden. Die Struktur der höheren Version ist immer mit der älteren Version kompatibel.
Treiber müssen die korrekte Revision einer Struktur für die registrierte NDIS-Version des Treibers verwenden. Beispielsweise muss ein NDIS 6.1-Treiber seine Offload-Funktionen in NDIS_OFFLOAD-Strukturen melden, indem die Member der NDIS_OBJECT_HEADER-Struktur gesetzt werden, um NDIS_OFFLOAD_REVISION_2 anzugeben. Der Treiber muss jedoch nicht alle Features unterstützen, die in NDIS_OFFLOAD_REVISION_2 enthalten sind.
Ein Treiber, der eine OID-Set-Anforderung erfolgreich verarbeitet, muss das SupportedRevision-Mitglied in der NDIS_OID_REQUEST-Struktur setzen, nachdem es von der OID-Set-Anforderung zurückgegeben wurde. Das SupportedRevision-Mitglied benachrichtigt den Initiator der Anforderung über die vom Treiber unterstützte Revisionsversion. Beispielsweise kann ein Miniporttreiber eine Xxx_REVISION_2 Struktur erstellen, Werte bereitstellen, die für eine Xxx_REVISION_1 Struktur geeignet sind, und die restliche Struktur mit Nullen füllen. Der Miniporttreiber meldet Xxx_REVISION_1 im SupportedRevision-Element . In diesem Fall wird ein Protokolltreiber, der eine Xxx_REVISION_2 unterstützen kann, die Informationen von Xxx_REVISION_1 verwenden, die der Miniporttreiber unterstützte.
Um zu ermitteln, welche Informationen von einem zugrunde liegenden Treiber erfolgreich verarbeitet wurden, müssen überlastende Treiber, die OID-Anforderungen ausstellen, den Wert im SupportedRevision-Element in der NDIS_OID_REQUEST-Struktur überprüfen, nachdem die OID-Anforderung zurückgegeben wurde.