NdisCopyFromPacketToPacketSafe, fonction (ndis.h)
Note NDIS 5. x a été déconseillé et est remplacé par NDIS 6. x. Pour le développement de nouveaux pilotes NDIS, consultez Pilotes réseau à partir de Windows Vista. Pour plus d’informations sur le portage de NDIS 5. x pilotes dans NDIS 6. x, consultez Portage des pilotes NDIS 5.x vers NDIS 6.0.
NdisCopyFromPacketToPacket copie une plage de données spécifiée d’un paquet à un autre.
Syntaxe
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
);
Paramètres
[in] Destination
Pointeur vers le descripteur de paquet de destination.
[in] DestinationOffset
Spécifie le décalage d’octet dans le paquet de destination auquel commencer l’écriture des données copiées.
[in] BytesToCopy
Spécifie le nombre d’octets à copier.
[in] Source
Pointeur vers le descripteur de paquet source.
[in] SourceOffset
Spécifie le décalage d’octet dans le paquet source à partir duquel commencer la copie des données.
[out] BytesCopied
Pointeur vers la variable fournie par l’appelant dans laquelle cette fonction retourne le nombre d’octets réellement copiés. Ce nombre peut être inférieur à la valeur de BytesToCopy si le paquet source manque de données ou si le paquet de destination manque d’espace.
Priority
Valeur de retour
None
Remarques
Valeur de retour : aucune
Les pilotes doivent appeler NdisCopyFromPacketToPacketSafe au lieu de NdisCopyFromPacketToPacket. Les pilotes miniport NDIS 5.1 doivent appeler NdisCopyFromPacketToPacketSafe au lieu de NdisCopyFromPacketToPacket. Contrairement à NdisCopyFromPacketToPacket, NdisCopyFromPacketToPacketSafe ne provoque pas de bogue case activée si les ressources système sont faibles ou épuisées.
L’appelant de NdisCopyFromPacketToPacket alloue le paquet de destination, si ce n’est pas également le paquet source. Le descripteur de paquets du paquet de destination doit avoir suffisamment de descripteurs de mémoire tampon chaînés pour recevoir les données.
Si le paquet source manque de données ou si le paquet de destination manque d’espace avant que le nombre d’octets spécifié ait été copié, l’opération de copie s’arrête. Dans les deux cas, NdisCopyFromPacketToPacket retourne le nombre d’octets correctement copiés de la source vers le paquet de destination.
NdisCopyFromPacketToPacket ne copie pas les informations hors bande associées à la source donnée dans la destination. Pour copier ces informations, le pilote peut utiliser des pointeurs retournés par NDIS_OOB_DATA_FROM_PACKET , puis appeler NdisMoveMemory.
Le pilote doit libérer tout verrou de rotation qu’il tient avant d’appeler NdisCopyFromPacketToPacket.
- Plateforme cible : universelle
- Version : non pris en charge pour les pilotes NDIS 6.0 dans Windows Vista. Utilisez plutôt NdisCopyFromNetBufferToNetBuffer. Pris en charge pour les pilotes NDIS 5.1 dans Windows Vista et Windows XP, mais utilisez NdisCopyFromPacketToPacketSafe à la place.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ndis.h (inclure Ndis.h) |
Bibliothèque | Ndis.lib |
IRQL | IRQL <= DISPATCH_LEVEL |