FltRegisterFilter 函式 (fltkernel.h)

FltRegisterFilter 會註冊迷你篩選驅動程式。

語法

NTSTATUS FLTAPI FltRegisterFilter(
  [in]  PDRIVER_OBJECT         Driver,
  [in]  const FLT_REGISTRATION *Registration,
  [out] PFLT_FILTER            *RetFilter
);

參數

[in] Driver

迷你篩選驅動程式之驅動程序物件的指標。 這應該是當做輸入傳遞至迷你篩選器驅動程式 DriverEntry 例程的相同驅動程式對象指標。

[in] Registration

呼叫端配置的迷你篩選驅動程式註冊結構的指標, (FLT_REGISTRATION)

[out] RetFilter

呼叫端配置的變數指標,可接收呼叫端的不透明篩選指標。

傳回值

FltRegisterFilter 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:

傳回碼 Description
STATUS_INSUFFICIENT_RESOURCES
FltRegisterFilter 發生集區配置失敗。 這是錯誤碼。
STATUS_INVALID_PARAMETER
下列其中之一:
  • 註冊結構的 Version 成員未設定為 FLT_REGISTRATION_VERSION。
  • 註冊結構中的其中一個非NULL名稱提供者例程已設定為無效的值。 FLT_REGISTRATION的 GenerateFileNameCallbackNormalizeNameComponentCallbackNormalizeNameComponentExCallback成員指向名稱提供者例程。
STATUS_INVALID_PARAMETER是錯誤碼。
STATUS_FLT_NOT_INITIALIZED
篩選條件嘗試註冊時,篩選管理員未初始化。 請確定篩選管理員已載入為驅動程式。 這是錯誤碼。
STATUS_OBJECT_NAME_NOT_FOUND
登錄中找不到篩選服務金鑰。

-或-

篩選實例未註冊。

備註

每個迷你篩選驅動程式都必須從其 DriverEntry 例程呼叫 FltRegisterFilter,以將本身新增至已註冊迷你篩選驅動程式的全域清單,並提供篩選管理員回呼函式清單,以及迷你篩選驅動程式的其他資訊。

FltRegisterFilter 會傳回 *RetFilter 中迷你篩選驅動程式的不透明篩選指標。 此指標值可唯一識別迷你篩選驅動程式,只要載入迷你篩選驅動程式,就會維持不變。 minifilter 驅動程式應該儲存此指標,因為它是 FltStartFilteringFltUnregisterFilter 的必要參數。

呼叫 FltRegisterFilter 之後,迷你篩選驅動程式通常會呼叫 FltStartFiltering 以開始篩選 I/O 作業。

迷你篩選驅動程式只能呼叫 FltRegisterFilter 來註冊本身,而不是另一個迷你篩選驅動程式。

若要取消註冊本身,迷你篩選驅動程式會呼叫 FltUnregisterFilter.。

規格需求

需求
目標平台 Universal
標頭 fltkernel.h (包含 Fltkernel.h)
程式庫 FltMgr.lib
Dll Fltmgr.sys
IRQL <= APC_LEVEL

另請參閱

FLT_REGISTRATION

FltStartFiltering

FltUnregisterFilter