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 |