FSCTL_OPBATCH_ACK_CLOSE_PENDING IOCTL (winioctl.h)

通知伺服器用戶端應用程式已準備好關閉檔案。 在通知後使用此作業,通知檔案上的商機鎖定已準備好中斷。

若要執行這項作業,請使用下列參數呼叫 DeviceIoControl 函式。

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to file
  FSCTL_OPBATCH_ACK_CLOSE_PENDING,  // dwIoControlCode
  NULL,                             // lpInBuffer
  0,                                // nInBufferSize
  NULL,                             // lpOutBuffer
  0,                                // nOutBufferSize
  (LPDWORD) lpBytesReturned,        // number of bytes returned
  (LPOVERLAPPED) lpOverlapped       // OVERLAPPED structure
);

備註

呼叫此函式之前,不會假設可用的虛擬通道數目,因為系統和其他外掛程式可能具有保留的虛擬通道。 呼叫此函式之後,請一律檢查 CHANNEL_RC_TOO_MANY_CHANNELS 傳回碼。

如需此作業上重迭 I/O 的影響,請參閱 DeviceIoControl 主題的一節。

當您收到檔案的不透明鎖定準備好中斷的通知時,請使用 FSCTL_OPBATCH_ACK_CLOSE_PENDING 控制項程式碼,而且您很快就會想要關閉檔案。 這項作業不會要求新的商機鎖定。

如果您不打算關閉檔案,您可以使用 FSCTL_OPLOCK_BREAK_ACKNOWLEDGEFSCTL_OPLOCK_BREAK_ACK_NO_2 控制項程式碼來回應通知。 如果中斷的鎖定是獨佔的商機鎖定,則會使用先前的 ,表示檔案應該改為收到層級 2 的機率鎖定。 後者會要求檔案保持開啟狀態,但會遺失所有鎖定。

應用程式會收到通知,指出使用與損毀鎖定之檔案相關聯的重迭結構hEvent成員,來中斷機率鎖定。 應用程式也可以使用 GetOverlappedResultHasOverlappedIoCompleted等函式。

在 Windows 8 和 Windows Server 2012 中,下列技術支援此程式碼。

技術 支援
伺服器訊息區 (SMB) 3.0 通訊協定
SMB 3.0 透明容錯移轉 (TFO)
具有向外延展檔案共用的 SMB 3.0 (SO)
叢集共用磁片區檔案系統 (CsvFS) Yes
彈性檔案系統 (ReFS)

規格需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
標頭 winioctl.h (包含 Windows.h)

另請參閱