BUS_INTERFACE_REFERENCE 구조체(ks.h)
소프트웨어 디바이스 열거자는 드라이버가 사용 중인 동안 디바이스가 활성 상태로 유지되고 사용하지 않을 때 언로드되도록 PDO(물리적 디바이스 개체) 수를 참조할 수 있도록 이 인터페이스를 내보냅니다.
구문
typedef struct {
INTERFACE Interface;
PFNREFERENCEDEVICEOBJECT ReferenceDeviceObject;
PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
PFNQUERYREFERENCESTRING QueryReferenceString;
} BUS_INTERFACE_REFERENCE, *PBUS_INTERFACE_REFERENCE;
멤버
Interface
내보낸 인터페이스를 지정합니다.
ReferenceDeviceObject
드라이버 제공 KStrReferenceDeviceObject 루틴에 대한 포인터입니다.
DereferenceDeviceObject
드라이버 제공 KStrDereferenceDeviceObject 루틴에 대한 포인터입니다.
QueryReferenceString
드라이버 제공 KStrQueryReferenceString 루틴에 대한 포인터입니다.
설명
드라이버는 IRP_MN_QUERY_INTERFACE 부 함수 코드를 지정하는 IRP_MJ_PNP 요청을 만들고 전송하여 BUS_INTERFACE_REFERENCE 인터페이스를 가져옵니다. 이렇게 하려면 드라이버는 다음을 수행해야 합니다.
- 페이징된 메모리 풀에서 BUS_INTERFACE_REFERENCE 구조를 할당하고 0으로 채웁니다.
- 쿼리 인터페이스 요청에 대한 IRP를 만들고 새 IRP에 대한 다음 스택 위치를 가져옵니다.
- 새 스택 위치에서 Parameters.QueryInterface.Interface 멤버의 새 BUS_INTERFACE_REFERENCE 구조체에 대한 포인터를 제공합니다.
- 완료 루틴을 설정하고 드라이버 스택 아래로 요청을 보냅니다.
- 요청이 성공하면 시스템은 Parameters.QueryInterface.Interface가 가리키는 BUS_INTERFACE_REFERENCE 구조를 채웁니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ks.h(Ks.h 포함) |