Compartilhar via


estrutura BUS_INTERFACE_REFERENCE (ks.h)

Um enumerador de dispositivo de software exporta essa interface para permitir que os drivers referenciem PDOs (objetos de dispositivo físico) de contagem, de modo que o dispositivo permaneça ativo enquanto estiver em uso e seja descarregado quando não estiver em uso.

Sintaxe

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

Membros

Interface

Especifica a INTERFACE exportada.

ReferenceDeviceObject

Ponteiro para uma rotina KStrReferenceDeviceObject fornecida pelo driver.

DereferenceDeviceObject

Ponteiro para uma rotina KStrDereferenceDeviceObject fornecida pelo driver.

QueryReferenceString

Ponteiro para uma rotina KStrQueryReferenceString fornecida pelo driver.

Comentários

Um driver obtém uma interface BUS_INTERFACE_REFERENCE criando e enviando uma solicitação de IRP_MJ_PNP que especifica um código de função IRP_MN_QUERY_INTERFACE secundário. Para fazer isso, o driver deve:

  • Aloque e preencha zero uma estrutura de BUS_INTERFACE_REFERENCE do pool de memória paginada.
  • Crie um IRP para a solicitação da interface de consulta e obtenha o próximo local de pilha para o novo IRP.
  • No novo local da pilha, forneça um ponteiro para a nova estrutura BUS_INTERFACE_REFERENCE no membro Parameters.QueryInterface.Interface .
  • Defina uma rotina de conclusão e envie a solicitação para baixo na pilha do driver.
  • Se sua solicitação for bem-sucedida, o sistema preencherá a estrutura BUS_INTERFACE_REFERENCE apontada por Parameters.QueryInterface.Interface.

Requisitos

Requisito Valor
Cabeçalho ks.h (inclua Ks.h)