PCEVENT_REQUEST 구조체(portcls.h)

PCEVENT_REQUEST 구조는 이벤트 요청을 지정합니다.

구문

typedef struct _PCEVENT_REQUEST {
  PUNKNOWN           MajorTarget;
  PUNKNOWN           MinorTarget;
  ULONG              Node;
  const PCEVENT_ITEM *EventItem;
  PKSEVENT_ENTRY     EventEntry;
  ULONG              Verb;
  PIRP               Irp;
} PCEVENT_REQUEST, *PPCEVENT_REQUEST;

멤버

MajorTarget

기본 미니포트 개체에 대한 IUnknown 포인터입니다. 이 멤버에는 어댑터 드라이버가 이전에 IPort::Init 메서드에 전달한 UnknownMiniport 포인터가 포함되어 있습니다.

MinorTarget

MajorTarget 미니포트 개체와 연결된 스트림 개체에 대한 IUnknown 포인터입니다. 이 멤버에는 포트 드라이버가 이전에 IMiniportXxx::NewStream 메서드에서 검색한 스트림 개체 포인터가 포함되어 있습니다(예: IMiniportWaveCyclic::NewStream 메서드의 Stream 매개 변수).

Node

노드 ID를 지정합니다. 이 멤버는 요청에 대한 대상 노드를 식별합니다. 대상이 노드가 아닌 경우 이 멤버는 ULONG(-1)로 설정됩니다.

EventItem

이 요청에 대한 PCEVENT_ITEM 구조에 대한 포인터

EventEntry

이 요청에 대한 KSEVENT_ENTRY 구조에 대한 포인터

Verb

이벤트 요청의 유형을 지정합니다. 이 멤버는 다음 표의 값 중 하나로 설정해야 합니다.

의미
PCEVENT_VERB_ADD 클라이언트가 지정된 이벤트를 사용하도록 설정하려고 했음을 나타냅니다. 이벤트 및 대상 정보의 유효성을 검사한 후 EventHandler 루틴 은 IPortEvents::AddEventToEventList 메서드를 호출하여 이벤트를 추가합니다.
PCEVENT_VERB_REMOVE EventHandler에 이벤트가 비활성화되고 목록에서 제거되고 있음을 알 수 있습니다.
PCEVENT_VERB_SUPPORT 이 요청은 지원을 위한 쿼리입니다. 미니포트 드라이버가 요청에서 식별된 대상에 대한 이벤트를 지원하는 경우 이 쿼리에 성공해야 합니다. 그렇지 않으면 쿼리에 실패해야 합니다.
PCEVENT_VERB_NONE 어떤 조치가 필요하지 않습니다.

Irp

이벤트 요청을 포함하는 IRP 에 대한 포인터

설명

포트 드라이버가 미니포트 드라이버의 EventHandler 루틴에 전달하는 구조입니다. PCEVENT_ITEM 구조체에는 PCEVENT_REQUEST 포인터를 유일한 호출 매개 변수로 사용하는 이벤트 처리기에 대한 함수 포인터가 포함되어 있습니다. 포트 드라이버는 PCEVENT_REQUEST 구조를 할당하고, Irp 멤버가 가리키는 원래 이벤트 요청에서 관련 정보를 추출하고, 처리기를 호출하기 전에 이 구조체에 정보를 로드합니다.

WDM 오디오에서 이벤트 요청의 대상은 핀 instance 수 있지만 필터 instance 수 없습니다. 대상에는 노드 ID도 포함될 수 있습니다.

MajorTargetMinorTarget 멤버는 각각 기본 미니포트 개체 및 연결된 스트림 개체에 대한 IUnknown 포인터입니다. 이벤트 처리기는 미니포트 및 스트림 인터페이스에 대해 이러한 개체를 쿼리할 수 있습니다.

예를 들어 이벤트 요청의 대상이 WaveCyclic 필터의 핀 instance 경우:

요구 사항

요구 사항
헤더 portcls.h(Portcls.h 포함)

추가 정보

Eventhandler

IPortEvents::AddEventToEventList

KSEVENT_ENTRY

PCEVENT_ITEM

PCFILTER_NODE