DMA_APPEND_HANDLER función de devolución de llamada (netdma.h)
La función ProviderAppendDma anexa una lista vinculada de descriptores DMA al último descriptor de un canal DMA.
DMA_APPEND_HANDLER DmaAppendHandler;
NTSTATUS DmaAppendHandler(
[in] PVOID ProviderChannelContext,
[in] PNET_DMA_DESCRIPTOR DescriptorVirtualAddress,
[in] PHYSICAL_ADDRESS DescriptorPhysicalAddress,
[in] ULONG DescriptorCount
)
{...}
[in] ProviderChannelContext
Puntero que identifica el área de contexto de un canal DMA. El proveedor DMA devolvió este identificador a NetDMA en la ubicación especificada en el parámetro pProviderChannelContext del Función ProviderAllocateDmaChannel .
[in] DescriptorVirtualAddress
Puntero a la dirección virtual de la primera estructura NET_DMA_DESCRIPTOR en una lista vinculada de descriptores DMA. La dirección física correspondiente se especifica en el parámetro DescriptorPhysicalAddress .
[in] DescriptorPhysicalAddress
Puntero a la dirección física del primer descriptor DMA en una lista vinculada de descriptores DMA. La dirección virtual correspondiente se especifica en el parámetro DescriptorVirtualAddress .
[in] DescriptorCount
Número de descriptores DMA en DescriptorVirtualAddress .
ProviderAppendDma devuelve uno de los siguientes valores de estado:
Código devuelto | Descripción |
---|---|
|
La operación se ha completado correctamente. |
|
Error en la operación por motivos no especificados. |
La interfaz NetDMA llama a una función ProviderAppendDma del controlador DMA para anexar una lista vinculada de descriptores DMA después del último descriptor en un canal DMA. La interfaz netDMA puede llamar a ProviderAppendDma cualquier número de veces después de iniciar una transferencia DMA. Sin embargo, la interfaz NetDMA debe llamar a la función ProviderStartDma después de un restablecimiento o anulación del canal, o después de asignar el canal DMA por primera vez.
Si el descriptor actual de una transferencia activa es el último descriptor, el motor DMA debe volver a leer el último descriptor. El miembro NextDescriptor de la última estructura de NET_DMA_DESCRIPTOR debe tener una nueva dirección y el motor DMA debe continuar con el descriptor siguiente. Si el descriptor actual no es el último descriptor, el motor DMA puede continuar procesando descriptores DMA sin tareas adicionales.
NetDMA llama a ProviderAppendDma en IRQL <= DISPATCH_LEVEL.
Requisito | Value |
---|---|
Cliente mínimo compatible | Compatible con controladores netDMA 2.0 en Windows Server 2008. Compatible con controladores netDMA 1.1 en Windows Server 2008. Compatible con controladores netDMA 1.0 en Windows Server 2008 y Windows Vista. |
Plataforma de destino | Windows |
Encabezado | netdma.h (incluya Netdma.h) |
IRQL | <= DISPATCH_LEVEL |