Partager via


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

Voir aussi