Initialisieren eines Header-Data Split-Anbieters

Um die Aufteilung von Headerdaten zu unterstützen, muss ein Miniporttreiber als Treiber NDIS 6.1 oder höher registriert werden. Die Quellendatei für den Miniporttreiber muss DNDIS61_MINIPORT=1 anstelle von DNDIS60_MINIPORT=1 angeben. Der Miniporttreiber muss auch NDIS 6.1 oder eine höhere Version in der NDIS_MINIPORT_DRIVER_CHARACTERISTICS-Struktur angeben.

Um seine Header-Daten-Splitattribute zu registrieren, ruft ein NDIS 6.1-Miniporttreiber die NdisMSetMiniportAttributes-Funktion von seiner MiniportInitializeEx-Funktion auf und übergibt NdisMSetMiniportAttributes eine initialisierte NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES-Struktur .

Die NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES-Struktur enthält die folgenden Informationen:

  • Das HDSplitAttributes-Element von NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES enthält einen Zeiger auf eine NDIS_HD_SPLIT_ATTRIBUTES-Struktur , die die Funktionen zum Teilen von Headern und Daten angibt, die ein Miniportadapter bereitstellt.

  • Das HardwareCapabilities-Element von NDIS_HD_SPLIT_ATTRIBUTES enthält die Funktionen zum Teilen von Headern und Daten, die der Miniportadapter unterstützt. Diese Funktionen können Funktionen enthalten, die derzeit durch INF-Dateieinstellungen oder über die Seite Erweiterte Eigenschaften deaktiviert sind.

  • Das CurrentCapabilities-Element von NDIS_HD_SPLIT_ATTRIBUTES enthält die aktuellen Funktionen zum Teilen von Headerdaten, die der Miniportadapter unterstützt. Wenn die Aufteilung von Headerdaten über die standardisierte INF-Schlüsselwort (keyword) *HeaderDataSplit aktiviert ist, verwendet der Miniporttreiber dieselben Flags wie der HardwareCapabilities-Member, um die aktuelle Konfiguration für die Aufteilung von Headerdaten anzugeben. Weitere Informationen zu *HeaderDataSplit finden Sie unter Standardisierte INF-Schlüsselwörter für Header-Data Split.

  • Das HDSplitFlags-Element von NDIS_HD_SPLIT_ATTRIBUTES enthält Konfigurationsflags mit geteilten Headerdaten. Der Miniporttreiber sollte diesen Member auf 0 festlegen, bevor NdisMSetMiniportAttributes aufgerufen wird. NDIS legt diesen Member mit einem bitweisen OR der Konfigurationsflags fest. Nachdem NdisMSetMiniportAttributes erfolgreich zurückgegeben wurde, muss der Miniporttreiber die Flageinstellungen in HDSplitFlags überprüfen und die Hardware entsprechend konfigurieren.

NDIS verwendet das Flag NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT, um die Aufteilung von Headerdaten für den Miniportadapter zu aktivieren. NDIS wird nicht NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT festgelegt, wenn der Miniporttreiber das NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT-Flag im CurrentCapabilities-Member der NDIS_HD_SPLIT_ATTRIBUTES-Struktur nicht festgelegt hat. Der Miniporttreiber sollte die Aufteilung von Headerdaten in der NIC aktivieren, wenn NDIS das flag NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT festlegt.

Der Miniporttreiber sollte den BackfillSize-Member der NDIS_HD_SPLIT_ATTRIBUTES-Struktur auf Null festlegen, bevor NdisMSetMiniportAttributes aufgerufen wird. NDIS legt den BackfillSize-Member fest, wenn der Miniporttreiber den Verfüllspeicher im Datenpuffer der geteilten Frames vorab zuordnen muss. Nachdem NdisMSetMiniportAttributes erfolgreich zurückgegeben wurde, muss der Miniporttreiber den von NDIS angegebenen BackfillSize-Wert verwenden und die Datenpuffer vorab zuordnen. Weitere Informationen zur Größe des Datenpufferrückfülls finden Sie unter Zuweisen des Rückfüllvorgangs für den Datenpuffer.

Der Miniporttreiber sollte das MaxHeaderSize-Element der NDIS_HD_SPLIT_ATTRIBUTES-Struktur auf Null festlegen, bevor NdisMSetMiniportAttributes aufgerufen wird. NDIS legt diesen Member auf die maximale Größe fest, die für den Headerpuffer der geteilten Frames zulässig ist. Nachdem NdisMSetMiniportAttributes erfolgreich zurückgegeben wurde, muss der Miniporttreiber den von NDIS angegebenen MaxHeaderSize-Wert verwenden. Weitere Informationen zur maximalen Headergröße finden Sie unter Zuweisen des Headerpuffers.