UcmTcpciPortControllerStart, fonction (ucmtcpciportcontroller.h)

Indique à l’extension de classe UcmTcpciCx que le pilote client est maintenant prêt à traiter les demandes matérielles pour le contrôleur de port.

Syntaxe

NTSTATUS UcmTcpciPortControllerStart(
  UCMTCPCIPORTCONTROLLER PortControllerObject
);

Paramètres

PortControllerObject

Gérez l’objet contrôleur de port que le pilote client a reçu lors de l’appel précédent à UcmTcpciPortControllerCreate.

Valeur retournée

(NTSTATUS) La méthode retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner un code d’erreur NTSTATUS approprié.

Code de retour Description
STATUS_INVALID_DEVICE_REQUEST
Le contrôleur de port est déjà à l’état Démarrer.
STATUS_INVALID_HANDLE
La file d’attente des demandes matérielles n’a pas été définie en appelant UcmTcpciPortControllerSetHardwareRequestQueue.

Remarques

Une fois que le pilote client a reçu le handle UCMPORTCONTROLLER pour l’objet du contrôleur de port, le pilote appelle cette méthode pour informer l’extension de classe que le pilote peut commencer à recevoir des demandes matérielles. Cet appel de méthode permet au pilote client d’initialiser son espace de contexte d’infrastructure sur l’objet du contrôleur de port, avant que l’extension de classe puisse appeler les fonctions de rappel ou les demandes du pilote pour l’objet contrôleur de port. Le pilote ne peut pas appeler UcmTcpciPortControllerAlert ou UcmTcpciPortControllerStop tant que le contrôleur de port n’a pas été démarré.

Le pilote client appelle cette méthode juste après avoir appelé UcmTcpciPortControllerCreate et initialisé sa structure de contexte, si elle a été spécifiée dans la structure WDF_OBJECT_ATTRIBUTES comme valeur de paramètre Attributes . Le pilote doit supposer que l’extension de classe peut envoyer des demandes avant même que UcmTcpciPortControllerStart ne retourne, c’est-à-dire à partir de cet appel DDI. Si le pilote tient un verrou lors de l’appel de UcmTcpciPortControllerStart et tente également d’acquérir un verrou lors de la gestion d’une demande matérielle (dans le rappel de la file d’attente des demandes matérielles), cela peut entraîner un interblocage.

Un appel à UcmTcpciPortControllerStart pour démarrer un objet de contrôleur de port déjà à l’état Démarrer génère une erreur.

Au démarrage, si le BIOS avait déjà négocié un contrat pdd, UcmTcpciCx démarre à partir d’un état non attaché.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10
Serveur minimal pris en charge Windows Server 2016
Plateforme cible Windows
En-tête ucmtcpciportcontroller.h
Bibliothèque Ucmtcpcicxstub.lib
IRQL PASSIVE_LEVEL

Voir aussi

UcmTcpciPortControllerStop