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.
Rufen Sie die NdisGetDataBuffer--Funktion auf, um Zugriff auf einen zusammenhängenden Datenblock aus einer NET_BUFFER-Struktur zu erhalten.
Syntax
NDIS_EXPORTED_ROUTINE PVOID NdisGetDataBuffer(
[in] NET_BUFFER *NetBuffer,
[in] ULONG BytesNeeded,
[in, optional] PVOID Storage,
[in] ULONG AlignMultiple,
[in] ULONG AlignOffset
);
Parameter
[in] NetBuffer
Ein Zeiger auf eine NET_BUFFER Struktur.
[in] BytesNeeded
Die Anzahl der zusammenhängenden Bytes der angeforderten Daten.
[in, optional] Storage
Ein Zeiger auf einen Puffer oder NULL-, wenn vom Aufrufer kein Puffer bereitgestellt wird. Der Puffer muss größer oder gleich groß sein, um die anzahl der in BytesNeededed angegebenen Bytes angegeben ist. Wenn dieser Wert nichtNULL-ist und die angeforderten Daten nicht zusammenhängend sind, kopiert NDIS die angeforderten Daten in den durch Storage angegebenen Bereich.
[in] AlignMultiple
Das Ausrichtungs-Vielfache, das in der Kraft von zwei ausgedrückt wird. Beispiel: 2, 4, 8, 16 usw. Wenn AlignMultiple 1 ist, gibt es keine Ausrichtungsanforderung.
[in] AlignOffset
Der Offset (in Byte) aus der Ausrichtung mehrfach.
Rückgabewert
NdisGetDataBuffer gibt einen Zeiger an den Anfang der zusammenhängenden Daten zurück oder gibt NULL-zurück.
Wenn das DataLength-Element der NET_BUFFER_DATA Struktur in der NET_BUFFER Struktur, auf die der NetBuffer-Parameter verweist, kleiner als der Wert im BytesNeededed-Parameter ist, ist der Rückgabewert NULL.
Wenn die angeforderten Daten im Puffer zusammenhängend sind, ist der Rückgabewert ein Zeiger auf eine Stelle, die NDIS bereitstellt. Wenn die Daten nicht zusammenhängend sind, verwendet NDIS den Parameter Storage wie folgt:
- Wenn der parameter Storage nichtNULList, kopiert NDIS die Daten an den Puffer bei Storage. Der Rückgabewert ist der Zeiger, der an den parameter Storage übergeben wird.
- Wenn der parameter StorageNULList, ist der Rückgabewert NULL.
Bemerkungen
Rufen Sie diese Funktion auf, um einen Zeiger auf einen Netzwerkdatenheader abzurufen, der in der NET_BUFFER-Struktur enthalten ist. Sie können den header, der im zusammenhängenden Datenblock gespeichert ist, problemlos analysieren, den diese Funktion zurückgibt.
Die angeforderte Ausrichtungsanforderung wird als Potenz von zwei Vielfachen und einem Offset ausgedrückt. Wenn beispielsweise AlignMultiple 4 ist und AlignOffset- 3 ist, sollte die Datenadresse ein Vielfaches von 4 plus 3 sein. Bei Bedarf weist NDIS Speicher zu, um die Ausrichtungsanforderung zu erfüllen.
Anforderungen
| Anforderung | Wert |
|---|---|
| mindestens unterstützte Client- | Unterstützt in NDIS 6.0 und höher. |
| Zielplattform- | Universal |
| Header- | ndis/nblapi.h (include ndis.h) |
| Library | Ndis.lib |
| IRQL- | <= DISPATCH_LEVEL |
| DDI-Complianceregeln | Irql_NetBuffer_Function(ndis) |