Поделиться через


FSCTL_GET_OBJECT_ID IOCTL (winioctl.h)

Извлекает идентификатор объекта для указанного файла или каталога.

Чтобы выполнить эту операцию, вызовите функциюDeviceIoControlсо следующими параметрами.

BOOL DeviceIoControl(
  (HANDLE) hDevice,           // handle to file object
  FSCTL_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_CREATE_OR_GET_OBJECT_ID. Чтобы вручную назначить идентификатор объекта, используйте FSCTL_SET_OBJECT_ID.

В Windows 8 и 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)

См. также