estrutura NET_DMA_CHANNEL_PARAMETERS (netdma.h)
Sintaxe
typedef struct _NET_DMA_CHANNEL_PARAMETERS {
USHORT Revision;
USHORT Size;
ULONG Flags;
PVOID CompletionVirtualAddress;
PHYSICAL_ADDRESS CompletionPhysicalAddress;
ULONG ProcessorAffinityMask;
ULONG ChannelPriority;
ULONG CpuNumber;
GROUP_AFFINITY ProcessorAffinityMaskEx;
} NET_DMA_CHANNEL_PARAMETERS, *PNET_DMA_CHANNEL_PARAMETERS;
Membros
Revision
O número de revisão dessa estrutura.
Para Windows 7 e Windows Server 2008 R2 e posteriores, defina esse membro como NET_DMA_CHANNEL_PARAMETERS_REVISION_2.
Para Windows Vista e Windows Server 2008, defina esse membro como NET_DMA_CHANNEL_PARAMETERS_REVISION_1.
Size
O tamanho, em bytes, dessa estrutura. Defina esse membro como sizeof(NET_DMA_CHANNEL_PARAMETERS).
Flags
Um conjunto de bits para sinalizadores que definem atributos de canal DMA. Defina esse membro como zero. No momento, não há nenhum sinalizador definido.
CompletionVirtualAddress
O endereço virtual do local de memória em que o mecanismo de DMA pode gravar o status de conclusão da transferência de DMA. Esse endereço virtual está associado ao endereço físico especificado no
Membro CompletionPhysicalAddress .
CompletionPhysicalAddress
O endereço físico do local de memória em que o mecanismo de DMA pode gravar o status de conclusão da transferência de DMA. Se o sinalizador NET_DMA_STATUS_UPDATE_ON_COMPLETION não estiver definido no membro ControlFlags da estrutura NET_DMA_DESCRIPTOR , CompletionPhysicalAddress não será usado. Caso contrário, a conclusão status valor no endereço especificado é uma combinação de 64 bits de largura do endereço físico do descritor de DMA mais recente que o mecanismo de DMA processou e informações de status adicionais.
O endereço físico do descritor DMA deve estar alinhado aos limites de 64 bits. Portanto, os seis bits inferiores do endereço estão disponíveis para outras informações. O mecanismo de DMA combina os seguintes valores status com o endereço do descritor usando uma operação OR bit a bit:
Valor | Significado |
---|---|
|
A transferência de DMA para o descritor de DMA mais recente foi concluída sem erros e o mecanismo de DMA tem mais descritores a serem processados. |
|
A transferência de DMA para o último descritor de DMA na lista vinculada de descritores concluída sem erros. |
|
A transferência de DMA para o descritor de DMA mais recente foi concluída sem erros e as transferências de DMA são suspensas porque a interface NetDMA chamada função ProviderSuspendDma . O mecanismo de DMA reiniciará a transferência depois que a interface NetDMA chamar a função ProviderResumeDma . |
|
A transferência de DMA para a transferência de DMA mais recente foi anulada devido a erros ou porque a interface NetDMA chamou a função ProviderAbortDma . |
|
A transferência de DMA para o primeiro descritor não foi concluída e o endereço do descritor concluído não é válido. |
ProcessorAffinityMask
Um bitmap que indica CPUs que estão disponíveis para uso com esse canal DMA. Cada bit em ProcessorAffinityMask identifica uma CPU. Por exemplo, a configuração do bit 0 indica que a CPU 0 pode ser usada, a configuração do bit 1 indica que a CPU 1 pode ser usada e assim por diante.
ChannelPriority
Um valor de prioridade de canal DMA que representa a prioridade para o canal DMA em relação a outros canais de DMA no mesmo mecanismo de DMA. Uma configuração de prioridade mais baixa indica um canal de DMA de prioridade mais baixa. Se esse valor indicar uma prioridade mais alta do que o hardware dá suporte, o valor mais alto que o hardware dá suporte deverá ser usado. A interface Do Windows Vista NetDMA define esse membro como zero.
CpuNumber
O número da CPU associado ao canal DMA. O driver do provedor de DMA define o valor antes de retornar do
Função ProviderAllocateDmaChannel . O mecanismo de DMA usa essa CPU para interromper DPCs associados ao canal DMA. Se o mecanismo de DMA e a configuração do computador derem suporte a MSI-X, a interrupção também deverá ser associada ao número de CPU indicado, a menos que não haja nenhuma interrupção MSI-X disponível para a CPU indicada.
ProcessorAffinityMaskEx
O número do grupo e um bitmap das CPUs às quais esse canal DMA pode ser associado.
Comentários
Antes de usar um canal DMA, a interface NetDMA chama o
Função ProviderAllocateDmaChannel do driver do provedor de DMA para alocar e inicializar o canal DMA.
A interface NetDMA fornece uma estrutura NET_DMA_CHANNEL_PARAMETERS no parâmetro ChannelParameters de ProviderAllocateDmaChannel.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Cabeçalho | netdma.h (inclua Netdma.h) |