EVT_SERCX_CONTROL función de devolución de llamada (sercx.h)
La función de devolución de llamada de eventos EvtSerCxControl controla una solicitud de control de E/S que tiene un código de control de E/S (IOCTL) que admite la extensión del marco de trabajo serie (SerCx).
Sintaxis
EVT_SERCX_CONTROL EvtSercxControl;
NTSTATUS EvtSercxControl(
[in] WDFDEVICE Device,
[in] WDFREQUEST Request,
[in] size_t OutputBufferLength,
[in] size_t InputBufferLength,
[in] ULONG IoControlCode
)
{...}
Parámetros
[in] Device
Un identificador WDFDEVICE para el objeto de dispositivo de marco que representa el controlador serie.
[in] Request
Un identificador WDFREQUEST para el objeto de solicitud de marco que representa la solicitud de control de E/S.
[in] OutputBufferLength
Especifica la longitud, en bytes, del búfer de salida de la solicitud de control de E/S especificada por el parámetro Request
[in] InputBufferLength
Especifica la longitud, en bytes, del búfer de entrada para la solicitud de control de E/S especificada por el parámetro request
[in] IoControlCode
Especifica el IOCTL de la solicitud de control de E/S especificada por el parámetro Request
Valor devuelto
La función evtSerCxControl devuelve STATUS_SUCCESS si la llamada se realiza correctamente. De lo contrario, devuelve un código de estado de error adecuado. Para obtener más información, vea la siguiente sección Comentarios.
Observaciones
El controlador de controlador serie es necesario para implementar esta función de devolución de llamada. SerCx llama a esta función para entregar una solicitud de control de E/S al controlador del controlador para su procesamiento. Antes de que se devuelva esta función, debe completar la solicitud realizando la operación solicitada o devolviendo un estado de error. Un controlador que no implementa la compatibilidad con una solicitud determinada debe devolver el estado de error STATUS_NOT_IMPLEMENTED para esta solicitud.
Normalmente, la función EvtSerCxControl debe sincronizarse con el ISR del controlador del controlador antes de que esta función cambie la configuración en los registros de hardware del controlador serie.
El valor devuelto de la función EvtSerCxControl debe coincidir con el valor de estado que esta función escribe en el bloque de estado de la solicitud de control de E/S. SerCx usa el valor devuelto para realizar un seguimiento del estado del controlador del controlador y el hardware del controlador serie.
A continuación se muestra una lista de las ICTL que esta función de devolución de llamada debe estar preparada para controlar:
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_CONTROL(
__in WDFREQUEST Request,
__in size_t OutputBufferLength,
__in size_t InputBufferLength,
__in ULONG IoControlCode
);
Para definir un EvtSerCxControl función de devolución de llamada denominada MyEvtSerCxControl
, 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_CONTROL MyEvtSerCxControl;
A continuación, implemente la función de devolución de llamada de la manera siguiente.
NTSTATUS
MyEvtSerCxControl(
__in WDFREQUEST Request,
__in size_t OutputBufferLength,
__in size_t InputBufferLength,
__in ULONG IoControlCode
)
{ ... }
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 |