Freigeben über


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

Weitere Informationen