共用方式為


KsFilterGenerateEvents 函式 (ks.h)

KsFilterGenerateEvents 函式會產生 Filter事件清單中的指示類型事件。

語法

void KsFilterGenerateEvents(
  [in]           PKSFILTER                  Filter,
  [in, optional] const GUID                 *EventSet,
  [in]           ULONG                      EventId,
  [in]           ULONG                      DataSize,
  [in]           PVOID                      Data,
  [in, optional] PFNKSGENERATEEVENTCALLBACK CallBack,
  [in, optional] PVOID                      CallBackContext
);

參數

[in] Filter

要為其產生事件的 KSFILTER 結構的指標。

[in, optional] EventSet

要比對的事件集 GUID 指標,以判斷要產生哪些事件。 如果此參數 NULL,則不會考慮事件集 GUID 來判斷比對事件。

[in] EventId

要比對的事件標識碼,用於判斷要產生的事件。

[in] DataSize

以位元組為單位 資料 的大小。

[in] Data

數據緩衝區的指標。 指定是否產生數據事件。

[in, optional] CallBack

呼叫端指定之函式的指標,用來判斷是否應該產生指定的事件。 如果這是 NULL,則不會執行回呼驗證來判斷是否應該產生事件(僅使用 *EventSet *和 EventId)。 如需詳細資訊,請參閱下面的一節。

[in, optional] CallBackContext

傳遞給回呼函式的呼叫端指定內容的選擇性指標,CallBack。 如需詳細資訊,請參閱下面的一節。

傳回值

沒有

言論

呼叫此函式時,minidriver 必須將 DataCallBackContext 放在鎖定、不可分頁的數據區段中。 此外,請注意,CallBack 是在DISPATCH_LEVEL進行。 回呼函式必須位於鎖定的區段中,而且必須準備好在 IRQL = DISPATCH_LEVEL執行。 請注意,DX8 中只有 有其他問題:EventSet 必須位於鎖定的數據區段中。

這是 KsGenerateEvents 的內嵌函式呼叫,可執行必要的類型轉換。 Minidrivers 通常應該呼叫此版本,而不是直接呼叫 KsGenerateEvents

如果下列條件保留,就會產生事件:

  • 事件存在於 Filter的事件清單中,EventId 符合事件的識別符

  • EventSet 符合事件的設定 GUID,或 NULL

  • CallBackNULL 或授權相符專案

CallBack 是用於其他比對判斷的呼叫端指定回呼。 其原型如下:

BOOLEAN CallBack (IN PVOID Context, IN PKSEVENT_ENTRY EventEntry);

AVStream 會在此回呼的 Context 參數中,傳遞 KsFilterGenerateEvents 例程的參數 CallBackContextEventEntry 是指定所產生事件的 KSEVENT_ENTRY 結構的指標。 如果應該產生此事件,回呼函式應該傳回 true true

如需詳細資訊,請參閱AVStream KS事件中的 事件處理。

要求

要求 價值
最低支援的用戶端 Microsoft Windows XP 和更新版本的作系統和 DirectX 8.0 和更新版本的 DirectX 版本中提供。
目標平臺 桌面
標頭 ks.h (包括 Ks.h)
連結庫 Ks.lib
IRQL <=DISPATCH_LEVEL (請參閱一節。)

另請參閱

KSEVENT_ENTRY

KsAddEvent

KsGenerateEvents

KsPinGenerateEvents