FsRtlMupGetProviderInfoFromFileObject 函式 (ntifs.h)
FsRtlMupGetProviderInfoFromFileObject 例程會從位於遠端文件系統上的檔案物件,從多個 UNC 提供者 (MUP) 註冊的網路重新導向器相關信息。
語法
NTSTATUS FsRtlMupGetProviderInfoFromFileObject(
[in] PFILE_OBJECT pFileObject,
[in] ULONG Level,
[out] PVOID pBuffer,
[in, out] PULONG pBufferSize
);
參數
[in] pFileObject
位於遠端檔案系統上之檔案之檔案物件的指標。
[in] Level
FsRtlMupGetProviderInfoFromFileObject 例程所傳回的信息層級。 如需此參數可能值的詳細資訊,請參閱一節。
[out] pBuffer
緩衝區的指標,接收 FsRtlMupGetProviderInfoFromFileObject 例程傳回的資訊。 如需此緩衝區中傳回之數據格式的詳細資訊,請參閱一節。
[in, out] pBufferSize
ULONG 型別變數的指標,其中包含 pBuffer 參數所指向之緩衝區的大小,以位元組為單位。 如果例程成功,此變數會接收緩衝區中傳回的數據大小,以位元組為單位。
傳回值
FsRtlMupGetProviderInfoFromFileObject 例程會傳回下列其中一個 NTSTATUS 值。
傳回碼 | 描述 |
---|---|
|
pBuffer 參數指向的緩衝區中,已成功傳回網路重新導向器的相關信息。 |
|
其中一個參數 NULL 或包含無效的值。 |
|
pFileObject 參數所指向的檔案物件不會對應至完全開啟的遠端文件系統檔案物件。 |
|
pBuffer 參數所指向的緩衝區大小太小,無法傳回任何數據。 在此情況下,pBufferSize 參數所指向的變數會接收緩衝區所需的大小,以位元組為單位。 |
|
pBuffer 參數所指向的緩衝區大小太小,無法傳回所有數據。 只會傳回符合緩衝區的數據。 在此情況下,pBufferSize 參數所指向的變數會接收緩衝區所需的大小,以位元組為單位。 |
言論
文件系統篩選驅動程式可以呼叫 FsRtlMupGetProviderInfoFromFileObject 例程,從位於遠端文件系統的檔案物件取得網路重新導向器的相關信息。 FsRtlMupGetProviderInfoFromFileObject 例程所傳回的資訊量取決於 Level 參數的值。 如果 Level 參數設定為 1,FsRtlMupGetProviderInfoFromFileObject 例程會傳回緩衝區中 pBuffer 參數所指向的FSRTL_MUP_PROVIDER_INFO_LEVEL_1結構。 FSRTL_MUP_PROVIDER_INFO_LEVEL_1 結構的定義如下:
typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_1 {
ULONG32 ProviderId;
} FSRTL_MUP_PROVIDER_INFO_LEVEL_1, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_1;
如果 Level 參數設定為 2,FsRtlMupGetProviderInfoFromFileObject 例程會傳回緩衝區中 pBuffer 參數所指向的FSRTL_MUP_PROVIDER_INFO_LEVEL_2結構。 FSRTL_MUP_PROVIDER_INFO_LEVEL_2 結構的定義如下:
typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_2 {
ULONG32 ProviderId;
UNICODE_STRING ProviderName;
} FSRTL_MUP_PROVIDER_INFO_LEVEL_2, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_2;
文件系統篩選驅動程式可以快速地比較提供者標識符的值與其他提供者標識碼的值,而不需要執行字串比較。
如果網路重新導向器從系統卸除,然後重載回系統,則特定網路重新導向器之 UNC 提供者識別碼的值會維持不變。
若要從網路重新導向器的裝置名稱取得網路重新導向器的 UNC 提供者識別碼,文件系統篩選驅動程式可以呼叫 FsRtlMupGetProviderIdFromName 例程。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | FsRtlMupGetProviderInfoFromFileObject 函式是 Windows Vista |
目標平臺 | 普遍 |
標頭 | ntifs.h (include Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |