Condividi tramite


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 può abilitare gli interrupt.

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 EvtSerCxTransmit funzione di callback denominata , è prima necessario specificare una dichiarazione di funzione che driver statico (SDV) e altri strumenti di verifica necessari, 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 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

SerCxInitialize

WdfDpcEnqueue