Partager via


Fonction SerCxProgressTransmit (sercx.h)

La méthode SerCxProgressTransmit indique la progression de l’opération d’écriture (transmission) en cours.

Syntaxe

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

Paramètres

[in] Device

Un handle WDFDEVICE pour l’objet d’appareil framework qui représente le contrôleur série.

[in] BytesTransmitted

Nombre d’octets de données que l’appelant a copiés à partir de la mémoire tampon de transmission obtenue par le dernier appel à la méthode SerCxRetrieveTransmitBuffer .

[in] TransmitStatus

Status actuelle de l’opération de transmission. Définissez ce paramètre sur l’une des valeurs suivantes :

  • SerCxStatusSuccess
  • SerCxStatusCancelled
Pour plus d’informations sur ces valeurs, consultez SERCX_STATUS.
Note La valeur SerCxStatusTimeout est valide uniquement pour les opérations de réception. Aucun délai d’expiration d’intervalle ne peut être spécifié pour une opération de transmission. Pour plus d’informations, consultez SERIAL_TIMEOUTS.
 

Valeur retournée

SerCxProgressTransmit retourne STATUS_SUCCESS si elle réussit. Les valeurs de retour d’erreur possibles incluent les codes status suivants.

Code de retour Description
STATUS_INVALID_PARAMETER
La valeur BytesTransmitted dépasse la longueur de mémoire tampon disponible ; ou la valeur TransmitStatus n’est pas valide.
STATUS_INVALID_DEVICE_REQUEST
La méthode a été appelée au niveau de l’IRQL incorrect ; ou le handle WDFDEVICE n’est pas valide ; ou le pilote n’a pas obtenu de mémoire tampon de sortie pour cette opération de transmission.
STATUS_CANCELLED
L’opération de transmission a déjà été annulée.

Remarques

Le pilote du contrôleur série appelle cette méthode pour signaler la progression d’une opération d’écriture en cours. En règle générale, le pilote de contrôleur série appelle cette méthode à partir de son rappel d’achèvement DMA (si le pilote utilise DMA pour lire les données) ou de sa fonction DPC de transmission/réception (si PIO est utilisé).

Si l’appel SerCxProgressTransmit ne termine pas tout le travail en suspens pour l’opération d’écriture, l’appelant doit appeler À nouveau SerCxRetrieveTransmitBuffer pour obtenir un nouveau descripteur de mémoire tampon et continuer à transmettre des données.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 8.
Plateforme cible Universal
En-tête sercx.h
IRQL <= DISPATCH_LEVEL

Voir aussi

SERCX_STATUS

SERIAL_TIMEOUTS

SerCxRetrieveTransmitBuffer