共用方式為


PFNKSFILTERIRP 回呼函式 (ks.h)

當篩選收到 IRP 時,會呼叫 AVStream minidriver 的 AVStrMiniFilterCreate 例程。

IRP_MJ_CREATE

IRP_MJ_CLOSE

語法

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 (請參閱一節)

另請參閱

IoMarkIrpPending

KSFILTER_DISPATCHKsCompletePendingRequest