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도 포함될 수 있습니다.
MajorTarget 및 MinorTarget 멤버는 각각 기본 미니포트 개체 및 연결된 스트림 개체에 대한 IUnknown 포인터입니다. 이벤트 처리기는 미니포트 및 스트림 인터페이스에 대해 이러한 개체를 쿼리할 수 있습니다.
예를 들어 이벤트 요청의 대상이 WaveCyclic 필터의 핀 instance 경우:
- 처리기는 MajorTarget 개체의 IUnknown 인터페이스에서 QueryInterface를 호출하여 개체의 IMiniportWaveCyclic 인터페이스에 대한 참조를 가져올 수 있습니다.
- 처리기는 MinorTarget 개체의 IUnknown 인터페이스에서 QueryInterface를 호출하여 개체의 IMiniportWaveCyclicStream 인터페이스에 대한 참조를 가져올 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | portcls.h(Portcls.h 포함) |