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 포함) |