Compartir a través de


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

La función de devolución de llamada de eventos evtSerCxReceive prepara el dispositivo de controlador serie (UART) para realizar una operación de lectura (recepción).

Sintaxis

EVT_SERCX_RECEIVE EvtSercxReceive;

NTSTATUS EvtSercxReceive(
  [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 recibir. 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 EvtSerCxReceive 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 para recibir datos. Si es necesario, la función EvtSerCxReceive puede habilitar interrupciones.

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

Si el FIFO de recepción en el controlador serie está vacío o casi vacío, pero la interrupción de marca de agua alta de FIFO está habilitada, la rutina DPC simplemente puede devolver. Más adelante, el ISR del controlador del controlador puede programar la rutina DPC para que se ejecute, y esta rutina puede leer más datos del FIFO de recepción.

Para registrar una función de devolución de llamada EvtSerCxReceive, 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_RECEIVE(
    __in WDFDEVICE Device
    );

Para definir un EvtSerCxReceive función de devolución de llamada denominada MyEvtSerCxReceive, 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_RECEIVE MyEvtSerCxReceive;

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

NTSTATUS
  MyEvtSerCxReceive(
    __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