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.
In diesem Abschnitt wird das Layout des gemeinsamen Speichers in VMQ-Empfangspuffern beschrieben. Weitere Informationen zur Verwendung der Puffer in Empfangsindikationen finden Sie unter VMQ Receive Path.
Wenn der übergeordnete Protokolltreiber das Flag NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED im Flags-Element der NDIS_RECEIVE_QUEUE_PARAMETERS-Struktur gesetzt hat, sollte der Netzwerkadapter ein empfangenes Paket bei einem Offset aufteilen, der der angeforderten Lookahead-Größe entspricht oder größer ist, und mithilfe von DMA die Lookahead-Daten sowie die Daten nach dem Lookahead in separate, freigegebene Speichersegmente übertragen.
Miniport-Treiber geben die Einstellungen für den Lookahead-Typ (NdisSharedMemoryUsageReceiveLookahead) oder andere freigegebene Speichertypen an, wenn der freigegebene Speicher zugewiesen wird. Beispielsweise ruft der Miniporttreiber die NdisAllocateSharedMemory-Funktion auf und legt das Usage-Element in der NDIS_SHARED_MEMORY_PARAMETERS-Struktur auf NdisSharedMemoryUsageReceiveLookahead fest. Miniporttreiber sollten gemeinsamen Speicher für eine Warteschlange reservieren, wenn die Zuweisung der Warteschlange abgeschlossen ist. Informationen zum Zuweisen und Freigeben freigegebener Speicherressourcen für Warteschlangen finden Sie unter Shared Memory Resource Allocation.
Die folgende Abbildung zeigt die Beziehungen der Netzwerkdaten, wenn die eingehenden Daten in zwei gemeinsame Speicherpuffer aufgeteilt werden.
Die NET_BUFFER_SHARED_MEMORY Struktur gibt freigegebene Speicherinformationen an. Es kann eine verknüpfte Liste solcher freigegebenen Speicherpuffer vorhanden sein, die einer NET_BUFFER Struktur zugeordnet sind.
Verwenden Sie die Makros NET_BUFFER_SHARED_MEM_NEXT_SEGMENT, NET_BUFFER_SHARED_MEM_FLAGS, NET_BUFFER_SHARED_MEM_HANDLE, NET_BUFFER_SHARED_MEM_OFFSET und NET_BUFFER_SHARED_MEM_LENGTH, um auf die NET_BUFFER_SHARED_MEMORY in einer NET_BUFFER-Struktur zuzugreifen. Das SharedMemoryInfo Mitglied der NET_BUFFER Struktur enthält die erste NET_BUFFER_SHARED_MEMORY Struktur in der verknüpften Liste.
Anmerkung Ab NDIS 6.30 wird das Aufteilen von Paketdaten in separate Lookaheadpuffer nicht mehr unterstützt. Ab Windows Server 2012 setzt der Überprotokolltreiber das NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED Flag nicht im Flags-Element der NDIS_RECEIVE_QUEUE_PARAMETERS-Struktur.