Управляющий код FSCTL_GET_REPARSE_POINT


Управляющий код FSCTL_GET_REPARSE_POINT извлекает информацию о точке монтирования данных, связанной с файлом или каталогом, идентифицированным заданным дескриптором.

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

Синтаксис

BOOL DeviceIoControl(
  (HANDLE) hDevice,            // дескриптор файла или каталога
  FSCTL_GET_REPARSE_POINT,     // dwIoControlCode
  NULL,                        // lpInBuffer
  0,                           // nInBufferSize
  (LPVOID) lpOutBuffer,        // буфер выводимых данных
  (DWORD) nOutBufferSize,      // размер буфера выводимых данных
  (LPDWORD) lpBytesReturned,   // число возвращаемых байтов
  (LPOVERLAPPED) lpOverlapped  // структура OVERLAPPED
);

Параметры

hDevice

[in] Дескриптор файла или каталога из которого извлекаются данные о точке монтирования данных. Чтобы извлечь дескриптор, используйте функцию CreateFile.

dwIoControlCode

[in] Устанавливает управляющий код FSCTL_GET_REPARSE_POINT.

lpInBuffer

Не используется с этой операцией; устанавливается в ПУСТО (NULL).

nInBufferSize

Не используется с этой операцией; устанавливается в нуль ('0').

lpOutBuffer

[out] Указатель на буфер, который получает информацию о точке монтирования данных. Если тэг монтирования относится к тэгам монтирования Microsoft, то эти данные - структура REPARSE_DATA_BUFFER. В противном случае, эти данные - структура REPARSE_GUID_DATA_BUFFER.

nOutBufferSize

[in] Размер буфера вывода данных, в байтах. Это значение должно быть, по крайней мере, размером, указанным в REPARSE_GUID_DATA_BUFFER_HEADER_SIZE, плюс размер ожидаемых определяемых пользователем данных.

lpBytesReturned

[out] Указатель на переменную, которая получает размер данных, сохраненных в буфере вывода, в байтах.

Если буфер вывода данных является слишком маленьким, вызов завершается ошибкой, функция GetLastError возвращает значение ERROR_INSUFFICIENT_BUFFER, а lpBytesReturned равняется нулю.

Если 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 возвращает ненулевое значение, а буфер вывода данных, на который указывает параметр lpOutBuffer содержит допустимую структуру REPARSE_GUID_DATA_BUFFER, или часть её, в зависимости от значения параметра nOutBufferSize.

Если операция завершается ошибкой, функция DeviceIoControl возвращает нуль. Содержание буфера вывода данных, на который указывает lpOutBuffer не имеет смысла. Для получения дополнительной информации об ошибке, вызовите GetLastError.

Замечания

Включения в этой операции асинхронного выполнения смотри в разделе Замечаний описания функции DeviceIoControl.

Смотри также

Управляющие коды, используемые файловыми системами, Идентификаторы объекта, CreateFile, DeviceIoContro, FSCTL_SET_REPARSE_POINT, FSCTL_DELETE_REPARSE_POINT, REPARSE_GUID_DATA_BUFFER

 

Размещение и совместимость FSCTL_GET_REPARSE_POINT

К

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

-

 Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz