Partager via


structure BUS_INTERFACE_REFERENCE (ks.h)

Un énumérateur d’appareil logiciel exporte cette interface pour permettre aux pilotes de référencer le nombre d’objets d’appareil physique (PDO) afin que l’appareil reste actif pendant son utilisation et soit déchargé lorsqu’il n’est pas utilisé.

Syntaxe

typedef struct {
  INTERFACE                  Interface;
  PFNREFERENCEDEVICEOBJECT   ReferenceDeviceObject;
  PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
  PFNQUERYREFERENCESTRING    QueryReferenceString;
} BUS_INTERFACE_REFERENCE, *PBUS_INTERFACE_REFERENCE;

Membres

Interface

Spécifie l’interface de exportée.

ReferenceDeviceObject

Pointeur vers une routine KStrReferenceDeviceObject fournie par le pilote.

DereferenceDeviceObject

Pointeur vers une routine KStrDereferenceDeviceObject fournie par le pilote.

QueryReferenceString

Pointeur vers une routine KStrQueryReferenceStr ing fournie par le pilote.

Remarques

Un pilote obtient une interface BUS_INTERFACE_REFERENCE en créant et en envoyant une requête IRP_MJ_PNP qui spécifie un code de fonction secondaire IRP_MN_QUERY_INTERFACE. Pour ce faire, le pilote doit :

  • Allouez et ne remplissez pas une structure BUS_INTERFACE_REFERENCE à partir du pool de mémoire paginé.
  • Créez un IRP pour la requête d’interface de requête et obtenez l’emplacement de la pile suivante pour le nouvel IRP.
  • Dans le nouvel emplacement de pile, fournissez un pointeur vers la nouvelle structure de BUS_INTERFACE_REFERENCE dans le membre Parameters.QueryInterface.Interface.
  • Définissez une routine d’achèvement et envoyez la requête dans la pile des pilotes.
  • Si votre demande réussit, le système remplit la structure BUS_INTERFACE_REFERENCE pointée par Parameters.QueryInterface.Interface.

Exigences

Exigence Valeur
d’en-tête ks.h (include Ks.h)