Compartilhar via


DMA_APPEND_HANDLER função de retorno de chamada (netdma.h)

Observação não há suporte para a interface NetDMA no Windows 8 e posterior.

A função ProviderAppendDma acrescenta uma lista vinculada de descritores DMA ao último descritor em um canal DMA.

Sintaxe

DMA_APPEND_HANDLER DmaAppendHandler;

NTSTATUS DmaAppendHandler(
  [in] PVOID ProviderChannelContext,
  [in] PNET_DMA_DESCRIPTOR DescriptorVirtualAddress,
  [in] PHYSICAL_ADDRESS DescriptorPhysicalAddress,
  [in] ULONG DescriptorCount
)
{...}

Parâmetros

[in] ProviderChannelContext

Um ponteiro que identifica a área de contexto de um canal DMA. O provedor de DMA retornou esse identificador ao NetDMA no local especificado no parâmetro pProviderChannelContext do função ProviderAllocateDmaChannel.

[in] DescriptorVirtualAddress

Um ponteiro para o endereço virtual da primeira estrutura NET_DMA_DESCRIPTOR em uma lista vinculada de descritores DMA. O endereço físico correspondente é especificado no parâmetro DescriptorPhysicalAddress.

[in] DescriptorPhysicalAddress

Um ponteiro para o endereço físico do primeiro descritor de DMA em uma lista vinculada de descritores de DMA. O endereço virtual correspondente é especificado no parâmetro DescriptorVirtualAddress.

[in] DescriptorCount

O número de descritores DMA em DescriptorVirtualAddress .

Observação drivers do provedor NetDMA antes do NetDMA versão 2.0 podem ignorar o parâmetro DescriptorCount. Para o NetDMA 2.0 e versões posteriores, esse parâmetro é a contagem de descritores na operação DMA.
 

Valor de retorno

ProviderAppendDma retorna um dos seguintes valores de status:

Código de retorno Descrição
STATUS_SUCCESS
A operação foi concluída com êxito.
STATUS_UNSUCCESSFUL
A operação falhou por motivos não especificados.

Observações

A interface NetDMA chama a função ProviderAppendDma de um driver de provedor DMA para acrescentar uma lista vinculada de descritores DMA após o último descritor em um canal DMA. A interface NetDMA pode chamar ProviderAppendDma qualquer número de vezes após a inicialização de uma transferência de DMA. No entanto, a interface NetDMA deve chamar a função ProviderStartDma após uma redefinição ou anulação de canal ou depois que o canal DMA for alocado pela primeira vez.

Observação no NetDMA 2.0 e versões posteriores, a lista vinculada de descritores não é encerrada em NULL. O membro NextDescriptor no último descritor da lista vinculada especifica o endereço físico da estrutura de NET_DMA_DESCRIPTOR que será usado na chamada subsequente para a função ProviderAppendDma. Um driver de provedor do NetDMA 2.0 pode armazenar em cache o endereço em NextDescriptor e usar esse endereço como o início da lista vinculada para a próxima operação de Acréscimo.
 
A interface NetDMA define o NextDescriptor membro do último descritor para o início da nova cadeia de descritores antes de chamar ProviderAppendDma.

Se o descritor atual em uma transferência ativa for o último descritor, o mecanismo DMA deverá reler o último descritor. O membro NextDescriptor na última estrutura de NET_DMA_DESCRIPTOR deve ter um novo endereço e o mecanismo DMA deve continuar com o próximo descritor. Se o descritor atual não for o último descritor, o mecanismo DMA poderá continuar processando descritores DMA sem tarefas adicionais.

O NetDMA chama ProviderAppendDma no IRQL <= DISPATCH_LEVEL.

Requisitos

Requisito Valor
de cliente com suporte mínimo Com suporte para drivers NetDMA 2.0 no Windows Server 2008. Com suporte para drivers NetDMA 1.1 no Windows Server 2008. Com suporte para drivers NetDMA 1.0 no Windows Server 2008 e no Windows Vista.
da Plataforma de Destino Windows
cabeçalho netdma.h (inclua Netdma.h)
IRQL <= DISPATCH_LEVEL

Consulte também

NET_DMA_DESCRIPTOR

ProviderAllocateDmaChannel

providerStartDma