Funzione NdisCopyFromPacketToPacketSafe (ndis.h)
Nota NDIS 5. x è stato deprecato e sostituito da NDIS 6. x. Per i nuovi driver NDIS, vedere Driver di rete a partire da Windows Vista. Per informazioni sulla conversione di NDIS 5. driver x a NDIS 6. x, vedere Porting NDIS 5.x Drivers to NDIS 6.0.
NdisCopyFromPacketToPacket copia un intervallo di dati specificato da un pacchetto a un altro.
Sintassi
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
);
Parametri
[in] Destination
Puntatore al descrittore del pacchetto di destinazione.
[in] DestinationOffset
Specifica l'offset di byte all'interno del pacchetto di destinazione in corrispondenza del quale iniziare a scrivere i dati copiati.
[in] BytesToCopy
Specifica il numero di byte da copiare.
[in] Source
Puntatore al descrittore del pacchetto di origine.
[in] SourceOffset
Specifica l'offset di byte all'interno del pacchetto di origine in corrispondenza del quale iniziare a copiare i dati.
[out] BytesCopied
Puntatore alla variabile fornita dal chiamante in cui questa funzione restituisce il numero di byte effettivamente copiati. Questo numero può essere minore del valore di ByteToCopy se il pacchetto di origine esaurisce i dati o il pacchetto di destinazione esaurisce lo spazio.
Priority
Valore restituito
Nessuno
Osservazioni
Valore restituito: Nessuno
I driver devono chiamare NdisCopyFromPacketToPacketSafe anziché NdisCopyFromPacketToPacket. I driver miniport NDIS 5.1 devono chiamare NdisCopyFromPacketToPacketSafe anziché NdisCopyFromPacketToPacket. A differenza di NdisCopyFromPacketToPacket, NdisCopyFromPacketToPacketSafe non causa un controllo dei bug se le risorse di sistema sono basse o esaurite.
Il chiamante di NdisCopyFromPacketToPacket alloca anche il pacchetto di destinazione, se non il pacchetto di origine. Il descrittore di pacchetti del pacchetto di destinazione deve disporre di descrittori del buffer concatenati sufficienti per ricevere i dati.
Se il pacchetto di origine esaurisce i dati o il pacchetto di destinazione non ha spazio prima della copia del numero specificato di byte, l'operazione di copia viene arrestata. In entrambi i casi, NdisCopyFromPacketToPacket restituisce il numero di byte copiati correttamente dall'origine al pacchetto di destinazione.
NdisCopyFromPacketToPacket non copia le informazioni fuori banda associate all'origine specificata nell'di destinazione. Per copiare queste informazioni, il driver può usare puntatori restituiti da NDIS_OOB_DATA_FROM_PACKET e quindi chiamare NdisMoveMemory.
Il driver deve rilasciare qualsiasi blocco spin che mantiene prima di chiamare NdisCopyFromPacketToPacket.
- Piattaforma di destinazione: universal
- Versione: non supportata per i driver NDIS 6.0 in Windows Vista. Usare NdisCopyFromNetBufferToNetBuffer. Supportato per i driver NDIS 5.1 in Windows Vista e Windows XP, ma usa invece NdisCopyFromPacketToPacketSafe.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | ndis.h (include Ndis.h) |
libreria | Ndis.lib |
IRQL | IRQL <= DISPATCH_LEVEL |