KsDisableEvent 函式 (ks.h)
KsDisableEvent 函式會停用透過 IOCTL_KS_DISABLE_EVENT 要求的事件。 它會回應先前透過 KsEnableEvent啟用的所有事件。 如果輸入緩衝區長度為零,則會假設清單中的所有事件都會停用。 此函式只能在PASSIVE_LEVEL呼叫。
語法
KSDDKAPI NTSTATUS KsDisableEvent(
[in] PIRP Irp,
[in, out] PLIST_ENTRY EventsList,
[in] KSEVENTS_LOCKTYPE EventsFlags,
[in] PVOID EventsLock
);
參數
[in] Irp
指定傳遞至移除函式的 IRP,該函式會使用 IRP 來取得內容資訊。 與 IRP 相關聯的檔案物件可用來與啟用事件時原本指定的檔案對象進行比較。 這可讓單一事件清單用於以檔案物件區分的多個用戶端。
[in, out] EventsList
指向可找到事件之 KSEVENT_ENTRY 項目清單的標頭。 如果用戶端使用多個事件清單,且不知道此事件位於哪個清單,用戶端可以多次呼叫此函式。 找不到事件會傳回STATUS_UNSUCCESSFUL。
[in] EventsFlags
指定 KSEVENTS_LOCKTYPE 旗標,指定要用於存取事件清單的排除鎖定類型。 如果未設定旗標,則不會取得鎖定。
[in] EventsLock
用來同步處理清單上元素的存取。 存取項目之後,會將其標示為已刪除,以便後續移除要求失敗。 然後在呼叫移除函式之後釋放鎖定,如果有的話。 拿掉函式必須與事件產生同步處理,才能實際從清單中移除專案。
傳回值
KsDisableEvent 函式會在成功時傳回STATUS_SUCCESS,或啟用事件的特定錯誤。 函式一律會設定IO_STATUS_BLOCK。PIRP 的資訊欄位。IRP 內的IoStatus元素為零。 它不會設定IO_STATUS_BLOCK。[狀態] 欄位,也不會完成 IRP。
言論
請務必移除處理程式與事件產生同步,以確保從清單中移除事件時,目前並未提供服務。 此清單的存取權假設是透過傳遞的鎖定來控制。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | ks.h (包括 Ks.h) |
連結庫 | Ks.lib |