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
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per