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


Функция FsRtlQueryKernelEaFile (ntifs.h)

Подпрограмма FsRtlQueryKernelEaFile используется для создания явного запроса QueryEA и синхронно ожидает завершения, возвращая результат. Это позволяет вызывающему объекту выполнять это с помощью FileObject вместо дескриптора.

Синтаксис

NTSTATUS FsRtlQueryKernelEaFile(
  [in]            PFILE_OBJECT FileObject,
  [out]           PVOID        ReturnedEaData,
  [in]            ULONG        Length,
  [in]            BOOLEAN      ReturnSingleEntry,
  [in]            PVOID        EaList,
  [in]            ULONG        EaListLength,
  [in, optional]  PULONG       EaIndex,
  [in]            BOOLEAN      RestartScan,
  [out, optional] PULONG       LengthReturned
);

Параметры

[in] FileObject

Указатель на FileObject для отправки запроса QueryEA.

[out] ReturnedEaData

Указатель на предоставленный вызывающим FILE_FULL_EA_INFORMATION-структурированный выходной буфер, где возвращаются расширенные значения атрибутов.

[in] Length

Указывает длину в байтах ReturnedEaData

[in] ReturnSingleEntry

Указывает, следует ли возвращать только одну запись, а не заполнять буфер максимально большим количеством EAS.

[in] EaList

Указатель на предоставленный вызывающим FILE_GET_EA_INFORMATION-структурированный входной буфер, указывающий расширенные атрибуты для запроса. Этот параметр является необязательным и может быть null.

[in] EaListLength

Указывает длину EaList, если указан список EA.

[in, optional] EaIndex

Предоставляет необязательный индекс EA, значение которого необходимо вернуть. Если задано, возвращается только то, что EA возвращается.

[in] RestartScan

Указывает, следует ли перезапустить проверку ЕА с самого начала.

[out, optional] LengthReturned

Указывает объем допустимых данных, возвращаемых в буфере ReturnedEaData.

Возвращаемое значение

Подпрограмма FsRtlQueryKernelEaFile возвращает один из кодов состояния:

Возвращаемый код Описание
STATUS_EAS_NOT_SUPPORTED
Файловая система не поддерживает расширенные атрибуты.
STATUS_INVALID_DEVICE_REQUEST
Запрос завершился ошибкой, так как он был открытым на прямом устройстве.
STATUS_INSUFFICIENT_RESOURCES
Пакет запроса ввода-вывода (IRP) не может быть выделен для этого запроса.
STATUS_SUCCESS
Запрос выполнен успешно.

Замечания

Эта подпрограмма FsRtlQueryKernelEaFile предполагает, что все переданные буферы находятся в режиме ядра, так как требуется, чтобы указанные буферы входных и выходных данных были адресами режима ядра. Операция завершится ошибкой, если указан адрес пользовательского режима.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 8
минимальный поддерживаемый сервер Windows Server 2012
целевая платформа Виндоус
заголовка ntifs.h

См. также

FsRtlSetKernelEaFile

ZwQueryEaFile

ZwSetEaFile