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


Код элемента управления FSCTL_SUSPEND_OVERLAY

Код элемента управления FSCTL_SUSPEND_OVERLAY приостанавливает резервный источник, подключенный к тому, предотвращая доступ к резервному источнику и позволяя изменять или удалять его.

Для выполнения этой операции вызовите FltFsControlFile или ZwFsControlFile со следующими параметрами.

BOOL 
   WINAPI 
   DeviceIoControl( (HANDLE)       hDevice,         // handle to device
                    (DWORD)        FSCTL_SUSPEND_OVERLAY, // dwIoControlCode
                    (LPDWORD)      lpInBuffer,      // input buffer
                    (DWORD)        nInBufferSize,   // size of input buffer
                    (LPDWORD)      lpOutBuffer,     // output buffer
                    (DWORD)        nOutBufferSize,  // size of output buffer
                    (LPDWORD)      lpBytesReturned, // number of bytes returned
                    (LPOVERLAPPED) lpOverlapped );  // OVERLAPPED structure

Параметры

  • Экземпляр [in]: только FltFsControlFile . Указатель непрозрачного экземпляра для вызывающего объекта. Этот параметр является обязательным и не может иметь значение NULL.

  • FileObject [in]: только FltFsControlFile . Объект указателя файла тома, для которого обновляется наложение. Этот параметр является обязательным и не может иметь значение NULL.

  • FileHandle [in]: только ZwFsControlFile . Дескриптор тома, для которого обновляется наложение. Этот параметр является обязательным и не может иметь значение NULL.

  • FsControlCode [in]: код элемента управления для операции. Используйте FSCTL_SUSPEND_OVERLAY для этой операции.

  • InputBuffer [in]: указатель на входной буфер, который должен содержать WOF_EXTERNAL_INFO структуру. При необходимости дополнительные данные, относящиеся к поставщику, включаются сразу после WOF_EXTERNAL_INFO. Если поставщик является WIM-файлом, после WOF_EXTERNAL_INFO включается структура WIM_PROVIDER_SUSPEND_OVERLAY_INPUT.

  • InputBufferLength [in]: задайте значение sizeof(WOF_EXTERNAL_INFO) плюс размер любых дополнительных входных данных поставщика.

  • OutputBuffer [out]: не используется. задано значение NULL.

  • OutputBufferLength [in]: задайте значение 0.

Блок состояния

FltFsControlFile или ZwFsControlFile возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае соответствующая функция может вернуть одно из следующих значений NTSTATUS.

Код Значение
STATUS_ACCESS_DENIED Инициатор запроса не имеет прав администратора.
STATUS_BUFFER_TOO_SMALL Длина входного буфера, на который указывает InputBuffer, и указанная параметром InputBufferLength, слишком мала.
STATUS_INTERNAL_ERROR Запрошенный том недоступен.
STATUS_INVALID_DEVICE_REQUEST Резервная служба отсутствует или не запущена.

Комментарии

Если резервным источником для удаления является WIM-файл, входной буфер будет содержать структуру WOF_EXTERNAL_INFO , за которой следует структура WIM_PROVIDER_SUSPEND_OVERLAY_INPUT . InputBufferLength в этом случае будет sizeof(WOF_EXTERNAL_INFO) + sizeof(WIM_PROVIDER_REMOVE_OVERLAY_INPUT). Значение DataSourceId в WIM_PROVIDER_SUSPEND_OVERLAY_INPUT должно быть для WIM-файла, ранее добавленного в запрос FSCTL_ADD_OVERLAY .

Дополнительные резервные поставщики определяют собственные структуры входных параметров.

Требования

Тип требования Требование
Заголовок Ntifs.h (включая Ntifs.h или Fltkernel.h)

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

FSCTL_REMOVE_OVERLAY

FSCTL_UPDATE_OVERLAY

FSCTL_GET_EXTERNAL_BACKING

FSCTL_SET_EXTERNAL_BACKING