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


Подпрограмма MRxQueryVolumeInfo

Подпрограмма MRxQueryVolumeInfo вызывается RDBSS для запроса сведений о томе сетевого мини-перенаправителя.

Синтаксис

PMRX_CALLDOWN MRxQueryVolumeInfo;

NTSTATUS MRxQueryVolumeInfo(
  _Inout_ PRX_CONTEXT RxContext
)
{ ... }

Параметры

RxContext [in, out]
Указатель на структуру RX_CONTEXT. Этот параметр содержит IRP, запрашивающий операцию.

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

MRxQueryVolumeInfo возвращает 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_INSUFFICIENT_RESOURCES

Недостаточно ресурсов для выполнения запроса.

STATUS_INVALID_PARAMETER

Указан недопустимый параметр.

STATUS_NETWORK_NAME_DELETED

Сетевое имя удалено.

STATUS_NOT_IMPLEMENTED

Запрашиваемая функция не реализована.

Комментарии

RDBSS выполняет вызов MRxQueryVolumeInfo в любом из следующих случаев:

Перед вызовом MRxQueryVolumeInfo в случае запроса IRP_MJ_QUERY_VOLUME_INFORMATION RDBSS изменяет следующие элементы в структуре RX_CONTEXT, на которую указывает параметр RxContext :

Член Info.FsInformationClass имеет значение IrpSp-Parameters.QueryVolume.FsInformationClass>.

Для элемента Info.Buffer задано значение Irp-AssociatedIrp.SystemBuffer>.

Для элемента Info.LengthRemaining задано значение IrpSp-Parameters.QueryVolume.Length>.

Для IRP_MJ_QUERY_VOLUME_INFORMATION запроса, если элемент PostRequest структуры RX_CONTEXT имеет значение TRUE при возврате из MRxQueryVolumeInfo, RDBSS вызовет RxFsdPostRequest для отправки запроса. В этом случае запрос IRP_MJ_QUERY_VOLUME_INFORMATION передает структуру RX_CONTEXT в очередь RX_CONTEXT в очередь рабочей роли для обработки процессом файловой системы (FSP).

Если элемент PostRequest структуры RX_CONTEXT имеет значение FALSE при возврате из MRxQueryVolumeInfo, сетевой мини-перенаправитель должен задать для элемента Info.LengthRemaining структуры RX_CONTEXT длину возвращаемых сведений о томе. RDBSS задает для элемента IoStatus.Information IRP значение IrpSp-Parameters.QueryVolume.Length> за вычетом элемента Info.LengthRemaining структуры RX_CONTEXT.

Если вызов MRxQueryVolumeInfo выполнен успешно, сетевой мини-перенаправитель должен задать элемент Info.LengthRemaining структуры RX_CONTEXT на элемент Info.Length за вычетом длины возвращаемых сведений о томе. Если вызов MRxQueryVolumeInfo был выполнен успешно, RDBSS устанавливает элемент IoStatus.Information IRP в значение IrpSp-Parameters.QueryVolume.Length> за вычетом элемента Info.LengthRemaining структуры RX_CONTEXT.

Для запроса IRP_MJ_QUERY_VOLUME_INFORMATION с элементом Info.FsInformationClass , равным FileFsDeviceInformation, сетевой мини-перенаправитель возвращает следующие сведения в структуре RX_CONTEXT, на которую указывает параметр RxContext :

Элемент Info.Buffer содержит структуру FILE_FS_DEVICE_INFORMATION

Для элемента Info.Buffer.Characteristics заданы характеристики тома, которые должны включать FILE_REMOTE_DEVICE в качестве одного из параметров.

Элементу Info.Buffer.DeviceType присваивается элемент DeviceType связанной структуры NET_ROOT. Если элемент Type связанного NET_ROOT имеет значение NET_ROOT_PIPE, то для элемента Info.Buffer.DeviceType задано значение FILE_DEVICE_NAMED_PIPE.

Для запроса IRP_MJ_QUERY_VOLUME_INFORMATION с элементом Info.FsInformationClass , равным FileFsVolumeInformation, сетевой мини-перенаправитель возвращает следующие сведения в структуре RX_CONTEXT, на которую указывает параметр RxContext :

Элемент Info.Buffer содержит FILE_FS_VOLUME_INFORMATION структуру.

Для элемента Info.Buffer устанавливается элемент VolumeInfo связанной структуры NET_ROOT.

Для элемента Info.LengthRemaining устанавливается элемент VolumeInfoLength связанной структуры NET_ROOT.

Вызов MRxQueryVolumeInfo из RDBSS для IRP_MJ_FILE_SYSTEM_CONTROL — это запрос на сведения об отслеживании ссылок. Перед вызовом MRxQueryVolumeInfo для IRP_MJ_FILE_SYSTEM_CONTROL RDBSS изменяет следующие элементы в структуре RX_CONTEXT, на которую указывает параметр RxContext :

Член Info.FsInformationClass имеет значение FileFsObjectIdInformation.

Член Info.Buffer имеет FILE_FS_OBJECTID_INFORMATION структуру.

Для элемента Info.LengthRemaining задано значение sizeof(FILE_FS_OBJECTID_INFORMATION).

Для этого запроса IRP_MJ_FILE_SYSTEM_CONTROL элемент AssociatedIrp.SystemBuffer IRP указывает на LINK_TRACKING_INFORMATION структуру.

Если запрос инициируется как IRP_MJ_FILE_SYSTEM_CONTROL в MRxQueryVolumeInfo с возвращаемым значением STATUS_SUCCESS или STATUS_BUFFER_OVERFLOW, RDBSS копирует элемент ObjectId структуры FILE_FS_OBJECTID_INFORMATION, переданный в элементе Info.Buffer структуры RX_CONTEXT, в элемент NetRoot-DiskParameters.VolumeId> структуры FCB и в элемент AssociatedIrp.SystemBuffer.VolumeId IRP. Если вызов MRxQueryVolumeInfo был выполнен успешно, RDBSS задает элемент Type структуры LINK_TRACKING_INFORMATION. Если для элемента NetRoot-Flags> структуры FCB задан бит NETROOT_FLAG_DFS_AWARE_NETROOT, для элемента Type RDBSS устанавливается значение DfsLinkTrackingInformation. Если элемент NetRoot-Flags> структуры FCB не имеет битового NETROOT_FLAG_DFS_AWARE_NETROOT, rDBSS задает для элемента Typeзначение NtfsLinkTrackingInformation. При успешном выполнении RDBSS устанавливает для элемента IoStatus.Information IRP размер LINK_TRACKING_INFORMATION структуры.

Требования

Целевая платформа

Персональный компьютер

Заголовок

Mrx.h (включая Mrx.h)

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

MRxIsValidDirectory

MRxQueryDirectory

MRxQueryEaInfo

MRxQueryFileInfo

MRxQueryQuotaInfo

MRxQuerySdInfo

MRxSetEaInfo

MRxSetFileInfo

MRxSetFileInfoAtCleanup

MRxSetQuotaInfo

MRxSetSdInfo

MRxSetVolumeInfo

RxFsdPostRequest