KsGenerateEvents 函式 (ks.h)
KsGenerateEvents 函式會產生 Object事件清單中所指出類型的事件。
語法
void KsGenerateEvents(
[in] PVOID Object,
[in, optional] const GUID *EventSet,
[in] ULONG EventId,
[in] ULONG DataSize,
[in, optional] PVOID Data,
[in, optional] PFNKSGENERATEEVENTCALLBACK CallBack,
[in, optional] PVOID CallBackContext
);
參數
[in] Object
要在其中產生事件的物件。 這可以是AVStream篩選或釘選物件。
[in, optional] EventSet
要比對的事件集 GUID,以判斷要產生哪些事件。 如果此參數 NULL,則不會考慮設定 GUID 來判斷比對事件。
[in] EventId
要比對的事件標識碼,以判斷要產生的事件。
[in] DataSize
要用來產生數據事件的數據位元組大小。
[in, optional] Data
要包含在事件通知中的數據緩衝區指標。 如果驅動程式不需要透過通知傳達其他資訊,請將這個選擇性參數設定為 NULL。
[in, optional] CallBack
呼叫端指定之函式的指標,用來判斷是否應該產生指定的事件。 如果這是 NULL,則不會執行回呼驗證來判斷是否應該產生事件(僅使用 *EventSet *和 EventId)。
[in, optional] CallBackContext
傳遞給回呼函式之呼叫端指定內容的指標,CallBack。
傳回值
沒有
言論
呼叫此函式時,minidriver 必須將 Data 和 CallBackContext 放在鎖定、不可分頁的數據區段中。 此外,請注意,CallBack 是在DISPATCH_LEVEL進行。 回呼函式必須位於鎖定的區段中,而且必須準備好在 IRQL = DISPATCH_LEVEL執行。 請注意,DX8 中只有 有其他問題:EventSet 必須位於鎖定的數據區段中。
Minidrivers 通常不會直接呼叫此函式,而是使用執行適當轉換的其中一個版本:KsFilterGenerateEvents 或 KsPinGenerateEvents。
如果事件存在於 *Object 的 *事件清單中,且 *EventId *符合事件的標識符,EventSet 符合事件的設定 GUID 或 NULL,而 *CallBack *NULL 或授權相符專案,就會產生事件。
CallBack 是用於其他比對判斷的呼叫端指定回呼。 其原型如下:
BOOLEAN CallBack (IN PVOID Context, IN PKSEVENT_ENTRY EventEntry);
AVStream 會在此回呼的 Context 參數中,傳遞 KsGenerateEvents 例程的參數 CallBackContext。 EventEntry 是指定所產生事件的 KSEVENT_ENTRY 結構的指標。 如果應該產生此事件,回呼函式應該傳回 true true。
如需詳細資訊,請參閱AVStream 和 KS事件中的 事件處理。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Microsoft Windows XP 和更新版本的作系統和 DirectX 8.0 和更新版本的 DirectX 版本中提供。 |
目標平臺 | 普遍 |
標頭 | ks.h (包括 Ks.h) |
連結庫 | Ks.lib |
IRQL | <=DISPATCH_LEVEL |