NdisCopyFromPacketToPacketSafe, fonction (ndis.h)
Remarque 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. pilotes x vers 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 auquel 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 octetsToCopy si le paquet source s’exécute en dehors des données ou si le paquet de destination manque d’espace.
Priority
Valeur de retour
Aucun
Remarques
Valeur de retour : None
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 n’entraîne pas de vérification de bogue si les ressources système sont faibles ou épuisées.
L’appelant de NdisCopyFromPacketToPacket alloue le paquet de destination, si ce n’est pas le paquet source également. 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 spécifié d’octets 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 aucune information hors bande associée au source donné dans le de 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 NdisCopyFromNetBufferToNetBufferà la place. Pris en charge pour les pilotes NDIS 5.1 dans Windows Vista et Windows XP, mais utilisez NdisCopyFromPacketToPacketSafe à la place.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | ndis.h (include Ndis.h) |
bibliothèque | Ndis.lib |
IRQL | IRQL <= DISPATCH_LEVEL |