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

Voir aussi