EVT_SERCX_TRANSMIT fonction de rappel (sercx.h)
La fonction de rappel d’événements EvtSerCxTransmit prépare l’appareil de contrôleur série (UART) pour effectuer une opération d’écriture (transmission).
Syntaxe
EVT_SERCX_TRANSMIT EvtSercxTransmit;
NTSTATUS EvtSercxTransmit(
[in] WDFDEVICE Device,
[in] size_t Length
)
{...}
Paramètres
[in] Device
Handle WDFDEVICE pour l’objet d’appareil framework qui représente le contrôleur série.
[in] Length
Nombre d’octets à transmettre. Le pilote du contrôleur peut utiliser cette valeur comme indicateur pour décider s’il faut utiliser piO ou DMA pour effectuer le transfert de données.
Valeur de retour
La fonction EvtSerCxTransmit retourne STATUS_SUCCESS si l’appel réussit. Sinon, elle retourne un code d’état d’erreur approprié.
Remarques
L’extension de framework série (SerCx) appelle cette fonction pour configurer le matériel du contrôleur série pour transmettre des données. Si nécessaire, la fonction EvtSerCxTransmit peut activer les interruptions.
La fonction EvtSerCxTransmit n’écrit pas nécessairement les données de sortie dans la mémoire tampon FIFO de transmission. Selon le matériel du contrôleur série ou le type de transfert, cette fonction peut configurer une opération DMA pour écrire les données, ou planifier une fonction DPC de transmission/réception pour écrire les données. Le pilote de contrôleur série implémente cette fonction DPC pour transmettre des données au contrôleur série et recevoir des données du contrôleur. Pendant la DPC, la fonction DPC détermine si les données sont disponibles pour être transmises et, le cas échéant, utilise l’authentification personnelle pour transférer les données vers le FIFO de transmission dans le contrôleur série.
Si le FIFO de transmission dans le contrôleur série est plein ou presque plein, mais que l’interruption de marque à faible débit fiFO est activée, la fonction EvtSerCxTransmit peut simplement retourner. Plus tard, l’ISR du pilote du contrôleur peut planifier l’exécution de la fonction DPC de transmission/réception, et cette fonction peut transférer plus de données de sortie vers la fiFO de transmission.
Pour inscrire une fonction de rappel EvtSerCxTransmit, le pilote du contrôleur appelle la méthode SerCxInitialize pendant le rappel EvtDriverDeviceAdd.
Exemples
Le type de fonction de ce rappel est déclaré dans Sercx.h, comme suit.
typedef NTSTATUS
EVT_SERCX_TRANSMIT(
__in WDFDEVICE Device
);
Pour définir une fonction de rappel EvtSerCxTransmit nommée MyEvtSerCxTransmit
, vous devez d’abord fournir une déclaration de fonction qui Static Driver Verificationr (SDV) et d’autres outils de vérification nécessitent, comme suit.
EVT_SERCX_TRANSMIT MyEvtSerCxTransmit;
Ensuite, implémentez votre fonction de rappel comme suit.
NTSTATUS
MyEvtSerCxTransmit(
__in WDFDEVICE Device
)
{ ... }
Pour plus d’informations sur les exigences SDV pour les déclarations de fonction, consultez déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes KMDF.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible à partir de Windows 8. |
plateforme cible | Bureau |
d’en-tête | sercx.h |
IRQL | Appelé au <IRQL = DISPATCH_LEVEL |