PFNKSFILTERIRP 回呼函式 (ks.h)
當篩選收到 IRP 時,會呼叫 AVStream minidriver 的 AVStrMiniFilterCreate 例程。
語法
PFNKSFILTERIRP Pfnksfilterirp;
NTSTATUS Pfnksfilterirp(
[in] PKSFILTER Filter,
[in] PIRP Irp
)
{...}
參數
[in] Filter
KSFILTER的指標。
[in] Irp
Filter之 IRP 的指標。
傳回值
如果例程成功,請傳回STATUS_SUCCESS或錯誤碼。
言論
IRP | 描述 |
---|---|
IRP_MJ_CREATE | 一般而言,此例程是由想要初始化與篩選相關聯的內容和資源之迷你驅動程式使用。 minidriver 會在其 KSFILTER_DISPATCH 結構的 Create 成員中指定此例程的位址。 在呼叫例程時,檔案物件具有相關聯的內容,且已配置 KS 對象標頭。 此例程會在 IRQL = PASSIVE_LEVEL,並保留裝置 Mutex。 如果例程成功,則建立作業保證會成功。 傳回STATUS_SUCCESS或嘗試建立篩選所傳回的錯誤碼。 STATUS_PENDING也是合法的傳回碼。 如果迷你驅動程式傳回STATUS_PENDING,AVStream 將不會立即完成 IRP_MJ_CREATE。 傳回STATUS_PENDING之前,minidriver 必須呼叫 IoMarkIrpPending。 當建立的處理完成時,minidriver 必須設定 IRP 的狀態代碼,然後呼叫 KsCompletePendingRequest。 此例程是選擇性的。 |
IRP_MJ_CLOSE | minidriver 會在其 KSFILTER_DISPATCH 結構的 Close 成員中指定此例程的位址。 在呼叫例程時,篩選上的任何已註冊事件都已釋出,但物件會保持不變。 此例程會在 IRQL = PASSIVE_LEVEL,並保留裝置 Mutex。 如需 mutex 的詳細資訊,請參閱 AVStream 中的 Mutexes。 此例程是選擇性的。 傳回STATUS_SUCCESS或STATUS_PENDING。 如果 minidriver 傳回STATUS_PENDING,AVStream 將不會立即完成 IRP_MJ_CLOSE。 不過,在傳回STATUS_PENDING之前,minidriver 必須呼叫 IoMarkIrpPending。 關閉的處理完成之後,minidriver 必須設定 IRP 的狀態代碼,然後呼叫 KsCompletePendingRequest。 |
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | ks.h (包括 Ks.h) |
IRQL | PASSIVE_LEVEL (請參閱一節) |