Condividi tramite


EVT_SERCX_PURGE funzione di callback (sercx.h)

La EvtSerCxPurge funzione di callback degli eventi viene chiamata dall'estensione del framework seriale (SerCx) per ripulire 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 sono definiti flag per le operazioni di eliminazione eseguite dal controller seriale. Per altre informazioni, vedere 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.

Osservazioni

Il driver del controller seriale implementa questa funzione di callback. SerCx chiama questa funzione quando un client (applicazione o driver periferico) 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.

Bit flag Significato
SERIAL_PURGE_RXABORT Elimina tutte le richieste di lettura.
SERIAL_PURGE_RXCLEAR Ripulire il buffer di input, se presente. Tutti i dati di ricezione in questo buffer vengono eliminati.
SERIAL_PURGE_TXABORT Elimina tutte le richieste di scrittura.
SERIAL_PURGE_TXCLEAR Eliminare 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 ripulitura contenente uno dei flag in questa tabella. I flag XXX SERIAL_PURGE_sono definiti nel file di intestazione Ntddser.h.

Attualmente non vengono definiti flag XXX SERIAL_PURGE_per designare le operazioni di eliminazione eseguite dal driver del controller seriale e il driver del controller seriale non deve eseguire operazioni 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 un EvtSerCxPurge funzione di callback, il driver del controller chiama il metodo SerCxInitialize durante il callback EvtDriverDeviceAdd.

Esempi

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 un EvtSerCxPurge funzione di callback denominata MyEvtSerCxPurge, è prima necessario specificare una dichiarazione di funzione che 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 i tipi di ruolo della funzione per i driver KMDF.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile a partire da Windows 8.
piattaforma di destinazione Desktop
intestazione sercx.h
IRQL Chiamato in IRQL <= DISPATCH_LEVEL

Vedere anche

EvtDriverDeviceAdd

IOCTL_SERIAL_PURGE

SerCxInitialize