Compartir a través de


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

La función de devolución de llamada de eventos EvtSerCxTrans mit prepara el dispositivo de controlador serie (UART) para realizar una operación de escritura (transmisión).

Sintaxis

EVT_SERCX_TRANSMIT EvtSercxTransmit;

NTSTATUS EvtSercxTransmit(
  [in] WDFDEVICE Device,
  [in] size_t Length
)
{...}

Parámetros

[in] Device

Un identificador WDFDEVICE para el objeto de dispositivo de marco que representa el controlador serie.

[in] Length

Número de bytes que se van a transmitir. El controlador del controlador puede usar este valor como sugerencia para decidir si se debe usar PIO o DMA para realizar la transferencia de datos.

Valor devuelto

La función EvtSerCxTransmit devuelve STATUS_SUCCESS si la llamada se realiza correctamente. De lo contrario, devuelve un código de estado de error adecuado.

Observaciones

La extensión del marco de trabajo serie (SerCx) llama a esta función para configurar el hardware del controlador serie para transmitir datos. Si es necesario, la función EvtSerCxTransmit puede habilitar interrupciones.

La función EvtSerCxTransmit no escribe necesariamente los datos de salida en el búfer FIFO de transmisión. Dependiendo del hardware del controlador serie o del tipo de transferencia, esta función podría configurar una operación DMA para escribir los datos, o podría programar una función DPC de transmisión/recepción para escribir los datos. El controlador del controlador serie implementa esta función DPC para transmitir datos al controlador serie y recibir datos del controlador. Durante el DPC, la función DPC determina si los datos están disponibles para transmitirse y, si es así, usa PIO para transferir los datos al FIFO de transmisión en el controlador serie.

Si la transmisión FIFO en el controlador serie está llena o casi llena, pero la interrupción de marca baja de FIFO está habilitada, la función EvtSerCxTransmit puede simplemente devolver. Más adelante, el ISR del controlador del controlador puede programar la función DPC de transmisión/recepción para ejecutarse, y esta función puede transferir más datos de salida a la transmisión fiFO.

Para registrar una función de devolución de llamada EvtSerCxTransmit, el controlador llama al método SerCxInitialize durante la devolución de llamada EvtDriverDeviceAdd.

Ejemplos

El tipo de función para esta devolución de llamada se declara en Sercx.h, como se indica a continuación.

typedef NTSTATUS
  EVT_SERCX_TRANSMIT(
    __in WDFDEVICE Device
    );

Para definir un EvtSerCxTransmit función de devolución de llamada denominada MyEvtSerCxTransmit, primero debe proporcionar una declaración de función que comprobador de controladores estáticos (SDV) y otras herramientas de comprobación necesarias, como se indica a continuación.

EVT_SERCX_TRANSMIT MyEvtSerCxTransmit;

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

NTSTATUS
  MyEvtSerCxTransmit(
    __in WDFDEVICE Device
    )
{ ... }

Para obtener más información sobre los requisitos de SDV para las declaraciones de función, consulte Declaración de funciones mediante tipos de rol de función para controladores kmDF.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible a partir de Windows 8.
de la plataforma de destino de Escritorio
encabezado de sercx.h
irQL Se llama a irQL <= DISPATCH_LEVEL

Consulte también

EvtDriverDeviceAdd

SerCxInitialize

WdfDpcEnqueue