Управляющий код FSCTL_DELETE_OBJECT_ID удаляет идентификатор объекта из указанного файла или каталога. Базовый объект не удаляется.
Чтобы выполнить эту операцию, вызовите функцию DeviceIoControl с ниже перечисленными параметрами.
Синтаксис
BOOL DeviceIoControl( (HANDLE) hDevice, // дескриптор устройства FSCTL_DELETE_OBJECT_ID, // параметр dwIoControlCode NULL, // параметр lpInBuffer 0, // параметр nInBufferSize NULL, // параметр lpOutBuffer 0, // параметр nOutBufferSize (LPDWORD) lpBytesReturned, // число возвращенных байтов (LPOVERLAPPED) lpOverlapped // структура OVERLAPPED ); |
hDevice
[in] Дескриптор файла или каталог из которого идентификатор объекта будет удаляться. Процесс, открывающий файл должен иметь восстановленную привилегию, а файл должен открыться с восстановленным предназначением и доступом для записи. Чтобы извлечь данные о дескрипторе, вызовите функцию CreateFile.dwIoControlCode
[in] Управляющий код для операции. Для этой операции используйте FSCTL_DELETE_OBJECT_ID.lpInBuffer
Не используется с этой операцией; устанавливается в ПУСТО (NULL).nInBufferSize
Не используется с этой операцией; устанавливается в нуль ('0').
lpOutBuffer
Не используется с этой операцией; устанавливается в ПУСТО (NULL).nOutBufferSize
Не используется с этой операцией; устанавливается в нуль ('0').
lpBytesReturned
[out] Указатель на переменную, которая получает размер данных, сохраненных в буфере вывода данных, в байтах.Если lpOverlapped равен ПУСТО (NULL), параметр lpBytesReturned не может быть ПУСТО (NULL). Даже когда операция не возвращает никакого вывода данных, и lpOutBuffer - ПУСТО (NULL), функция DeviceIoControl использует параметр lpBytesReturned. После такой операции, значение lpBytesReturned не имеет смысла.
Если lpOverlapped - не ПУСТО (NULL), параметр lpBytesReturned может быть ПУСТО (NULL). Если этот параметр - не ПУСТО (NULL), и операция возвращает данные, то параметр lpBytesReturned не имеет смысла до тех пор, пока не завершилась асинхронная операция. Чтобы извлечь число возвращаемых байтов, вызовите GetOverlappedResult. Если параметр hDevice связан с портом завершения ввода-вывода данных (I/O), Вы можете извлечь число возвращаемых данных при помощи вызова GetQueuedCompletionStatus.
lpOverlapped
[in] Указатель на структуру OVERLAPPED.Если параметр hDevice открывался без определения флажка FILE_FLAG_OVERLAPPED, параметр lpOverlapped игнорируется.
Если параметр hDevice открывался с флажком FILE_FLAG_OVERLAPPED, операция выполняется как перекрывающая (асинхронная) операция. В этой ситуации, lpOverlapped должен указывать на допустимую структуру OVERLAPPED, которая содержит дескриптор объекта события. В противном случае, функция завершается ошибкой непредсказуемого вида.
Для асинхронных операций, функция DeviceIoControl возвращает значение немедленно, а объект события подает сигнал, когда операция завершилась. В противном случае, функция не возвращает значение до тех пор, пока операция не завершится или не произойдет ошибка.
Возвращаемые значения
Если операция завершается успешно, DeviceIoControl возвращает ненулевое значение.
Если операция завершается ошибкой, DeviceIoControl возвращает нуль. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Замечания
Идентификаторы объекта используются, чтобы отследить файлы и каталоги. Они невидимы в большинстве приложений и никогда не должны модифицироваться прикладными программами. Изменение идентификатора объекта может привести к потере данных от частей файла и включительно до всего тома данных .
Смотри также
Обзор Файловые системы, Управляющие коды, используемые файловыми системами, Идентификаторы объекта, DeviceIoControl, FSCTL_CREATE_OR_GET_OBJECT_ID, FSCTL_GET_OBJECT_ID, FSCTL_SET_OBJECT_ID, FSCTL_SET_OBJECT_ID_EXTENDED
Размещение и совместимость FSCTL_DELETE_OBJECT_ID |
||
К |
Windows XP |
Да |
л |
Windows 2000 Professional |
Да |
и |
Windows NT |
Нет |
е |
Windows Me |
Нет |
н |
Windows 98 |
Нет |
т |
Windows 95 |
Нет |
С |
Windows Server 2003 |
Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Нет |
в | ||
е | ||
р | ||
Используемая библиотека |
- |
|
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в |
Winioctl.h |
|
- включено в |
- |
|
Unicode |
- |
|
Замечания по платформе |
Не имеется |