Partager via


PcInitializeAdapterDriver, fonction (portcls.h)

La fonction PcInitializeAdapterDriver lie un pilote d’adaptateur au pilote système PortCls. Les gestionnaires et gestionnaires IRP pour l’ajout et la suppression de périphériques sont installés dans l’objet pilote. Les pilotes d’adaptateur qui doivent être liés à plusieurs pilotes de classe ne doivent pas appeler cette fonction.

Syntaxe

PORTCLASSAPI NTSTATUS PcInitializeAdapterDriver(
  [in] PDRIVER_OBJECT     DriverObject,
  [in] PUNICODE_STRING    RegistryPathName,
  [in] PDRIVER_ADD_DEVICE AddDevice
);

Paramètres

[in] DriverObject

Pointeur vers l’objet pilote, qui est une structure système de type DRIVER_OBJECT. Ce pointeur est passé en tant que paramètre à la fonction DriverEntry de l’adaptateur.

[in] RegistryPathName

Spécifie le nom du chemin d’accès du Registre à passer en tant que paramètre à la fonction DriverEntry de l’adaptateur.

[in] AddDevice

Pointeur vers la fonction AddDevice de l’adaptateur. Il s’agit d’un pointeur de type PDRIVER_ADD_DEVICE, qui est défini dans ntddk.h comme suit :

  NTSTATUS
    (*PDRIVER_ADD_DEVICE)(
      IN struct _DRIVER_OBJECT  *DriverObject,
      IN struct _DEVICE_OBJECT  *PhysicalDeviceObject
        );

Valeur retournée

PcInitializeAdapterDriver retourne STATUS_SUCCESS si l’appel a réussi. Sinon, il retourne un code d’erreur approprié.

Remarques

Le gestionnaire AddDevice fourni dans l’appel de cette fonction doit appeler PcAddAdapterDevice. Pour plus d’informations, consultez Séquence de démarrage.

La fonction PcInitializeAdapterDriver charge les pointeurs vers les gestionnaires des IIP suivants dans l’objet pilote :

  • IRP_MJ_CLOSE
  • IRP_MJ_CREATE
  • IRP_MJ_DEVICE_CONTROL
  • IRP_MJ_FLUSH_BUFFERS
  • IRP_MJ_PNP
  • IRP_MJ_POWER
  • IRP_MJ_QUERY_SECURITY
  • IRP_MJ_READ
  • IRP_MJ_SET_SECURITY
  • IRP_MJ_SYSTEM_CONTROL
  • IRP_MJ_WRITE
PortCls utilise ses propres gestionnaires internes pour les IIP CREATE, PNP, POWER et SYSTEM_CONTROL ci-dessus. Il utilise les gestionnaires KS par défaut pour les sept autres IRPs.

Un pilote d’adaptateur qui remplace un ou plusieurs des pointeurs ci-dessus avec un pointeur vers son propre gestionnaire IRP peut appeler PcDispatchIrp à partir de sa routine de gestionnaire afin de transférer l’IRP vers PortCls. Pour obtenir un exemple de code, consultez l’exemple de pilote audio SB16 dans microsoft Windows Driver Kit (WDK).

Configuration requise

Condition requise Valeur
Client minimal pris en charge Le pilote système PortCls implémente la fonction PcInitializeAdapterDriver dans Microsoft Windows 98/Me et dans les systèmes d’exploitation Windows 2000 et ultérieurs.
Plateforme cible Universal
En-tête portcls.h (include Portcls.h)
Bibliothèque Portcls.lib
IRQL PASSIVE_LEVEL

Voir aussi

AddDevice

DRIVER_OBJECT

DriverEntry

PcAddAdapterDevice

PcDispatchIrp