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.
PINITIALIZE_DMA_TRANSFER_CONTEXT PinitializeDmaTransferContext;
NTSTATUS PinitializeDmaTransferContext(
[in] PDMA_ADAPTER DmaAdapter,
[out] PVOID DmaTransferContext
)
{...}
[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.
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 |
---|---|
|
No se pudo realizar esta rutina debido a valores de parámetro no válidos pasados por el autor de la llamada. |
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.
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 |