FSCTL_SET_OBJECT_ID IOCTL (winioctl.h)
設定指定檔案或目錄的物件識別碼。
若要執行這項作業,請使用下列參數呼叫 DeviceIoControl 函 式。
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
FSCTL_SET_OBJECT_ID, // dwIoControlCode
(LPVOID) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
NULL, // lpOutBuffer
0, // nOutBufferSize
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
備註
物件識別碼可用來追蹤檔案和目錄。 大部分的應用程式都看不見它們,而且不應該由應用程式修改。 修改物件識別碼可能會導致檔案部分的資料遺失,最多包含整個資料量。
使用此作業,將物件識別碼明確設定為您提供的值。 嘗試在已經有物件識別碼的物件上設定物件識別碼將會失敗。 嘗試使用已在磁片區上使用的物件識別碼也會失敗。 如果物件還沒有物件,請使用 FSCTL_CREATE_OR_GET_OBJECT_ID 作業讓 NTFS 檔案系統產生物件識別碼。
請注意,遠端檔案的時間戳記可能無法正確更新。 若要確保結果一致,請使用未緩衝的 I/O。
在 Windows 8 和 Windows Server 2012 中,下列技術支援此程式碼。
技術 | 支援 |
---|---|
伺服器訊息區 (SMB) 3.0 通訊協定 | Yes |
SMB 3.0 透明容錯移轉 (TFO) | 是 |
具有向外延展檔案共用的 SMB 3.0 (SO) | 是 |
叢集共用磁片區檔案系統 (CsvFS) | Yes |
彈性檔案系統 (ReFS) | 否 |
規格需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
標頭 | winioctl.h (包含 Windows.h) |