Função NdisCopyFromNetBufferToNetBuffer (ndis/nblapi.h)
Chame a função NdisCopyFromNetBufferToNetBuffer para copiar dados de uma estrutura de NET_BUFFER de origem para uma estrutura de NET_BUFFER de destino.
Sintaxe
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
Um ponteiro para um destino alocado anteriormente NET_BUFFER estrutura.
[in] DestinationOffset
O deslocamento de bytes dentro do destino NET_BUFFER estrutura na qual começar a gravar os dados copiados. Para obter mais informações sobre DestinationOffset, consulte a seção Comentários a seguir.
[in] BytesToCopy
O número de bytes a serem copiados.
[in] Source
Um ponteiro para uma estrutura de NET_BUFFER de origem alocada anteriormente.
[in] SourceOffset
O deslocamento de bytes dentro da estrutura de NET_BUFFER de origem na qual começar a copiar os dados. Para obter mais informações sobre SourceOffset, consulte a seção Comentários a seguir.
[out] BytesCopied
Um 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 a origem ficar sem dados ou o destino ficar sem espaço.
Retornar valor
NdisCopyFromNetBufferToNetBuffer retorna um dos seguintes valores de status:
Código de retorno | Descrição |
---|---|
|
A operação de cópia foi concluída com êxito. |
|
A operação de cópia falhou devido a recursos insuficientes. |
Comentários
O chamador de NdisCopyFromNetBufferToNetBuffer aloca o destino NET_BUFFER estrutura e, possivelmente, a estrutura de NET_BUFFER de origem também. Os MDLs da estrutura de NET_BUFFER de destino devem ter espaço suficiente para receber os dados.
Se a estrutura de NET_BUFFER de origem ficar sem dados ou o destino NET_BUFFER estrutura ficar 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, NdisCopyFromNetBufferToNetBuffer retorna o número de bytes copiados com êxito da origem para a estrutura de NET_BUFFER de destino.
O chamador deve garantir que os valores CurrentMdlOffset e CurrentMdl estejam corretos nas estruturas de origem e destino NET_BUFFER. O NDIS não altera os membros no NET_BUFFER de destino. O chamador deve atualizar os valores DataLength, DataOffset e CurrentMdlOffset no destino NET_BUFFER após o retorno de NdisCopyFromNetBufferToNetBuffer .
O NDIS usa os deslocamentos nos parâmetros DestionationOffset e SourceOffset de NdisCopyFromNetBufferToNetBuffer como deslocamentos do deslocamento de dados atual. Por exemplo, se o valor CurrentMdlOffset no destino NET_BUFFER for x e DestinationOffset for y, o NDIS copiará os dados para o destino NET_BUFFER em um deslocamento x+ y na memória que o valor CurrentMdl descreve. Regras semelhantes se aplicam ao CurrentMdlOffset no NET_BUFFER de origem e ao valor SourceOffset .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.0 e posterior. |
Plataforma de Destino | Universal |
Cabeçalho | ndis/nblapi.h (inclua ndis.h) |
Biblioteca | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Regras de conformidade de DDI | Irql_NetBuffer_Function(ndis) |