Compartir a través de


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

La extensión de marco serie (SerCx) llama a la función de devolución de llamada de eventos EvtSerCxPurge para purgar los búferes de hardware del controlador serie.

Sintaxis

EVT_SERCX_PURGE EvtSercxPurge;

NTSTATUS EvtSercxPurge(
  [in] WDFDEVICE Device,
  [in] ULONG PurgeMask
)
{...}

Parámetros

[in] Device

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

[in] PurgeMask

Conjunto de marcas que describen los búferes de hardware que se van a purgar. Actualmente, no se definen marcas para las operaciones de purga que realiza el controlador serie. Para obtener más información, vea Comentarios.

Valor devuelto

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

Observaciones

El controlador del controlador serie implementa esta función de devolución de llamada. SerCx llama a esta función cuando un cliente (aplicación o controlador periférico) envía una solicitud de control IOCTL_SERIAL_PURGE que requiere que se purguen los búferes de hardware administrados por el controlador serie.

SerCx realiza las operaciones de purga designadas por las marcas enumeradas en la tabla siguiente.

Bit de marca Significado
SERIAL_PURGE_RXABORT Purga todas las solicitudes de lectura.
SERIAL_PURGE_RXCLEAR Purga el búfer de entrada, si existe uno. Los datos de recepción de este búfer se descartan.
SERIAL_PURGE_TXABORT Purgar todas las solicitudes de escritura.
SERIAL_PURGE_TXCLEAR Purga el búfer de salida, si existe uno. Los datos de transmisión de este búfer se descartan.
 

La función EvtSerCxPurge nunca recibirá una solicitud de purga que contenga cualquiera de las marcas de esta tabla. Las marcas SERIAL_PURGE_XXX se definen en el archivo de encabezado Ntddser.h.

Actualmente, no se define ninguna marca de XXX SERIAL_PURGE_para designar operaciones de purga realizadas por el controlador de controlador serie y el controlador de controlador de serie no debe realizar ninguna operación de purga en respuesta a una llamada EvtSerCxPurge.

Si la solicitud de control de IOCTL_SERIAL_PURGE requiere que se cancelen las solicitudes de lectura o escritura pendientes, SerCx cancela estas solicitudes antes de llamar a la función de EvtSerCxPurge.

Para registrar una función de devolución de llamada EvtSerCxPurge, el controlador del 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_PURGE(
    __in WDFDEVICE Device,
    __in ULONG PurgeMask
    );

Para definir un EvtSerCxPurge función de devolución de llamada denominada MyEvtSerCxPurge, 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_PURGE MyEvtSerCxPurge;

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

NTSTATUS
  MyEvtSerCxPurge(
    __in WDFDEVICE Device,
    __in ULONG PurgeMask
    )
{ ... }

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

IOCTL_SERIAL_PURGE

SerCxInitialize