FSCTL_CREATE_OR_GET_OBJECT_ID IOCTL (winioctl.h)

检索指定文件或目录的对象标识符。 如果不存在对象标识符,则使用 FSCTL_CREATE_OR_GET_OBJECT_ID 创建一个对象标识符。

若要执行此作,请使用以下参数调用 DeviceIoControl 函数。

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

注解

对象标识符用于跟踪文件和目录。 它们对大多数应用程序都是不可见的,不应由应用程序修改。 修改对象标识符可能会导致文件部分丢失数据,最多包括整个数据量。

如果对象还没有对象,此作将创建一个对象标识符。 若要测试对象标识符是否存在,并检索它是否存在,请使用 FSCTL_GET_OBJECT_ID 作。 若要手动分配对象标识符,请使用 FSCTL_SET_OBJECT_ID 作。

在 Windows Server 2012 中,以下技术支持此函数。

科技 已支持
服务器消息块 (SMB) 3.0 协议 是的
SMB 3.0 透明故障转移 (TFO) 是的
具有横向扩展文件共享的 SMB 3.0 (SO) 是的
群集共享卷文件系统 (CsvFS) 是的
弹性文件系统 (ReFS)

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
标头 winioctl.h (包括 Windows.h)

另请参阅