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
IUnknown 與 MajorTarget miniport 對象相關聯的數據流物件指標。 這個成員包含埠驅動程式先前從 IMiniportXxx 擷取的數據流物件指標::NewStream 方法(例如,IMiniportWaveCyclic::NewStream 方法的 Stream 參數)。
Node
指定節點識別碼。 這個成員會識別要求的目標節點。 如果目標不是節點,此成員會設定為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 音訊中,事件要求的目標可以是針腳實例,但不能是篩選實例。 目標也可以包含節點識別碼。
MajorTarget 和 MinorTarget 成員分別 IUnknown 主要迷你埠物件的指標和相關聯的數據流物件。 事件處理程式可以查詢這些物件是否有其迷你埠和數據流介面。
例如,如果事件要求的目標是 WaveCyclic 篩選上的針腳實例:
- 處理程式可以在 MajorTarget 物件的 IUnknown 介面上呼叫 QueryInterface,以取得物件的 IMiniportWaveCyclic 介面參考。
- 處理程式可以在 MinorTarget 物件的 IUnknown 介面上呼叫 QueryInterface,以取得物件的 IMiniportWaveCyclicStream 介面參考。
要求
要求 | 價值 |
---|---|
標頭 | portcls.h (包括 Portcls.h) |