Funzione SerCxProgressTransmit (sercx.h)

Il metodo SerCxProgressTransmit segnala lo stato di avanzamento dell'operazione di scrittura (trasmissione) corrente.

Sintassi

NTSTATUS SerCxProgressTransmit(
  [in] WDFDEVICE    Device,
  [in] ULONG        BytesTransmitted,
  [in] SERCX_STATUS TransmitStatus
);

Parametri

[in] Device

Handle WDFDEVICE per l'oggetto dispositivo framework che rappresenta il controller seriale.

[in] BytesTransmitted

Numero di byte di dati copiati dal chiamante dal buffer di trasmissione ottenuto dalla chiamata più recente al metodo SerCxRetrieveTransmitBuffer .

[in] TransmitStatus

Stato corrente dell'operazione di trasmissione. Impostare questo parametro su uno dei valori seguenti:

  • SerCxStatusSuccess
  • SerCxStatusCancelled
Per altre informazioni su questi valori, vedere SERCX_STATUS.
Nota Il valore SerCxStatusTimeout è valido solo per le operazioni di ricezione. Non è possibile specificare un timeout intervallo per un'operazione di trasmissione. Per altre informazioni, vedere SERIAL_TIMEOUTS.
 

Valore restituito

SerCxProgressTransmit restituisce STATUS_SUCCESS se ha esito positivo. I valori restituiti di errore possibili includono i codici di stato seguenti.

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
Il valore BytesTransmitted supera la lunghezza del buffer disponibile; o il valore TransmitStatus non è valido.
STATUS_INVALID_DEVICE_REQUEST
Il metodo è stato chiamato in irQL errato; o l'handle WDFDEVICE non è valido; o il driver non ha ottenuto un buffer di output per questa operazione di trasmissione.
STATUS_CANCELLED
L'operazione di trasmissione è già stata annullata.

Commenti

Il driver del controller seriale chiama questo metodo per segnalare lo stato di avanzamento di un'operazione di scrittura in sospeso. In genere, il driver del controller seriale chiama questo metodo dal callback di completamento DMA (se il driver usa DMA per leggere i dati) o dalla relativa funzione DPC di trasmissione/ricezione (se viene usato PIO).

Se la chiamata SerCxProgressTransmit non completa tutte le operazioni in sospeso per l'operazione di scrittura, il chiamante deve chiamare di nuovo SerCxRetrieveTransmitBuffer per ottenere un nuovo descrittore del buffer e continuare a trasmettere i dati.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 8.
Piattaforma di destinazione Universale
Intestazione sercx.h
IRQL <= DISPATCH_LEVEL

Vedi anche

SERCX_STATUS

SERIAL_TIMEOUTS

SerCxRetrieveTransmitBuffer