EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL función de devolución de llamada (sercx.h)
La función de devolución de llamada de evento EvtSerCx2SystemDmaTransmitConfigureDmaChannel llama a la versión 2 de la extensión del marco de serie (SerCx2) para permitir que el controlador de controlador de serie realice cualquier configuración personalizada del adaptador DMA que pueda ser necesario antes del inicio de cada transferencia de DMA en una transacción de transmisión de DMA del sistema.
Sintaxis
EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL EvtSercx2SystemDmaTransmitConfigureDmaChannel;
NTSTATUS EvtSercx2SystemDmaTransmitConfigureDmaChannel(
[in] SERCX2SYSTEMDMATRANSMIT SystemDmaTransmit,
[in] PMDL Mdl,
[in] ULONG Offset,
[in] ULONG Length
)
{...}
Parámetros
[in] SystemDmaTransmit
Identificador de SERCX2SYSTEMDMATRANSMIT a un objeto system-DMA-transmit. Anteriormente, el controlador de controlador serie llamó al método SerCx2SystemDmaTransmitCreate para crear este objeto.
[in] Mdl
Puntero a un MDL que describe las páginas de memoria que abarca el búfer de escritura para la transacción system-DMA-transmit. La lista de dispersión y recopilación de la transferencia DMA usará la región de esta memoria especificada por el offset de
[in] Offset
Desplazamiento inicial de la transferencia de datos. Este parámetro es un desplazamiento de bytes desde el principio de la región del búfer descrita por MDL. Si MDL especifica un total de N bytes de espacio en búfer, los valores posibles de desplazamiento están en el intervalo de 0 a N-1.
[in] Length
Tamaño, en bytes, de la transferencia de datos. Si MDL especifica un total de N bytes de espacio en búfer, los valores posibles de Longitud están en el intervalo de 1 a N-Desplazamiento.
Valor devuelto
La función EvtSerCx2SystemDmaTransmitConfigureDmaChannel devuelve STATUS_SUCCESS si la llamada se realiza correctamente. De lo contrario, devuelve un código de estado de error adecuado.
Observaciones
El controlador de controlador serie puede, como opción, implementar esta función. Si se implementa, el controlador registra la función en el SerCx2SystemDmaTransmitCreate llamada que crea el objeto system-DMA-transmit.
Antes de iniciar una transacción system-DMA-transmit, SerCx2 llama a la función EvtSerCx2SystemDmaTransmitConfigureDmaChannel, si se implementa. Esta función realiza cualquier configuración especial del controlador DMA del sistema que pueda ser necesario antes de que SerCx2 inicie la transacción system-DMA-transmit.
El controlador de controlador serie puede llamar a un método como SerCx2SystemDmaTransmitGetDmaEnabler para obtener el habilitador DMA para el controlador DMA del sistema que se usa para las transacciones de transmisión del sistema DMA.
Para obtener más información, vea SerCx2 System-DMA-Transmit Transactions.
Ejemplos
Para definir una función de devolución de llamada EvtSerCx2SystemDmaTransmitConfigureDmaChannel, primero debe proporcionar una declaración de función que identifique el tipo de función de devolución de llamada que está definiendo. Windows proporciona un conjunto de tipos de función de devolución de llamada para controladores. Declarar una función mediante los tipos de función de devolución de llamada ayuda a Análisis de código para controladores, comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.
Por ejemplo, para definir un EvtSerCx2SystemDmaTransmitConfigureDmaChannel función de devolución de llamada denominada MySystemDmaTransmitConfigureDmaChannel
, use el tipo de función EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL, como se muestra en este ejemplo de código:
EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL MySystemDmaTransmitConfigureDmaChannel;
A continuación, implemente la función de devolución de llamada de la siguiente manera:
_Use_decl_annotations_
NTSTATUS
MySystemDmaTransmitConfigureDmaChannel(
SERCX2SYSTEMDMATRANSMIT SystemDmaTransmit,
PMDL Mdl,
ULONG Offset,
ULONG Length
)
{...}
El tipo de función EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL se define en el archivo de encabezado Sercx.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, consulte Declaración de funciones mediante tipos de rol de función para controladores kmDF. Para obtener más información sobre Use_decl_annotations, vea Anotación del comportamiento de la función.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible a partir de Windows 8.1. |
de la plataforma de destino de |
Escritorio |
encabezado de |
sercx.h |
irQL | Se llama a irQL <= DISPATCH_LEVEL. |