检索指定文件或目录的对象标识符。 如果不存在对象标识符,则使用 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) |