EVT_SPB_TARGET_CONNECT funzione di callback (spbcx.h)

La funzione di callback dell'evento EvtSpbTargetConnect di un driver del controller SPB apre una connessione a un dispositivo di destinazione nel bus.

Sintassi

EVT_SPB_TARGET_CONNECT EvtSpbTargetConnect;

NTSTATUS EvtSpbTargetConnect(
  [in] WDFDEVICE Controller,
  [in] SPBTARGET Target
)
{...}

Parametri

[in] Controller

Handle WDFDEVICE per l'oggetto dispositivo framework che rappresenta il controller SPB.

[in] Target

Handle SPBTARGET alla destinazione da aprire. La destinazione è un dispositivo o una porta periferica collegata al bus.

Valore restituito

EvtSpbTargetConnect restituisce STATUS_SUCCESS se il driver apre correttamente la connessione alla destinazione. In caso contrario, la funzione restituisce un codice di errore NTSTATUS appropriato.

Commenti

L'implementazione di questa funzione dal driver del controller SPB è facoltativa.

L'estensione del framework SPB (SpbCx) gestisce la coda di I/O per il controller SPB. Se il driver del controller SPB registra una funzione di callback EvtSpbTargetConnect, SpbCx chiama questa funzione quando un client (driver periferico) del controller invia una richiesta di IRP_MJ_CREATE per aprire una connessione a un dispositivo di destinazione nel bus. Se la funzione EvtSpbTargetConnect restituisce un codice di errore, SpbCx ha esito negativo sulla richiesta di IRP_MJ_CREATE . Un client che apre correttamente una connessione a una destinazione ha accesso esclusivo alla destinazione finché la connessione non viene chiusa.

Chiamare il metodo SpbTargetGetConnectionParameters per ottenere i parametri di connessione per il dispositivo di destinazione. Un driver controller SPB chiama in genere questo metodo dalla funzione EvtSpbTargetConnect del driver. SpbTargetGetConnectionParameters scrive i parametri di connessione in una struttura di SPB_CONNECTION_PARAMETERS fornita dal chiamante. Il membro ConnectionParameters di questa struttura è un puntatore a un buffer che contiene le impostazioni di connessione per il dispositivo di destinazione. Il driver usa queste impostazioni per configurare il controller SPB per comunicare con il dispositivo. Per altre informazioni, vedere Come ottenere le impostazioni di connessione per un dispositivo.

La funzione di callback EvtSpbTargetConnect viene chiamata in modo sincrono dal contesto del thread client che richiede la connessione alla destinazione.

SpbCx chiama la funzione di callback EvtSpbTargetDisconnect per chiudere una connessione di destinazione aperta in precedenza da un callback EvtSpbTargetConnect .

Per registrare una funzione di callback EvtSpbTargetConnect , chiamare il metodo SpbDeviceInitialize .

Esempio

Per definire una funzione di callback EvtSpbTargetConnect , è prima necessario fornire una dichiarazione di funzione che identifica il tipo di funzione di callback che si sta definendo. Windows fornisce un set di tipi di funzione di callback per i driver. La dichiarazione di una funzione usando i tipi di funzione callback consente l'analisi del codice per i driver, il verifica driver statico (SDV) e altri strumenti di verifica trovano errori ed è un requisito per la scrittura di driver per il sistema operativo Windows.

Ad esempio, per definire una funzione callback EvtSpbTargetConnect denominata MyEvtSpbTargetConnect, usare il tipo di funzione EVT_SPB_TARGET_CONNECT, come illustrato nell'esempio di codice seguente:

EVT_SPB_TARGET_CONNECT  MyEvtSpbTargetConnect;

Implementare quindi la funzione di callback come indicato di seguito:

_Use_decl_annotations_
NTSTATUS
  MyEvtSpbTargetConnect(
    WDFDEVICE Controller,
    SPBTARGET Target
    )
{ ... }

Il tipo di funzione EVT_SPB_TARGET_CONNECT è definito nel file di intestazione Spbcx.h. Per identificare in modo più accurato gli errori durante l'esecuzione degli strumenti di analisi del codice, assicurarsi di aggiungere l'annotazione Use_decl_annotations alla definizione della funzione. L'annotazione Use_decl_annotations garantisce che vengano usate le annotazioni applicate al tipo di funzione EVT_SPB_TARGET_CONNECT nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo per i driver KMDF. Per altre informazioni su Use_decl_annotations, vedere Annotazione del comportamento della funzione.

Requisiti

Requisito Valore
Client minimo supportato Supportato a partire da Windows 8.
Piattaforma di destinazione Desktop
Intestazione spbcx.h
IRQL Chiamato in PASSIVE_LEVEL.

Vedi anche

EvtSpbTargetDisconnect

IRP_MJ_CREATE

SPBTARGET

SPB_CONNECTION_PARAMETERS

SpbDeviceInitialize