다음을 통해 공유


INTERFACE 구조체(wdm.h)

INTERFACE 구조는 다른 드라이버에서 사용하기 위해 드라이버에서 내보낸 인터페이스를 설명합니다.

구문

typedef struct _INTERFACE {
  USHORT                 Size;
  USHORT                 Version;
  PVOID                  Context;
  PINTERFACE_REFERENCE   InterfaceReference;
  PINTERFACE_DEREFERENCE InterfaceDereference;
} INTERFACE, *PINTERFACE;

멤버

Size

이 구조체 및 인터페이스별 멤버를 포함하여 드라이버 인터페이스를 정의하는 구조체의 크기(바이트)입니다.

Version

드라이버 정의 인터페이스 버전입니다.

Context

인터페이스별 컨텍스트 정보에 대한 포인터입니다.

InterfaceReference

인터페이스의 참조 횟수를 증가시키는 드라이버 제공 InterfaceReference 루틴에 대한 포인터입니다.

InterfaceDereference

인터페이스의 참조 수를 감소시키는 드라이버 제공 InterfaceDereference 루틴에 대한 포인터입니다.

설명

INTERFACE 구조는 IRP_MN_QUERY_INTERFACE 요청에 대한 응답으로 드라이버에서 반환된 인터페이스를 설명하는 모든 구조체의 첫 번째 멤버로 포함되어야 합니다.

InterfaceReference 루틴은 드라이버가 IRP_MN_QUERY_INTERFACE 대한 응답으로 해당 인터페이스를 제공할 때마다 인터페이스를 내보내는 드라이버에서 호출해야 합니다. 마찬가지로 인터페이스를 요청하는 드라이버가 이후에 인터페이스를 다른 드라이버에 전달하는 경우 인터페이스를 전달하는 드라이버는 인터페이스를 수신하는 드라이버를 대신하여 InterfaceReference 를 호출해야 합니다.

인터페이스를 가져오는 각 드라이버( IRP_MN_QUERY_INTERFACE 보내거나 다른 드라이버에서 인터페이스를 수신하여)는 인터페이스 사용을 완료한 후 InterfaceDereference 루틴을 호출해야 합니다. InterfaceDereference 루틴을 호출한 후 드라이버는 먼저 인터페이스를 다시 사용하지 않고는 인터페이스를 다시 사용할 수 없습니다.

기존 인터페이스의 새 버전을 도입할 때 이 구조체의 크기 또는 버전 필드를 수정하는 대신 새 GUID를 만듭니다. 자세한 내용은 Driver-Defined 인터페이스 사용을 참조하세요.

요구 사항

요구 사항
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h, Miniport.h 포함)

추가 정보

IRP_MN_QUERY_INTERFACE

InterfaceDereference