EVT_SPB_TARGET_CONNECT función de devolución de llamada (spbcx.h)
La función de devolución de llamada de eventos EvtSpbTargetConnect de un controlador SPB abre una conexión a un dispositivo de destino en el bus.
Sintaxis
EVT_SPB_TARGET_CONNECT EvtSpbTargetConnect;
NTSTATUS EvtSpbTargetConnect(
[in] WDFDEVICE Controller,
[in] SPBTARGET Target
)
{...}
Parámetros
[in] Controller
Un identificador WDFDEVICE para el objeto de dispositivo de marco que representa el controlador SPB.
[in] Target
Identificador SPBTARGET para el destino que se va a abrir. El destino es un dispositivo periférico o un puerto que está conectado al bus.
Valor devuelto
EvtSpbTargetConnect devuelve STATUS_SUCCESS si el controlador abre correctamente la conexión al destino. De lo contrario, la función devuelve un código de error NTSTATUS adecuado.
Comentarios
La implementación de esta función por parte del controlador SPB es opcional.
La extensión de marco de SPB (SpbCx) administra la cola de E/S para el controlador SPB. Si el controlador del controlador SPB registra una función de devolución de llamada EvtSpbTargetConnect , SpbCx llama a esta función cuando un cliente (controlador periférico) del controlador envía una solicitud de IRP_MJ_CREATE para abrir una conexión a un dispositivo de destino en el bus. Si la función EvtSpbTargetConnect devuelve un código de error, SpbCx produce un error en la solicitud de IRP_MJ_CREATE . Un cliente que abre correctamente una conexión a un destino tiene acceso exclusivo al destino hasta que se cierra la conexión.
Llame al método SpbTargetGetConnectionParameters para obtener los parámetros de conexión del dispositivo de destino. Un controlador de controlador SPB normalmente llama a este método desde la función EvtSpbTargetConnect del controlador. SpbTargetGetConnectionParameters escribe los parámetros de conexión en una estructura de SPB_CONNECTION_PARAMETERS proporcionada por el autor de la llamada. El miembro ConnectionParameters de esta estructura es un puntero a un búfer que contiene la configuración de conexión para el dispositivo de destino. El controlador usa estas opciones para configurar el controlador SPB para comunicarse con el dispositivo. Para obtener más información, consulte Cómo obtener la configuración de conexión de un dispositivo.
La función de devolución de llamada EvtSpbTargetConnect se llama de forma sincrónica desde el contexto del subproceso de cliente que solicita la conexión al destino.
SpbCx llama a la función de devolución de llamada EvtSpbTargetDisconnect para cerrar una conexión de destino abierta previamente por una devolución de llamada EvtSpbTargetConnect .
Para registrar una función de devolución de llamada EvtSpbTargetConnect , llame al método SpbDeviceInitialize .
Ejemplos
Para definir una función de devolución de llamada EvtSpbTargetConnect , primero debe proporcionar una declaración de función que identifique el tipo de función de devolución de llamada que está definiendo. Windows proporciona un conjunto de tipos de función de devolución de llamada para controladores. Declarar una función mediante los tipos de función de devolución de llamada ayuda a Code Analysis for Drivers, Static Driver Verifier (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.
Por ejemplo, para definir una función de devolución de llamada EvtSpbTargetConnect denominada MyEvtSpbTargetConnect
, use el tipo de función EVT_SPB_TARGET_CONNECT, como se muestra en este ejemplo de código:
EVT_SPB_TARGET_CONNECT MyEvtSpbTargetConnect;
A continuación, implemente la función de devolución de llamada de la siguiente manera:
_Use_decl_annotations_
NTSTATUS
MyEvtSpbTargetConnect(
WDFDEVICE Controller,
SPBTARGET Target
)
{ ... }
El tipo de función EVT_SPB_TARGET_CONNECT se define en el archivo de encabezado Spbcx.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función EVT_SPB_TARGET_CONNECT en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, consulte Declaración de funciones mediante tipos de roles de función para controladores KMDF. Para obtener más información sobre Use_decl_annotations, consulte Anotación del comportamiento de la función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Se admite a partir de Windows 8. |
Plataforma de destino | Escritorio |
Encabezado | spbcx.h |
IRQL | Se llama en PASSIVE_LEVEL. |