Compartir a través de


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

La función de devolución de llamada de eventos EvtSerCxWaitmask configura el controlador serie para supervisar los eventos en una máscara de espera, que es un valor de máscara de bits que especifica un conjunto de eventos de hardware.

Sintaxis

EVT_SERCX_WAITMASK EvtSercxWaitmask;

NTSTATUS EvtSercxWaitmask(
  [in] WDFDEVICE Device
)
{...}

Parámetros

[in] Device

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

Valor devuelto

La función EvtSerCxWaitmask 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. La extensión del marco de trabajo serie (SerCx) llama a esta función para notificar al controlador cuando cambia la máscara de espera. Durante esta llamada, la función EvtSerCxWaitmask llama al método serCxGetWaitMask para obtener la nueva máscara de espera. El controlador comienza inmediatamente a supervisar los eventos de la nueva máscara de espera y descarta cualquier máscara de espera antigua que se haya proporcionado en una llamada anterior EvtSerCxWaitmask. Si la nueva máscara de espera es cero, el controlador simplemente descarta la máscara de espera antigua y deja de supervisar los eventos de la máscara de espera.

Cuando SerCx recibe una solicitud de IOCTL_SERIAL_SET_WAIT_MASK de un cliente, el controlador de solicitudes de SerCx llama a la función EvtSerCxWaitmask para establecer la nueva máscara de espera. Para obtener más información sobre los tipos de eventos que puede especificar una máscara de espera, vea SERIAL_EV_XXX.

La función EvtSerCxWaitmask configura el hardware del controlador serie para supervisar los eventos en la nueva máscara de espera. Normalmente, la función habilita interrupciones para estos eventos. Después de configurar el hardware, la función debe devolverse inmediatamente, sin esperar a que se produzca un evento en la máscara de espera.

Más adelante, cuando un evento de la máscara de espera hace que se produzca una interrupción, el ISR del controlador serie programa una función DPC para ejecutarse. Esta función DPC llama al método SerCxCompleteWait para notificar a SerCx del evento.

Inicialmente, después de que un cliente abra una conexión al puerto serie y antes del primer evtSerCxWaitmask llamada, la máscara de espera es cero de forma eficaz y el controlador del controlador serie no supervisa ningún evento SERIAL_EV_XXX.

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

Para definir un EvtSerCxWaitmask función de devolución de llamada denominada MyEvtSerCxWaitmask, 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_WAITMASK MyEvtSerCxWaitmask;

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

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

IOCTL_SERIAL_SET_WAIT_MASK

IOCTL_SERIAL_WAIT_ON_MASK

SERIAL_EV_XXX

serCxGetWaitMask

SerCxInitialize