此函式設定佔位符的針腳狀態,代表使用者的意圖。 任何應用程式,不僅限於同步提供者,都能呼叫這個函式。
語法
HRESULT CfSetPinState(
[in] HANDLE FileHandle,
[in] CF_PIN_STATE PinState,
[in] CF_SET_PIN_FLAGS PinFlags,
[in, out, optional] LPOVERLAPPED Overlapped
);
參數
[in] FileHandle
佔位檔的帳號。 平台會正確同步操作與其他活躍請求。 屬性或無存取的句柄即可。 來電者必須擁有 READ_DATA 或 WRITE_DAC 佔位符的存取權。 否則,操作會因 STATUS_CLOUD_FILE_ACCESS_DENIED而失敗。
[in] PinState
佔位檔案的釘腳狀態。 有關有效 PinState 值的清單,請參見 CF_PIN_STATE。
[in] PinFlags
針腳狀態旗標。 請將 PinFlags 設為以下其中一個值:
- 如果你指定 CF_SET_PIN_FLAG_RECURSE,平台會將 PIN 狀態套用到 FileHandle 及其下方的每個檔案,遞迴方式。 此旗標僅在 FileHandle 是目錄的句柄時才相關。
- 如果你指定 CF_SET_PIN_FLAG_RECURSE_ONLY,平台會遞迴地套用 FileHandle 下方的每個檔案,但不會套用到 FileHandle 本身。
- 如果你指定 CF_SET_PIN_FLAG_RECURSE_STOP_ON_ERROR,平台在遇到第一個錯誤時會停止遞迴。 否則,平台跳過錯誤並繼續遞迴。
用 CF_SET_PIN_FLAG_NONE 指定不要標記。
[in, out, optional] Overlapped
允許非同步執行呼叫。 詳情請參閱 備註 區。
返回值
如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
當你指定並結合非同步 的 FileHandle 與 Overlapped 時,平台可以非同步執行呼叫。
你必須用一個事件初始化重疊結構來等待。 如果這個函式回傳 HRESULT_FROM_WIN32(ERROR_IO_PENDING),你可以使用 GetOverlappedResult 等待。 如果你沒有指定這個參數,平台會同步執行 API 呼叫,不論你是怎麼建立的。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows 10 版本 1709 [僅限傳統型應用程式] |
| 支援的最低伺服器 | Windows Server 2016 [僅限傳統型應用程式] |
| 目標平臺 | 窗戶 |
| Header | cfapi.h |
| Library | CldApi.lib |
| DLL | CldApi.dll |