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
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 |