estructura BUS_INTERFACE_REFERENCE (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 modo que el dispositivo permanece 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 de exportada.
ReferenceDeviceObject
Puntero a una rutina de KStrReferenceDeviceObject proporcionada por el controlador.
DereferenceDeviceObject
Puntero a una rutina de KStrDereferenceDeviceObject proporcionada por el controlador.
QueryReferenceString
Puntero a una rutina de KStrQueryReferenceString proporcionada por el controlador.
Observaciones
Un controlador obtiene una interfaz de BUS_INTERFACE_REFERENCE mediante la creación y el envío de una solicitud 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 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 la pila, proporcione un puntero a la nueva estructura BUS_INTERFACE_REFERENCE del miembro Parameters.QueryInterface.Interface.
- Establezca una rutina de finalización y envíe la solicitud a la pila del controlador.
- Si la solicitud se realiza correctamente, el sistema rellena la estructura BUS_INTERFACE_REFERENCE a la que apunta Parameters.QueryInterface.Interface.
Requisitos
Requisito | Valor |
---|---|
encabezado de | ks.h (incluya Ks.h) |