estructura NET_DMA_CHANNEL_PARAMETERS (netdma.h)

Nota La interfaz NetDMA no se admite en Windows 8 y versiones posteriores.
 
La estructura NET_DMA_CHANNEL_PARAMETERS especifica los parámetros de configuración que un controlador de proveedor DMA debe usar para configurar un canal DMA.

Sintaxis

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;

Miembros

Revision

Número de revisión de esta estructura.

Para Windows 7 y Windows Server 2008 R2 y versiones posteriores, establezca este miembro en NET_DMA_CHANNEL_PARAMETERS_REVISION_2.

Para Windows Vista y Windows Server 2008, establezca este miembro en NET_DMA_CHANNEL_PARAMETERS_REVISION_1.

Size

Tamaño, en bytes, de esta estructura. Establezca este miembro en sizeof(NET_DMA_CHANNEL_PARAMETERS).

Flags

Conjunto de bits para marcas que definen atributos de canal DMA. Establezca este miembro en cero. Actualmente no hay marcas definidas.

CompletionVirtualAddress

Dirección virtual de la ubicación de memoria donde el motor DMA puede escribir el estado de finalización de la transferencia de DMA. Esta dirección virtual está asociada a la dirección física especificada en .
Miembro CompletionPhysicalAddress .

CompletionPhysicalAddress

Dirección física de la ubicación de memoria donde el motor DMA puede escribir el estado de finalización de transferencia de DMA. Si la marca NET_DMA_STATUS_UPDATE_ON_COMPLETION no está establecida en el miembro ControlFlags de la estructura NET_DMA_DESCRIPTOR , no se usa CompletionPhysicalAddress . De lo contrario, el valor de estado de finalización en la dirección especificada es una combinación de 64 bits de ancho de la dirección física del descriptor DMA más reciente que el motor DMA procesó y información de estado adicional.

La dirección física del descriptor DMA debe alinearse con los límites de 64 bits. Por lo tanto, los seis bits inferiores de la dirección están disponibles para otra información. El motor DMA combina los siguientes valores de estado con la dirección del descriptor mediante una operación OR bit a bit:

Valor Significado
NetDmaTransferStatusActive
La transferencia DMA del descriptor DMA más reciente se completó sin errores y el motor DMA tiene más descriptores para procesar.
NetDmaTransferStatusIdle
Transferencia DMA para el último descriptor DMA de la lista vinculada de descriptores completados sin errores.
NetDmaTransferStatusSuspend
La transferencia DMA para el descriptor DMA más reciente completada sin errores y las transferencias DMA se suspenden porque la interfaz NetDMA llamó a la función ProviderSuspendDma . El motor DMA reiniciará la transferencia después de que la interfaz NetDMA llame a la función ProviderResumeDma .
NetDmaTransferStatusHalted
La transferencia DMA para la transferencia DMA más reciente se anuló debido a errores o porque la interfaz NetDMA llamó a la función ProviderAbortDma .
NetDmaTransferStatusArmed
La transferencia DMA del primer descriptor no se ha completado y la dirección del descriptor completada no es válida.

ProcessorAffinityMask

Mapa de bits que indica las CPU que están disponibles para su uso con este canal DMA. Cada bit de ProcessorAffinityMask identifica una CPU. Por ejemplo, si se establece el bit 0, indica que se puede usar la CPU 0, el valor del bit 1 indica que se puede usar la CPU 1, etc.

ChannelPriority

Valor de prioridad del canal DMA que representa la prioridad del canal DMA en relación con otros canales DMA en el mismo motor DMA. Una configuración de prioridad inferior indica un canal DMA de prioridad inferior. Si este valor indica una prioridad más alta que la que admite el hardware, se debe usar el valor más alto que admite el hardware. La interfaz NetDMA de Windows Vista establece este miembro en cero.

CpuNumber

Número de CPU asociado al canal DMA. El controlador del proveedor DMA establece el valor antes de que se devuelva del
Función ProviderAllocateDmaChannel . El motor DMA usa esta CPU para interrumpir los DPC asociados al canal DMA. Si el motor DMA y la configuración del equipo admiten MSI-X, la interrupción también debe asociarse con el número de CPU indicado, a menos que no haya ninguna interrupción MSI-X disponible para la CPU indicada.

ProcessorAffinityMaskEx

El número de grupo y un mapa de bits de las CPU con las que se podría asociar este canal DMA.

Comentarios

Antes de usar un canal DMA, la interfaz NetDMA llama a
ProviderAllocateDmaChannel función del controlador de proveedor DMA para asignar e inicializar el canal DMA.

La interfaz NetDMA proporciona una estructura de NET_DMA_CHANNEL_PARAMETERS en el parámetro ChannelParameters de ProviderAllocateDmaChannel.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Encabezado netdma.h (incluya Netdma.h)

Consulte también

NET_DMA_DESCRIPTOR

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderResumeDma

ProviderSuspendDma