Compartir a través de


EVT_SERCX2_SYSTEM_DMA_RECEIVE_CONFIGURE_DMA_CHANNEL función de devolución de llamada (sercx.h)

La función de devolución de llamada de eventos EvtSerCx2SystemDmaReceiveConfigureDmaChannel llama a la versión 2 de la extensión del marco de serie (SerCx2) para permitir que el controlador del controlador serie realice cualquier configuración personalizada del adaptador DMA que pueda ser necesario antes del inicio de cada transferencia en una transacción system-DMA-receive.

Sintaxis

EVT_SERCX2_SYSTEM_DMA_RECEIVE_CONFIGURE_DMA_CHANNEL EvtSercx2SystemDmaReceiveConfigureDmaChannel;

NTSTATUS EvtSercx2SystemDmaReceiveConfigureDmaChannel(
  [in] SERCX2SYSTEMDMARECEIVE SystemDmaReceive,
  [in] PMDL Mdl,
  [in] ULONG Offset,
  [in] ULONG Length
)
{...}

Parámetros

[in] SystemDmaReceive

Identificador de SERCX2SYSTEMDMARECEIVE a un objeto system-DMA-receive. El controlador de controlador serie llamó anteriormente al método SerCx2SystemDmaReceiveCreate para crear este objeto.

[in] Mdl

Puntero a un MDL que describe las páginas de memoria que abarca el búfer de lectura para la transacción system-DMA-receive. La lista de dispersión y recopilación de la transferencia DMA usará la región de esta memoria especificada por el offset de y parámetros length.

[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 EvtSerCx2SystemDmaReceiveConfigureDmaChannel 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 SerCx2SystemDmaReceiveCreate llamada que crea el objeto system-DMA-receive.

Antes de iniciar una transacción de recepción system-DMA, SerCx2 llama a la función EvtSerCx2SystemDmaReceiveConfigureDmaChannel, si se implementa. Esta función realiza cualquier configuración especial del controlador DMA del sistema que pueda ser necesaria antes de que SerCx2 inicie la transacción system-DMA-receive.

El controlador de controlador serie puede llamar a un método como SerCx2SystemDmaReceiveGetDmaEnabler para obtener el habilitador DMA para el controlador DMA del sistema que se usa para las transacciones system-DMA-receive.

Para obtener más información, vea SerCx2 System-DMA-Receive Transactions.

Ejemplos

Para definir una función de devolución de llamada EvtSerCx2SystemDmaReceiveConfigureDmaChannel, 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 EvtSerCx2SystemDmaReceiveConfigureDmaChannel función de devolución de llamada denominada MySystemDmaReceiveConfigureDmaChannel, use el tipo de función EVT_SERCX2_SYSTEM_DMA_RECEIVE_CONFIGURE_DMA_CHANNEL, como se muestra en este ejemplo de código:

EVT_SERCX2_SYSTEM_DMA_RECEIVE_CONFIGURE_DMA_CHANNEL  MySystemDmaReceiveConfigureDmaChannel;

A continuación, implemente la función de devolución de llamada de la siguiente manera:

_Use_decl_annotations_
NTSTATUS
  MySystemDmaReceiveConfigureDmaChannel(
    SERCX2SYSTEMDMARECEIVE SystemDmaReceive,
    PMDL Mdl,
    ULONG Offset,
    ULONG Length
    )
  {...}

El tipo de función EVT_SERCX2_SYSTEM_DMA_RECEIVE_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_RECEIVE_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.

Consulte también

MDL

SERCX2SYSTEMDMARECEIVE

SerCx2SystemDmaReceiveCreate

serCx2SystemDmaReceiveGetDmaEnabler