KsPinGenerateEvents 函式 (ks.h)

KsPinGenerateEvents 函式會產生 Pin 事件清單中所指出類型的事件。

語法

void KsPinGenerateEvents(
  [in]           PKSPIN                     Pin,
  [in, optional] const GUID                 *EventSet,
  [in]           ULONG                      EventId,
  [in]           ULONG                      DataSize,
  [in, optional] PVOID                      Data,
  [in, optional] PFNKSGENERATEEVENTCALLBACK CallBack,
  [in, optional] PVOID                      CallBackContext
);

參數

[in] Pin

要在其中產生事件的 KSPIN 結構的指標。

[in, optional] EventSet

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

[in] EventId

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

[in] DataSize

要用來產生數據事件之數據的大小,以位元組為單位。

[in, optional] Data

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

[in, optional] CallBack

呼叫端指定之函式的指標,用來判斷是否應該產生指定的事件。 如果 為 NULL,則不會執行回呼驗證,以判斷是否應該產生事件, (只會使用 *EventSet *和 EventId) 。 原型如下所示:

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

KsPinGenerateEvents 會將 CallBackContext 參數傳遞為回呼的 Context 參數。 如果應該產生 EventEntry,則回呼函式會傳回 TRUE。 否則會傳回 FALSE

[in, optional] CallBackContext

傳遞至回呼函式 CallBack 之呼叫端指定內容的指標。

傳回值

備註

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

這是 KsGenerateEvents 的內嵌函數調用,會執行必要的類型傳播。 Minidrivers 通常應該呼叫此版本,而不是直接呼叫 KsGenerateEvents

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

  • 事件會出現在 *Pin 的 *事件清單中,而 *EventId *符合事件的標識符。

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

  • *CallBack *為 NULL 或授權相符專案。

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

規格需求

需求
最低支援的用戶端 適用於 Microsoft Windows XP 和更新版本的作業系統和 DirectX 8.0 和更新版本的 DirectX。
目標平台 桌面
標頭 ks.h (包含 Ks.h)
程式庫 Ks.lib
IRQL <=DISPATCH_LEVEL (請參閱備註)

另請參閱

KSEVENT_ENTRY

KsAddEvent

KsFilterGenerateEvents

KsGenerateEvents