EVT_SERCX_TRANSMIT funzione di callback (sercx.h)
La funzione di callback degli eventi 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 suggerimento 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.
Osservazioni
L'estensione del framework seriale (SerCx) chiama questa funzione per configurare l'hardware del controller seriale per la trasmissione dei dati. Se necessario, la funzione EvtSerCxTransmit
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 ricevere dati dal controller. Durante il DPC, la funzione DPC determina se i dati sono disponibili per la trasmissione e, in tal caso, utilizza PIO per trasferire i dati alla trasmissione FIFO nel controller seriale.
Se il FIFO di trasmissione nel controller seriale è pieno o quasi pieno, ma l'interrupt fifo a basso consumo è abilitato, la funzione EvtSerCxTransmit può semplicemente restituire. Successivamente, l'ISR del driver del controller può pianificare l'esecuzione della funzione DPC di trasmissione/ricezione e questa funzione può trasferire più dati di output alla trasmissione FIFO.
Per registrare un EvtSerCxTransmit 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_TRANSMIT(
__in WDFDEVICE Device
);
Per definire un
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 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 |