BUS_INTERFACE_REFERENCE estructura (ks.h)

Un enumerador de dispositivos de software exporta esta interfaz para permitir que los controladores hagan referencia al recuento de objetos de dispositivo físico (PPO) de forma que el dispositivo permanezca activo mientras está en uso y se descarga cuando no está en uso.

Sintaxis

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

Miembros

Interface

Especifica la INTERFAZ exportada.

ReferenceDeviceObject

Puntero a una rutina KStrReferenceDeviceObject proporcionada por el controlador.

DereferenceDeviceObject

Puntero a una rutina KStrDereferenceDeviceObject proporcionada por el controlador.

QueryReferenceString

Puntero a una rutina KStrQueryReferenceString proporcionada por el controlador.

Comentarios

Un controlador obtiene una interfaz de BUS_INTERFACE_REFERENCE mediante la creación y el envío de una solicitud de IRP_MJ_PNP que especifica un código de función secundaria de IRP_MN_QUERY_INTERFACE . Para ello, el controlador debe:

  • Asigne y rellene cero una estructura de BUS_INTERFACE_REFERENCE del grupo de memoria paginada.
  • Cree un IRP para la solicitud de interfaz de consulta y obtenga la siguiente ubicación de pila para el nuevo IRP.
  • En la nueva ubicación de pila, proporcione un puntero a la nueva estructura de BUS_INTERFACE_REFERENCE en el miembro Parameters.QueryInterface.Interface .
  • Establezca una rutina de finalización y envíe la solicitud hacia abajo en la pila del controlador.
  • Si la solicitud se realiza correctamente, el sistema rellena la estructura de BUS_INTERFACE_REFERENCE a la que apunta Parameters.QueryInterface.Interface.

Requisitos

Requisito Valor
Header ks.h (incluye Ks.h)