다음을 통해 공유


BUS_INTERFACE_SWENUM 구조체(swenum.h)

BUS_INTERFACE_SWENUM 구조는 수요 로드 버스 열거자 개체의 인터페이스를 설명합니다.

구문

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

멤버

Interface

내보낸 INTERFACE를 지정합니다.

ReferenceDeviceObject

드라이버 제공 KsReferenceSoftwareBusObject 루틴에 대한 포인터입니다.

DereferenceDeviceObject

드라이버 제공 KsDereferenceSoftwareBusObject 루틴에 대한 포인터입니다.

QueryReferenceString

드라이버 제공 KsQuerySoftwareBusInterface 루틴에 대한 포인터입니다.

설명

드라이버는 IRP_MN_QUERY_INTERFACE 부 함수 코드를 지정하는 IRP_MJ_PNP 요청을 만들고 전송하여 BUS_INTERFACE_SWENUM 인터페이스를 가져옵니다. 이렇게 하려면 드라이버는 다음을 수행해야 합니다.

  • 페이징된 메모리 풀에서 BUS_INTERFACE_SWENUM 구조를 할당하고 0으로 채웁니다.
  • 쿼리 인터페이스 요청에 대한 IRP를 만들고 새 IRP에 대한 다음 스택 위치를 가져옵니다.
  • 새 스택 위치에서 Parameters.QueryInterface.Interface 멤버의 새 BUS_INTERFACE_SWENUM 구조체에 대한 포인터를 제공합니다.
  • 완료 루틴을 설정하고 드라이버 스택 아래로 요청을 보냅니다.
  • 요청이 성공하면 시스템은 Parameters.QueryInterface.Interface가 가리키는 BUS_INTERFACE_SWENUM 구조를 채웁니다.

요구 사항

요구 사항
헤더 swenum.h(Swenum.h 포함)