Compartir a través de


Función NdisCopyFromPacketToPacketSafe (ndis.h)

Nota NDIS 5. x está en desuso y se sustituye por NDIS 6. x. Para el nuevo desarrollo de controladores NDIS, consulte Controladores de red a partir de Windows Vista. Para obtener información sobre cómo migrar NDIS 5. Controladores x a NDIS 6. x, consulte Migración de controladores NDIS 5.x a NDIS 6.0.

NdisCopyFromPacketToPacket copia un intervalo de datos especificado de un paquete a otro.

Sintaxis

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
);

Parámetros

[in] Destination

Puntero al descriptor de paquetes de destino.

[in] DestinationOffset

Especifica el desplazamiento de bytes dentro del paquete de destino en el que empezar a escribir los datos copiados.

[in] BytesToCopy

Especifica el número de bytes que se van a copiar.

[in] Source

Puntero al descriptor de paquetes de origen.

[in] SourceOffset

Especifica el desplazamiento de bytes dentro del paquete de origen en el que se van a empezar a copiar los datos.

[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 realmente copiados. Este número puede ser menor que el valor de BytesToCopy si el paquete de origen se queda sin datos o el paquete de destino se queda sin espacio.

Priority

Valor devuelto

None

Observaciones

Valor devuelto: None

Los controladores deben llamar a NdisCopyFromPacketToPacketSafe en lugar de a NdisCopyFromPacketToPacket. Los controladores de miniporte de NDIS 5.1 deben llamar a NdisCopyFromPacketToPacketSafe en lugar de NdisCopyFromPacketToPacket. A diferencia de NdisCopyFromPacketToPacket, NdisCopyFromPacketToPacketSafe no provoca una comprobación de errores si los recursos del sistema están bajos o agotados.

El autor de la llamada de NdisCopyFromPacketToPacket asigna el paquete de destino, si no el paquete de origen también. El descriptor de paquete del paquete de destino debe tener suficientes descriptores de búfer encadenados para recibir los datos.

Si el paquete de origen se queda sin datos o el paquete de destino está fuera del espacio antes de copiar el número especificado de bytes, la operación de copia se detiene. En cualquier caso, NdisCopyFromPacketToPacket devuelve el número de bytes copiados correctamente del origen al paquete de destino.

NdisCopyFromPacketToPacket no copia ninguna información fuera de banda asociada al origen dado aldestino. Para copiar esta información, el controlador puede usar punteros devueltos por NDIS_OOB_DATA_FROM_PACKET y, a continuación, llamar a NdisMoveMemory.

El controlador debe liberar cualquier bloqueo de número que esté manteniendo antes de llamar a NdisCopyFromPacketToPacket.

  • Plataforma de destino: Universal
  • Versión: no se admite para controladores NDIS 6.0 en Windows Vista. En su lugar, use NdisCopyFromNetBufferToNetBuffer. Compatible con controladores NDIS 5.1 en Windows Vista y Windows XP, pero usa NdisCopyFromPacketToPacketSafe en su lugar.

Requisitos

Requisito Valor
Header ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

Consulte también