EVT_SERCX_PURGE funzione di callback (sercx.h)

La funzione di callback degli eventi EvtSerCxPurge viene chiamata dall'estensione del framework seriale (SerCx) per eliminare i buffer hardware del controller seriale.

Sintassi

EVT_SERCX_PURGE EvtSercxPurge;

NTSTATUS EvtSercxPurge(
  [in] WDFDEVICE Device,
  [in] ULONG PurgeMask
)
{...}

Parametri

[in] Device

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

[in] PurgeMask

Set di flag che descrivono i buffer hardware che devono essere eliminati. Attualmente, non vengono definiti flag per le operazioni di eliminazione eseguite dal controller seriale. Per altre informazioni, vedere la sezione Osservazioni.

Valore restituito

La funzione EvtSerCxPurge restituisce STATUS_SUCCESS se la chiamata ha esito positivo. In caso contrario, restituisce un codice di stato di errore appropriato.

Commenti

Il driver del controller seriale implementa questa funzione di callback. SerCx chiama questa funzione quando un client (applicazione o driver periferica) invia una richiesta di controllo IOCTL_SERIAL_PURGE che richiede l'eliminazione dei buffer hardware gestiti dal controller seriale.

SerCx esegue le operazioni di eliminazione designate dai flag elencati nella tabella seguente.

Flag bit Significato
SERIAL_PURGE_RXABORT Ripulire tutte le richieste di lettura.
SERIAL_PURGE_RXCLEAR Ripulire il buffer di input, se esistente. Tutti i dati di ricezione in questo buffer vengono eliminati.
SERIAL_PURGE_TXABORT Ripulire tutte le richieste di scrittura.
SERIAL_PURGE_TXCLEAR Ripulire il buffer di output, se presente. Tutti i dati di trasmissione in questo buffer vengono eliminati.
 

La funzione EvtSerCxPurge non riceverà mai una richiesta di eliminazione che contiene alcun flag in questa tabella. I flag SERIAL_PURGE_XXX sono definiti nel file di intestazione Ntddser.h.

Attualmente non vengono definiti flag SERIAL_PURGE_XXX per designare le operazioni di eliminazione eseguite dal driver del controller seriale e il driver del controller seriale non deve eseguire alcuna operazione di eliminazione in risposta a una chiamata EvtSerCxPurge .

Se la richiesta di controllo IOCTL_SERIAL_PURGE richiede l'annullamento di richieste di lettura o scrittura in sospeso, SerCx annulla queste richieste prima di chiamare la funzione EvtSerCxPurge .

Per registrare una funzione di callback EvtSerCxPurge , il driver del controller chiama il metodo SerCxInitialize durante il callback EvtDriverDeviceAdd .

Esempio

Il tipo di funzione per questo callback viene dichiarato in Sercx.h, come indicato di seguito.

typedef NTSTATUS
  EVT_SERCX_PURGE(
    __in WDFDEVICE Device,
    __in ULONG PurgeMask
    );

Per definire una funzione di callback EvtSerCxPurge denominata MyEvtSerCxPurge, è necessario innanzitutto fornire una dichiarazione di funzione richiesta da Static Driver Verifier (SDV) e altri strumenti di verifica, come indicato di seguito.

EVT_SERCX_PURGE MyEvtSerCxPurge;

Implementare quindi la funzione di callback come indicato di seguito.

NTSTATUS
  MyEvtSerCxPurge(
    __in WDFDEVICE Device,
    __in ULONG PurgeMask
    )
{ ... }

Per altre informazioni sui requisiti SDV per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo per i driver KMDF.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 8.
Piattaforma di destinazione Desktop
Intestazione sercx.h
IRQL Chiamato in IRQL <= DISPATCH_LEVEL

Vedi anche

EvtDriverDeviceAdd

IOCTL_SERIAL_PURGE

SerCxInitialize