EVT_SERCX_TRANSMIT funzione di callback (sercx.h)
La funzione di callback dell'evento EvtSerCxTransmit prepara il dispositivo controller seriale (UART) per eseguire un'operazione di scrittura (trasmissione).
Sintassi
EVT_SERCX_TRANSMIT EvtSercxTransmit;
NTSTATUS EvtSercxTransmit(
[in] WDFDEVICE Device,
[in] size_t Length
)
{...}
Parametri
[in] Device
Handle WDFDEVICE per l'oggetto dispositivo framework che rappresenta il controller seriale.
[in] Length
Numero di byte da trasmettere. Il driver del controller può usare questo valore come hint per decidere se usare PIO o DMA per eseguire il trasferimento dei dati.
Valore restituito
La funzione EvtSerCxTransmit restituisce STATUS_SUCCESS se la chiamata ha esito positivo. In caso contrario, restituisce un codice di stato di errore appropriato.
Commenti
L'estensione del framework seriale (SerCx) chiama questa funzione per configurare l'hardware del controller seriale per trasmettere i dati. Se necessario, la funzione EvtSerCxTransmit può abilitare gli interruzioni.
La funzione EvtSerCxTransmit non scrive necessariamente i dati di output nel buffer FIFO di trasmissione. A seconda dell'hardware del controller seriale o del tipo di trasferimento, questa funzione potrebbe configurare un'operazione DMA per scrivere i dati oppure pianificare una funzione DPC di trasmissione/ricezione per scrivere i dati. Il driver del controller seriale implementa questa funzione DPC per trasmettere i dati al controller seriale e per ricevere dati dal controller. Durante il DPC, la funzione DPC determina se i dati sono disponibili per la trasmissione e, in tal caso, usa PIO per trasferire i dati alla trasmissione FIFO nel controller seriale.
Se la trasmissione FIFO nel controller seriale è piena o quasi completa, ma l'interruzione con segno di acqua bassa di FIFO è abilitata, la funzione EvtSerCxTransmit può semplicemente restituire. Successivamente, l'ISR del driver controller può pianificare la funzione DPC di trasmissione/ricezione da eseguire e questa funzione può trasferire più dati di output alla trasmissione FIFO.
Per registrare una funzione di callback EvtSerCxTransmit , 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_TRANSMIT(
__in WDFDEVICE Device
);
Per definire una funzione di callback EvtSerCxTransmit denominata MyEvtSerCxTransmit
, è prima necessario specificare una dichiarazione di funzione che gli strumenti di verifica del driver statico (SDV) e altri strumenti di verifica richiedono, come indicato di seguito.
EVT_SERCX_TRANSMIT MyEvtSerCxTransmit;
Implementare quindi la funzione di callback come indicato di seguito.
NTSTATUS
MyEvtSerCxTransmit(
__in WDFDEVICE Device
)
{ ... }
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 | Chiamata 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