Fonction SerCx2PioReceiveCreate (sercx.h)

La méthode SerCx2PioReceiveCreate crée un objet PIO-receive, que la version 2 de l’extension d’infrastructure série (SerCx2) utilise pour effectuer des transactions de réception PIO.

Syntaxe

NTSTATUS SerCx2PioReceiveCreate(
  [in]           WDFDEVICE                  Device,
  [in]           PSERCX2_PIO_RECEIVE_CONFIG PioReceiveConfig,
  [in, optional] PWDF_OBJECT_ATTRIBUTES     Attributes,
  [out]          SERCX2PIORECEIVE           *PioReceive
);

Paramètres

[in] Device

Un handle WDFDEVICE pour l’objet d’appareil framework qui représente le contrôleur série. Le pilote de contrôleur série a créé cet objet dans sa fonction de rappel EvtDriverDeviceAdd . Pour plus d’informations, consultez SerCx2InitializeDevice.

[in] PioReceiveConfig

Pointeur vers une structure SERCX2_PIO_RECEIVE_CONFIG . Avant d’appeler cette méthode, l’appelant doit appeler la fonction SERCX2_PIO_RECEIVE_CONFIG_INIT pour initialiser la structure. Cette structure contient des pointeurs vers un ensemble de routines de rappel d’événements implémentées par le pilote de contrôleur série. SerCx2 appelle ces fonctions pour effectuer des transactions pio-réception.

[in, optional] Attributes

Pointeur vers une structure WDF_OBJECT_ATTRIBUTES qui décrit les attributs à affecter au nouvel objet PIO-receive. Avant d’appeler cette méthode, l’appelant doit appeler la fonction WDF_OBJECT_ATTRIBUTES_INIT pour initialiser la structure. Ce paramètre est facultatif et peut être spécifié comme WDF_NO_OBJECT_ATTRIBUTES si le pilote de contrôleur série n’a pas besoin d’affecter des attributs à l’objet. Pour plus d'informations, consultez la section Notes.

[out] PioReceive

Pointeur vers un emplacement vers lequel cette méthode écrit un SERCX2PIORECEIVE handle vers l’objet PIO-receive nouvellement créé. SerCx2 et le pilote de contrôleur série utilisent ce handle dans les appels suivants pour faire référence à cet objet.

Valeur retournée

Cette méthode retourne STATUS_SUCCESS si l’appel réussit. Les valeurs de retour d’erreur possibles incluent les codes status suivants.

Code de retour Description
STATUS_INVALID_DEVICE_REQUEST
Un objet PIO-receive existe déjà à partir d’un appel SerCx2PioReceiveCreate précédent.
STATUS_INFO_LENGTH_MISMATCH
La valeurTaille dela configuration-> n’est pas égale à sizeof(SERCX2_PIO_RECEIVE_CONFIG).
STATUS_INVALID_PARAMETER
La combinaison spécifiée de fonctions de rappel implémentées n’est pas valide. Le pilote doit implémenter les fonctions EvtSerCx2PioReceiveReadBuffer, EvtSerCx2PioReceiveEnableReadyNotification et EvtSerCx2PioReceiveCancelReadyNotification .
STATUS_INSUFFICIENT_RESOURCES
Les ressources disponibles sont insuffisantes pour effectuer l’opération demandée.

Remarques

Votre pilote de contrôleur série appelle cette méthode pour créer un objet PIO-receive. SerCx2 utilise cet objet pour effectuer des transactions de réception PIO, qui utilisent des E/S programmées (PIO) pour lire les données reçues par le contrôleur série.

En règle générale, un pilote de contrôleur série appelle SerCx2PioReceiveCreate à partir de sa fonction EvtDriverDeviceAdd . Le pilote doit appeler cette méthode uniquement après avoir correctement appelé la méthode SerCx2InitializeDevice .

En option, un pilote de contrôleur série peut utiliser le paramètre Attributes pour créer un contexte pour l’objet PIO-receive et pour fournir des pointeurs vers les fonctions EvtCleanupCallback et EvtDestroyCallback appelées pour préparer l’objet en vue de la suppression. Pour plus d’informations, consultez WDF_OBJECT_ATTRIBUTES.

Si le paramètre Attributes pointe vers une structure WDF_OBJECT_ATTRIBUTES , l’appelant ne doit pas remplacer les valeurs que la fonction d’initialisation WDF_OBJECT_ATTRIBUTES_INIT écrit sur les membres ParentObject, ExecutionLevel et SynchronizationScope de cette structure.

Pour plus d’informations sur la création d’objets PIO-receive, consultez SERCX2PIORECEIVE. Pour plus d’informations sur les transactions pio-receive, consultez Transactions SerCx2 PIO-Receive.

Configuration requise

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

Voir aussi

EvtCleanupCallback

EvtDestroyCallback

EvtDriverDeviceAdd

SERCX2PIORECEIVE

SERCX2_PIO_RECEIVE_CONFIG

SERCX2_PIO_RECEIVE_CONFIG_INIT

SerCx2InitializeDevice

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT