Подпрограмма MRxQueryEaInfo
Подпрограмма MRxQueryEaInfo вызывается RDBSS для запроса запроса сетевого мини-перенаправителя сведений о расширенном атрибуте в объекте файловой системы.
Синтаксис
PMRX_CALLDOWN MRxQueryEaInfo;
NTSTATUS MRxQueryEaInfo(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
Параметры
RxContext [in, out]
Указатель на структуру RX_CONTEXT. Этот параметр содержит IRP, запрашивающий операцию.
Возвращаемое значение
MRxQueryEaInfo возвращает STATUS_SUCCESS при успешном выполнении или соответствующее значение NTSTATUS, например одно из следующих значений:
Код возврата | Описание |
---|---|
STATUS_ACCESS_DENIED | Вызывающий объект не имеет надлежащей безопасности для этой операции. |
STATUS_BUFFER_OVERFLOW | Буфер для получения сведений о расширенном атрибуте был слишком мал. Это возвращаемое значение следует считать успешным, и в элементе Info.Buffer структуры RX_CONTEXT, на которую указывает параметр RxContext , должно возвращаться как можно больше допустимых данных. |
STATUS_BUFFER_TOO_SMALL | Буфер слишком мал для получения запрошенных данных. Если это значение возвращается, элементу InformationToReturn структуры RX_CONTEXT, на которую указывает параметр RxContext , необходимо задать минимальный размер ожидаемого буфера для успешного вызова. |
STATUS_CONNECTION_DISCONNECTED | Подключение было отключено. |
STATUS_EA_CORRUPT_ERROR | От удаленного сервера были получены недопустимые сведения о расширенном атрибуте. |
STATUS_INSUFFICIENT_RESOURCES | Недостаточно ресурсов для выполнения запроса. |
STATUS_INVALID_PARAMETER | Указан недопустимый параметр. |
STATUS_NONEXISTENT_EA_ENTRY | В объекте файла отсутствуют расширенные атрибуты, и пользователь предоставил расширенный индекс атрибута. |
STATUS_NOT_SUPPORTED | Расширенные атрибуты не поддерживаются. |
STATUS_ONLY_IF_CONNECTED | Структура SRV_OPEN не связана. |
STATUS_REQUEST_ABORTED | Сетевой запрос прерван. |
Комментарии
RDBSS отправляет вызов MRxQueryEaInfo в ответ на получение запроса IRP_MJ_QUERY_EA .
Перед вызовом MRxQueryEaInfo RDBSS изменяет следующие элементы в структуре RX_CONTEXT, на которую указывает параметр RxContext :
Для элемента Info.Buffer задается буфер пользователя из пакета запроса ввода-вывода. При необходимости этот буфер уже заблокирован службой RDBSS.
Для элемента Info.LengthRemaining задано значение IrpSp-Parameters.QueryEa.Length>.
Элемент QueryEa.UserEaList имеет значение IrpSp-Parameters.QueryEa.EaList>.
Элемент QueryEa.UserEaListLength имеет значение IrpSp-Parameters.QueryEa.EaListLength>.
Элемент QueryEa.UserEaIndex имеет значение IrpSp-Parameters.QueryEa.EaIndex>.
Для элемента QueryEa.RestartScan задано ненулевое значение, если для IrpSp-Flags> включен бит SL_RESTART_SCAN.
Элемент QueryEa.ReturnSingleEntry имеет ненулевое значение, если для IrpSp-Flags> включен бит SL_RETURN_SINGLE_ENTRY.
Элемент QueryEa.IndexSpecified имеет ненулевое значение, если для флагов IrpSp-Flags> включен бит SL_INDEX_SPECIFIED.
При успешном выполнении MRxQueryEaInfo должен задать для элемента Info.LengthRemaininging структуры RX_CONTEXT длину возвращаемых сведений о расширенных атрибутах, а также обновить член Fobx-OffsetOfNextEaToReturn>. Если вызов MRxQueryEaInfo был успешным, RDBSS устанавливает для элемента IoStatus.Information IRP значение IrpSp-Parameters.QueryEa.Length> за вычетом элемента Info.LengthRemaining RX_CONTEXT.
Требования
Целевая платформа |
Персональный компьютер |
Заголовок |
Mrx.h (включая Mrx.h) |