Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция FsRtlKernelFsControlFile создает явный FSCTL_XXX IRP, отправляет его в стек, синхронно ожидает завершения и возвращает результат. Эта функция позволяет вызывающей функции выполнять это действие, FileObject вместо дескриптора.
Синтаксис
NTSTATUS FsRtlKernelFsControlFile(
[in] PFILE_OBJECT FileObject,
[in] ULONG FsControlCode,
[in] PVOID InputBuffer,
[in] ULONG InputBufferLength,
[out] PVOID OutputBuffer,
[out] ULONG OutputBufferLength,
[out] PULONG RetOutputBufferSize
);
Параметры
[in] FileObject
Указатель на FILE_OBJECT для отправки операции.
[in] FsControlCode
FSCTL_XXX код, указывающий, какая операция управления файловой системой должна выполняться. Значение этого параметра определяет форматы и необходимые длины InputBuffer и OutputBuffer, а также какие из следующих пар параметров необходимы. Подробные сведения о системных кодах FSCTL_XXX см. в разделе "Примечания" справочной записи для DeviceIoControl в документации по пакету SDK для Microsoft Windows.
[in] InputBuffer
Указатель на выделенный вызывающим входной буфер, содержащий сведения, относящиеся к устройству, которые должны быть предоставлены целевому драйверу. Если FsControlCode указывает операцию, которая не требует входных данных, этот указатель является необязательным и может иметь значение NULL. Обратите внимание, что этот буфер может быть изменен при возврате, и вызывающий объект должен адаптироваться к этому. Это связано с тем, что этот буфер может использоваться для хранения выходных данных.
[in] InputBufferLength
Длина inputBuffer в байтах.
[out] OutputBuffer
Указатель на выделенный вызывающим буфер выходных данных, в котором данные возвращаются из целевого драйвера. Если FsControlCode указывает операцию, которая не создает выходные данные, этот указатель является необязательным и может иметь значение NULL.
[out] OutputBufferLength
Длина OutputBuffer в байтах.
[out] RetOutputBufferSize
Получает количество байтов, фактически записанных (возвращенных) в выходном буфере.
Возвращаемое значение
FsRtlKernelFsControlFile возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих значений.
| Ценность | Значение |
|---|---|
| STATUS_INSUFFICIENT_RESOURCES | Произошел сбой выделения пула. |
| STATUS_INVALID_PARAMETER | Указан недопустимый параметр (например, недопустимый FileObject). |
Замечания
FsRtlKernelFsControlFile задает IRP_MN_KERNEL_CALL дополнительный код, который позволяет выполнять операции без необходимости управлять привилегиями тома для определенных операций.
Эта функция предполагает, что все буферы, передаваемые в него, являются буферами в режиме ядра.
Требования
| Требование | Ценность |
|---|---|
| заголовка | ntifs.h |