FSCTL_CREATE_OR_GET_OBJECT_ID IOCTL (winioctl.h)
Извлекает идентификатор объекта для указанного файла или каталога. Если идентификатор объекта не существует, с помощью FSCTL_CREATE_OR_GET_OBJECT_ID создает его.
Для выполнения этой операции вызовите функцию DeviceIoControl со следующими параметрами.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
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 | Да |
Прозрачная отработка отказа (TFO) SMB 3.0 | Да |
SMB 3.0 с масштабируемыми общими папками (SO) | Да |
Файловая система общего тома кластера (CSVFS) | Да |
Восстанавливаемая файловая система (ReFS) | Нет |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Верхняя часть | winioctl.h (включая Windows.h) |