Share via


Função NdisCopyFromPacketToPacketSafe (ndis.h)

Nota NDIS 5. x foi preterido e substituído pelo NDIS 6. x. Para obter o novo desenvolvimento de driver NDIS, consulte Drivers de rede começando com o Windows Vista. Para obter informações sobre como portar o NDIS 5. x drivers para NDIS 6. x, consulte Portabilidade de drivers NDIS 5.x para NDIS 6.0.

NdisCopyFromPacketToPacket copia um intervalo especificado de dados de um pacote para outro.

Sintaxe

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

Ponteiro para o descritor de pacote de destino.

[in] DestinationOffset

Especifica o deslocamento de bytes dentro do pacote de destino no qual começar a gravar os dados copiados.

[in] BytesToCopy

Especifica o número de bytes a serem copiados.

[in] Source

Ponteiro para o descritor de pacote de origem.

[in] SourceOffset

Especifica o deslocamento de bytes dentro do pacote de origem no qual começar a copiar os dados.

[out] BytesCopied

Ponteiro para a variável fornecida pelo chamador na qual essa função retorna o número de bytes realmente copiados. Esse número pode ser menor que o valor de BytesToCopy se o pacote de origem ficar sem dados ou o pacote de destino ficar sem espaço.

Priority

Retornar valor

Nenhum

Comentários

Valor de retorno: nenhum

Os drivers devem chamar NdisCopyFromPacketToPacketSafe em vez de NdisCopyFromPacketToPacket. Os drivers de miniporto NDIS 5.1 devem chamar NdisCopyFromPacketToPacketSafe em vez de NdisCopyFromPacketToPacket. Ao contrário de NdisCopyFromPacketToPacket, NdisCopyFromPacketToPacketSafe não causará um bug marcar se os recursos do sistema estiverem baixos ou esgotados.

O chamador de NdisCopyFromPacketToPacket aloca o pacote de destino, se não o pacote de origem também. O descritor de pacote do pacote de destino deve ter descritores de buffer encadeados suficientes para receber os dados.

Se o pacote de origem ficar sem dados ou o pacote de destino sem espaço antes que o número especificado de bytes seja copiado, a operação de cópia será interrompida. Em ambos os casos, NdisCopyFromPacketToPacket retorna o número de bytes copiados com êxito da origem para o pacote de destino.

NdisCopyFromPacketToPacket não copia nenhuma informação fora de banda associada à Fonte fornecida para o Destino. Para copiar essas informações, o driver pode usar ponteiros retornados por NDIS_OOB_DATA_FROM_PACKET e chamar NdisMoveMemory.

O driver deve liberar qualquer bloqueio de rotação que esteja segurando antes de chamar NdisCopyFromPacketToPacket.

  • Plataforma de destino: Universal
  • Versão: não há suporte para drivers NDIS 6.0 no Windows Vista. Em vez disso, use NdisCopyFromNetBufferToNetBuffer. Compatível com drivers NDIS 5.1 no Windows Vista e Windows XP, mas use NdisCopyFromPacketToPacketSafe.

Requisitos

Requisito Valor
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

Confira também