Función NdisCopyFromPacketToPacketSafe (ndis.h)
Nota NDIS 5. x ha quedado 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 Porting NDIS 5.x Drivers to NDIS 6.0.
NdisCopyFromPacketToPacket copia un intervalo especificado de datos 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 paquete 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 copiados realmente. 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
Ninguno
Observaciones
Valor devuelto: Ninguno
Los controladores deben llamar a NdisCopyFromPacketToPacketSafe en lugar de NdisCopyFromPacketToPacket. Los controladores de miniporte 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. 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 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 de dado al Destino. 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 giro que esté manteniendo antes de llamar a NdisCopyFromPacketToPacket.
- Plataforma de destino: universal de
- Versión: no se admite para controladores NDIS 6.0 en Windows Vista. Use NdisCopyFromNetBufferToNetBufferen su lugar. Compatible con controladores NDIS 5.1 en Windows Vista y Windows XP, pero usa NdisCopyFromPacketToPacketSafe en su lugar.
Requisitos
Requisito | Valor |
---|---|
encabezado de | ndis.h (incluya Ndis.h) |
biblioteca de | Ndis.lib |
irQL | IRQL <= DISPATCH_LEVEL |
Consulte también
- NdisAllocateBuffer
- NdisAllocatePacket
- NdisCopyFromPacketToPacketSafe
- NdisMoveMemory
- NDIS_OOB_DATA_FROM_PACKET
- NDIS_PACKET_OOB_DATA