PINITIALIZE_DMA_TRANSFER_CONTEXT función de devolución de llamada (wdm.h)

El InitializeDmaTransferContext rutina inicializa un contexto de transferencia de DMA opaco que se usa para realizar un seguimiento de las asignaciones pendientes de recursos DMA.

Sintaxis

PINITIALIZE_DMA_TRANSFER_CONTEXT PinitializeDmaTransferContext;

NTSTATUS PinitializeDmaTransferContext(
  [in]  PDMA_ADAPTER DmaAdapter,
  [out] PVOID DmaTransferContext
)
{...}

Parámetros

[in] DmaAdapter

Puntero a una estructura de DMA_ADAPTER. Esta estructura es el objeto de adaptador que representa el dispositivo DMA maestro de bus del controlador o el canal DMA del sistema. El autor de la llamada obtuvo este puntero de una llamada anterior a la rutina IoGetDmaAdapter.

[out] DmaTransferContext

Puntero a un búfer asignado por el autor de la llamada en el que InitializeDmaTransferContext escribe los valores iniciales para el contexto de transferencia de DMA. Este contexto es opaco para el autor de la llamada. El autor de la llamada debe asignar un búfer lo suficientemente grande como para contener el contexto de transferencia DMA. El tamaño, en bytes, de este contexto se especifica mediante la constante DMA_TRANSFER_CONTEXT_SIZE_V1 en el archivo de encabezado Wdm.h.

Valor devuelto

initializeDmaTransferContext devuelve STATUS_SUCCESS si la llamada se realiza correctamente. Entre los posibles valores devueltos de error se incluyen los siguientes códigos de estado.

Código devuelto Descripción
STATUS_INVALID_PARAMETERS
No se pudo realizar esta rutina debido a valores de parámetro no válidos pasados por el autor de la llamada.

Observaciones

initializeDmaTransferContext no es una rutina del sistema a la que se puede llamar directamente por nombre. Solo se puede llamar a esta rutina por puntero desde la dirección devuelta en una estructura de DMA_OPERATIONS. Los controladores obtienen la dirección de esta rutina llamando a IoGetDmaAdapter con el miembro Version del parámetro DeviceDescription establecido en DEVICE_DESCRIPTION_VERSION3. Si IoGetDmaAdapter devuelve null, la rutina no está disponible en la plataforma.

Se debe proporcionar un contexto de transferencia de DMA inicializado como parámetro para la AllocateAdapterChannelEx, GetScatterGatherListExo rutina buildScatterGatherListEx. Cada una de estas rutinas escribe información sobre la asignación de recursos DMA solicitada al contexto de transferencia de DMA. Esta información es opaca para el autor de la llamada. Para cancelar una solicitud de asignación pendiente, el autor de la llamada debe proporcionar el contexto de transferencia de DMA para la solicitud a la rutina CancelAdapterChannel.

El contexto de transferencia DMA que se proporciona a AllocateAdapterChannelEx, GetScatterGatherListExo BuildScatterGatherListEx debe ser único en todas las solicitudes de asignación de adaptadores.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible a partir de Windows 8.
de la plataforma de destino de Escritorio
encabezado de wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
irQL <= DISPATCH_LEVEL

Consulte también

AllocateAdapterChannelEx

buildScatterGatherListEx

CancelAdapterChannel

DMA_ADAPTER

DMA_OPERATIONS

GetScatterGatherListEx

IoGetDmaAdapter