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)

См. также раздел