Función NdisCopyFromNetBufferToNetBuffer (ndis/nblapi.h)
Llame a la función NdisCopyFromNetBufferToNetBuffer para copiar datos de una estructura de NET_BUFFER de origen a una estructura de NET_BUFFER de destino.
Sintaxis
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
);
Parámetros
[in] Destination
Puntero a una estructura de destino asignada previamente NET_BUFFER.
[in] DestinationOffset
Desplazamiento de bytes dentro de la estructura NET_BUFFER de destino en la que empezar a escribir los datos copiados. Para obtener más información sobre DestinationOffset, vea la siguiente sección Comentarios.
[in] BytesToCopy
Número de bytes que se van a copiar.
[in] Source
Puntero a una estructura de origen asignada previamente NET_BUFFER.
[in] SourceOffset
Desplazamiento de bytes dentro de la estructura NET_BUFFER de origen en la que se van a empezar a copiar los datos. Para obtener más información sobre sourceOffset, vea la siguiente sección Comentarios.
[out] BytesCopied
Puntero a la variable proporcionada por el autor de la llamada en la que esta función devuelve el número de bytes copiados realmente. Este número puede ser menor que el valor de BytesToCopy si el origen se queda sin datos o el destino se queda sin espacio.
Valor devuelto
NdisCopyFromNetBufferToNetBuffer devuelve uno de los siguientes valores de estado:
Código devuelto | Descripción |
---|---|
|
La operación de copia se completó correctamente. |
|
Error en la operación de copia debido a recursos insuficientes. |
Observaciones
El autor de la llamada de NdisCopyFromNetBufferToNetBuffer asigna la estructura de NET_BUFFER de destino y posiblemente también la estructura de NET_BUFFER de origen. Las MDL de la estructura de NET_BUFFER de destino deben tener suficiente espacio para recibir los datos.
Si el origen NET_BUFFER estructura se queda sin datos o la estructura de destino NET_BUFFER se queda sin espacio antes de copiar el número especificado de bytes, la operación de copia se detiene. En cualquier caso, NdisCopyFromNetBufferToNetBuffer devuelve el número de bytes copiados correctamente del origen a la estructura de NET_BUFFER de destino.
El autor de la llamada debe asegurarse de que CurrentMdlOffset y valores de CurrentMdl sean correctos en las estructuras NET_BUFFER de origen y destino. NDIS no cambia los miembros del NET_BUFFER de destino. El autor de la llamada debe actualizar los valores de DataLength, DataOffsety CurrentMdlOffset en el NET_BUFFER de destino después de NdisCopyFromNetBufferToNetBuffer.
NDIS usa los desplazamientos en el DestionAtionOffset y parámetros SourceOffset de NdisCopyFromNetBufferToNetBuffer como desplazamientos del desplazamiento de datos actual. Por ejemplo, si el valor CurrentMdlOffset del NET_BUFFER de destino es xy valor destinationOffset es y, NDIS copia los datos en el NET_BUFFER de destino en un desplazamiento x+ y en la memoria que describe el CurrentMdl valor. Se aplican reglas similares al CurrentMdlOffset de en el NET_BUFFER de origen y el valor de SourceOffset.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Se admite en NDIS 6.0 y versiones posteriores. |
de la plataforma de destino de | Universal |
encabezado de | ndis/nblapi.h (incluya ndis.h) |
biblioteca de | Ndis.lib |
irQL | <= DISPATCH_LEVEL |
reglas de cumplimiento de DDI | Irql_NetBuffer_Function(ndis) |