Partager via


structure BUS_INTERFACE_SWENUM (swenum.h)

La structure BUS_INTERFACE_SWENUM décrit l’interface de l’objet énumérateur de bus à charge de la demande.

Syntaxe

typedef struct _BUS_INTERFACE_SWENUM {
  INTERFACE                  Interface;
  PFNREFERENCEDEVICEOBJECT   ReferenceDeviceObject;
  PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
  PFNQUERYREFERENCESTRING    QueryReferenceString;
} BUS_INTERFACE_SWENUM, *PBUS_INTERFACE_SWENUM;

Membres

Interface

Spécifie l’INTERFACE exportée.

ReferenceDeviceObject

Pointeur vers une routine KsReferenceSoftwareBusObject fournie par le pilote.

DereferenceDeviceObject

Pointeur vers une routine KsDereferenceSoftwareBusObject fournie par le pilote.

QueryReferenceString

Pointeur vers une routine KsQuerySoftwareBusInterface fournie par le pilote.

Remarques

Un pilote obtient une interface BUS_INTERFACE_SWENUM 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_SWENUM à partir du pool de mémoire paginé.
  • 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_SWENUM dans le membre Parameters.QueryInterface.Interface .
  • Définissez une routine d’achèvement et envoyez la demande dans la pile des pilotes.
  • Si votre demande réussit, le système remplit la structure BUS_INTERFACE_SWENUM pointée par Parameters.QueryInterface.Interface.

Configuration requise

Condition requise Valeur
En-tête swenum.h (inclure Swenum.h)