NdisCopyFromPacketToPacketSafe-Funktion (ndis.h)
Hinweis NDIS 5. x wurde veraltet und wird von NDIS 6 abgelöst. x. Informationen zur Entwicklung neuer NDIS-Treiber finden Sie unter Netzwerktreiber ab Windows Vista. Informationen zum Portieren von NDIS 5. x-Treiber auf NDIS 6. x, siehe Portieren von NDIS 5.x-Treibern zu NDIS 6.0.
NdisCopyFromPacketToPacket kopiert einen angegebenen Datenbereich von einem Paket in ein anderes.
Syntax
void NdisCopyFromPacketToPacketSafe(
[in] IN PNDIS_PACKET Destination,
[in] IN UINT DestinationOffset,
[in] IN UINT BytesToCopy,
[in] IN PNDIS_PACKET Source,
[in] IN UINT SourceOffset,
[out] OUT PUINT BytesCopied,
IN MM_PAGE_PRIORITY Priority
);
Parameter
[in] Destination
Zeiger auf den Zielpaketdeskriptor.
[in] DestinationOffset
Gibt den Byteoffset innerhalb des Zielpakets an, an dem mit dem Schreiben der kopierten Daten begonnen werden soll.
[in] BytesToCopy
Gibt die Anzahl der zu kopierenden Bytes an.
[in] Source
Zeiger auf den Quellpaketdeskriptor.
[in] SourceOffset
Gibt den Byteoffset innerhalb des Quellpakets an, ab dem mit dem Kopieren der Daten begonnen werden soll.
[out] BytesCopied
Zeiger auf die vom Aufrufer bereitgestellte Variable, in der diese Funktion die Anzahl der tatsächlich kopierten Bytes zurückgibt. Diese Zahl kann kleiner als der Wert von BytesToCopy sein, wenn für das Quellpaket keine Daten vorhanden sind oder das Zielpaket nicht mehr verfügbar ist.
Priority
Rückgabewert
Keine
Bemerkungen
Rückgabewert: keiner
Treiber sollten NdisCopyFromPacketToPacketSafe anstelle von NdisCopyFromPacketToPacket aufrufen. NDIS 5.1-Miniporttreiber müssen NdisCopyFromPacketToPacketSafe anstelle von NdisCopyFromPacketToPacket aufrufen. Im Gegensatz zu NdisCopyFromPacketToPacket VerursachtNdisCopyFromPacketToPacketSafe keine Fehlerprüfung, wenn die Systemressourcen niedrig oder erschöpft sind.
Der Aufrufer von NdisCopyFromPacketToPacket ordnet das Zielpaket zu, wenn nicht auch das Quellpaket. Der Paketdeskriptor des Zielpakets sollte über genügend verkettete Pufferdeskriptoren verfügen, um die Daten zu empfangen.
Wenn dem Quellpaket keine Daten mehr oder dem Zielpaket der Speicherplatz fehlt, bevor die angegebene Anzahl von Bytes kopiert wurde, wird der Kopiervorgang beendet. In beiden Fällen gibt NdisCopyFromPacketToPacket die Anzahl der Bytes zurück, die erfolgreich aus der Quelle in das Zielpaket kopiert wurden.
NdisCopyFromPacketToPacket kopiert keine Out-of-Band-Informationen, die der angegebenen Quelle zugeordnet sind, in das Ziel. Um diese Informationen zu kopieren, kann der Treiber zeiger verwenden, die von NDIS_OOB_DATA_FROM_PACKET zurückgegeben werden, und dann NdisMoveMemory aufrufen.
Der Treiber muss vor dem Aufrufen von NdisCopyFromPacketToPacket jede spin-Sperre freigeben, die er hält.
- Zielplattform: Universell
- Version: Wird für NDIS 6.0-Treiber in Windows Vista nicht unterstützt. Verwenden Sie stattdessen NdisCopyFromNetBufferToNetBuffer. Unterstützt für NDIS 5.1-Treiber in Windows Vista und Windows XP, aber verwenden Sie stattdessen NdisCopyFromPacketToPacketSafe.
Anforderungen
Anforderung | Wert |
---|---|
Header | ndis.h (include Ndis.h) |
Bibliothek | Ndis.lib |
IRQL | IRQL <= DISPATCH_LEVEL |