structure BUS_INTERFACE_REFERENCE (ks.h)
Un énumérateur de périphérique logiciel exporte cette interface pour permettre aux pilotes de référencer le nombre d’objets de périphériques physiques (PPO) 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 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 KStrQueryReferenceString 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 :
- Allouer et vider une structure BUS_INTERFACE_REFERENCE à partir du pool de mémoire paginée.
- Créez un IRP pour la demande d’interface de requête et obtenez l’emplacement de pile suivant pour le nouvel IRP.
- Dans le nouvel emplacement de pile, fournissez un pointeur vers la nouvelle structure 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.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ks.h (inclure Ks.h) |