共用方式為


PFLT_NORMALIZE_NAME_COMPONENT回呼函式 (fltkernel.h)

提供篩選管理員名稱快取檔名的迷你篩選驅動程式可以註冊類型為PFLT_NORMALIZE_NAME_COMPONENT的例程,作為迷你篩選驅動程式 的 NormalizeNameComponentCallback 例程。

語法

PFLT_NORMALIZE_NAME_COMPONENT PfltNormalizeNameComponent;

NTSTATUS PfltNormalizeNameComponent(
  [in]      PFLT_INSTANCE Instance,
  [in]      PCUNICODE_STRING ParentDirectory,
  [in]      USHORT VolumeNameLength,
  [in]      PCUNICODE_STRING Component,
  [out]     PFILE_NAMES_INFORMATION ExpandComponentName,
  [in]      ULONG ExpandComponentNameLength,
  [in]      FLT_NORMALIZE_NAME_FLAGS Flags,
  [in, out] PVOID *NormalizationContext
)
{...}

參數

[in] Instance

此回呼例程已註冊之迷你篩選驅動程序實例的不透明實例指標。

[in] ParentDirectory

包含這個名稱元件之父目錄名稱 之UNICODE_STRING 結構的指標。

[in] VolumeNameLength

父目錄名稱的長度,以位元組為單位,儲存在 ParentDirectory 參數所指向的結構中。

[in] Component

包含要展開之名稱元件的UNICODE_STRING結構的指標。

[out] ExpandComponentName

接收名稱元件之展開 (正規化) 檔名資訊之 FILE_NAMES_INFORMATION 結構的指標。

[in] ExpandComponentNameLength

ExpandComponentName 參數指向的緩衝區長度,以位元組為單位。

[in] Flags

名稱正規化旗標。 FLTFL_NORMALIZE_NAME_CASE_SENSITIVE指定要正規化的名稱區分大小寫。 FLTFL_NORMALIZE_NAME_DESTINATION_FILE_NAME指定已呼叫回呼例程來服務 FltGetDestinationFileNameInformation 例程呼叫。

[in, out] NormalizationContext

要傳入任何後續呼叫此回呼例程的迷你篩選驅動程式提供的內容資訊指標,這些呼叫會讓相同檔名路徑中的其餘元件正規化。

傳回值

這個回呼例程會傳回STATUS_SUCCESS或適當的NTSTATUS值。 如果 Component 參數指定的名稱元件不存在於 ParentDirectory 參數指定的父目錄中,此回呼例程應該會傳回STATUS_NO_SUCH_FILE。 如果這個回呼例程發出IRP_MN_QUERY_DIRECTORY (FileNamesInformation) 要求至父目錄,則檔系統會傳回正確的狀態代碼。 在此情況下,此回呼可以直接傳回檔系統傳回的狀態代碼。

備註

提供篩選管理員名稱快取檔名的迷你篩選驅動程式可以註冊類型為PFLT_NORMALIZE_NAME_COMPONENT的例程,作為迷你篩選驅動程式 的 NormalizeNameComponentCallback 例程。

若要註冊此回呼例程,迷你篩選驅動程式會將類型為 PFLT_NORMALIZE_NAME_COMPONENT 的例程位址儲存在minifilter驅動程式傳遞為參數給 FltRegisterFilterFLT_REGISTRATION結構的 NormalizeNameComponentCallback 成員中。

篩選管理員會呼叫此回呼例程,以查詢迷你篩選驅動程式,以取得檔名路徑中名稱為迷你篩選驅動程式已修改之元件的標準化名稱。 如果檔名路徑包含多個這類元件,篩選管理員可以在將路徑中的所有元件正規化的過程中多次呼叫此回呼例程。 迷你篩選驅動程式可以使用 NormalizationContext 參數,將內容資訊傳遞至這個回呼例程的後續呼叫。

如果迷你篩選驅動程式使用 NormalizationContext 參數,它也應該註冊正規化內容清除回呼例程。 如需詳細資訊,請參閱 PFLT_NORMALIZE_CONTEXT_CLEANUP的參考專案。

規格需求

需求
目標平台 桌面
標頭 fltkernel.h (包含 Fltkernel.h)
IRQL PASSIVE_LEVEL

另請參閱

FILE_NAMES_INFORMATION

FLT_REGISTRATION

FltRegisterFilter

PFLT_GENERATE_FILE_NAME

PFLT_NORMALIZE_CONTEXT_CLEANUP

PFLT_NORMALIZE_NAME_COMPONENT_EX

UNICODE_STRING