NdisCopyFromNetBufferToNetBuffer, fonction (ndis/nblapi.h)
Appelez la fonction NdisCopyFromNetBufferToNetBuffer pour copier des données d’une structure NET_BUFFER source vers une structure de NET_BUFFER de destination.
Syntaxe
NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisCopyFromNetBufferToNetBuffer(
[in] NET_BUFFER *Destination,
[in] ULONG DestinationOffset,
[in] ULONG BytesToCopy,
[in] NET_BUFFER const *Source,
[in] ULONG SourceOffset,
[out] ULONG *BytesCopied
);
Paramètres
[in] Destination
Pointeur vers une structure de destination précédemment allouée NET_BUFFER.
[in] DestinationOffset
Décalage d’octet dans la structure NET_BUFFER de destination à laquelle commencer l’écriture des données copiées. Pour plus d’informations sur destinationOffset, consultez la section Remarques suivante.
[in] BytesToCopy
Nombre d’octets à copier.
[in] Source
Pointeur vers une structure de NET_BUFFER source précédemment allouée.
[in] SourceOffset
Décalage d’octet dans la structure NET_BUFFER source à laquelle commencer la copie des données. Pour plus d’informations sur SourceOffset, consultez la section Remarques suivante.
[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 la source manque de données ou si la destination manque d’espace.
Valeur de retour
NdisCopyFromNetBufferToNetBuffer retourne l’une des valeurs d’état suivantes :
Retourner le code | Description |
---|---|
|
L’opération de copie s’est terminée avec succès. |
|
L’opération de copie a échoué en raison de ressources insuffisantes. |
Remarques
L’appelant de NdisCopyFromNetBufferToNetBuffer alloue également la structure NET_BUFFER de destination et éventuellement la structure NET_BUFFER source. Les MDL de la structure NET_BUFFER de destination doivent avoir suffisamment d’espace pour recevoir les données.
Si la source NET_BUFFER structure s’exécute en dehors des données ou si la structure de destination NET_BUFFER 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, NdisCopyFromNetBufferToNetBuffer retourne le nombre d’octets correctement copiés de la source vers la structure NET_BUFFER de destination.
L’appelant doit s’assurer que CurrentMdlOffset et valeurs currentMdl sont correctes dans les structures de NET_BUFFER source et de destination. NDIS ne modifie pas les membres dans le NET_BUFFER de destination. L’appelant doit mettre à jour le DataLength, DataOffsetet valeurs CurrentMdlOffset dans le NET_BUFFER de destination après NdisCopyFromNetBufferToNetBufferToNetBuffer.
NDIS utilise les décalages dans les paramètres DestionationOffset et SourceOffset des paramètres de NdisCopyFromNetBufferToNetBuffer comme décalages du décalage de données actuel. Par exemple, si la valeur currentMdlOffset dans le NET_BUFFER de destination est x, et valeur DestinationOffset est y, NDIS copie les données dans le NET_BUFFER de destination à un décalage x+ y dans la mémoire décrite par la valeur CurrentMdl. Les règles similaires s’appliquent aux CurrentMdlOffset dans le NET_BUFFER source et à la valeur SourceOffset.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Prise en charge dans NDIS 6.0 et versions ultérieures. |
plateforme cible | Universel |
d’en-tête | ndis/nblapi.h (include ndis.h) |
bibliothèque | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
règles de conformité DDI | Irql_NetBuffer_Function(ndis) |