GetVolumeInformationByHandleW 函式 (fileapi.h)
擷取與指定檔案相關聯的檔案系統和磁片區相關資訊。
若要擷取檔案或目錄的目前壓縮狀態,請使用 FSCTL_GET_COMPRESSION。
語法
BOOL GetVolumeInformationByHandleW(
[in] HANDLE hFile,
[out, optional] LPWSTR lpVolumeNameBuffer,
[in] DWORD nVolumeNameSize,
[out, optional] LPDWORD lpVolumeSerialNumber,
[out, optional] LPDWORD lpMaximumComponentLength,
[out, optional] LPDWORD lpFileSystemFlags,
[out, optional] LPWSTR lpFileSystemNameBuffer,
[in] DWORD nFileSystemNameSize
);
參數
[in] hFile
檔案的控制碼。
[out, optional] lpVolumeNameBuffer
接收指定磁片區名稱之緩衝區的指標。 緩衝區大小上限為 MAX_PATH+1
。
[in] nVolumeNameSize
WCHARs 中磁片區名稱緩衝區的長度。 緩衝區大小上限為 MAX_PATH+1
。
如果未提供磁片區名稱緩衝區,則會忽略此參數。
[out, optional] lpVolumeSerialNumber
接收磁片區序號之變數的指標。
如果不需要序號,此參數可以是 Null 。
此函式會傳回作業系統在格式化硬碟時所指派的磁片區序號。 若要以程式設計方式取得製造商指派的硬碟序號,請使用 Windows Management Instrumentation (WMI) Win32_PhysicalMedia 屬性 SerialNumber。
[out, optional] lpMaximumComponentLength
變數的指標,該變數會接收指定檔案系統支援的檔案名元件的最大長度 WCHAR。
檔案名元件是反斜線之間的檔案名部分。
儲存在 *lpMaximumComponentLength 指向的變數中,用來指出指定的檔案系統支援長名稱。 例如,對於支援長名稱的 FAT 檔案系統,函式會儲存值 255,而不是先前的 8.3 指標。 您也可以在使用 NTFS 檔案系統的系統上支援長名稱。
[out, optional] lpFileSystemFlags
變數的指標,可接收與指定檔案系統相關聯的旗標。
此參數可以是下列一或多個旗標。 不過, FILE_FILE_COMPRESSION 和 FILE_VOL_IS_COMPRESSED 互斥。
值 | 意義 |
---|---|
|
指定的磁片區支援區分大小寫的檔案名。 |
|
當指定磁片區將名稱放在磁片上時,指定的磁片區支援保留的檔案名大小寫。 |
|
指定的磁片區支援檔案名中的 Unicode,因為它們出現在磁片上。 |
|
指定的磁片區會保留並強制執行存取控制清單, (ACL) 。 例如,NTFS 檔案系統會保留並強制執行 ACL,而 FAT 檔案系統則不會。 |
|
指定的磁片區支援以檔案為基礎的壓縮。 |
|
指定的磁片區支援磁片配額。 |
|
指定的磁片區支援疏鬆檔案。 |
|
指定的磁片區支援重新剖析點。 |
|
指定的磁片區是壓縮的磁片區,例如 DoubleSpace 磁片區。 |
|
指定的磁片區支援物件識別碼。 |
|
指定的磁片區支援 EFS (加密檔案系統) 。 如需詳細資訊,請參閱 檔案加密。 |
|
指定的磁片區支援具名資料流程。 |
|
指定的磁片區是唯讀的。 |
|
指定的磁片區支援單一循序寫入。 |
|
指定的磁片區支援交易。 如需詳細資訊,請參閱 關於 KTM。 |
|
指定的磁片區支援硬式連結。 如需詳細資訊,請參閱 硬式連結和連接點。
Windows Vista 和 Windows Server 2008: 不支援此值。 |
|
指定的磁片區支援擴充屬性。 擴充屬性是應用程式可以與檔案建立關聯的應用程式特定中繼資料片段,而且不屬於檔案的資料。
Windows Vista 和 Windows Server 2008: 不支援此值。 |
|
檔案系統支援由 FileID 開啟。 如需詳細資訊,請參閱 FILE_ID_BOTH_DIR_INFO。
Windows Vista 和 Windows Server 2008: 不支援此值。 |
|
指定的磁片區支援 (USN) 日誌的更新序號。 如需詳細資訊,請參閱 變更日誌記錄。
Windows Vista 和 Windows Server 2008: 不支援此值。 |
|
指定的磁片區支援在相同磁片區上的檔案之間共用邏輯叢集。 檔案系統會重新配置共用叢集的寫入。 表示FSCTL_DUPLICATE_EXTENTS_TO_FILE是支援的作業。 |
[out, optional] lpFileSystemNameBuffer
接收檔案系統名稱的緩衝區指標,例如 FAT 檔案系統或 NTFS 檔案系統。 緩衝區大小是由 nFileSystemNameSize 參數所指定。
[in] nFileSystemNameSize
WCHARs 中檔案系統名稱緩衝區的長度。 緩衝區大小上限為 MAX_PATH+1
。
如果未提供檔案系統名稱緩衝區,則會忽略此參數。
傳回值
如果擷取所有要求的資訊,傳回值為非零。
如果未擷取所有要求的資訊,傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
在 Windows 8 和 Windows Server 2012 中,下列技術支援此函式。
技術 | 支援 |
---|---|
伺服器訊息區 (SMB) 3.0 通訊協定 | 否 |
SMB 3.0 透明容錯移轉 (TFO) | 否 |
具有向外延展檔案共用的 SMB 3.0 (SO) | 否 |
叢集共用磁片區檔案系統 (CsvFS) | 是 |
彈性檔案系統 (ReFS) | 是 |
SMB 不支援磁片區管理功能。
需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | fileapi.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |