Compartir a través de


Rutina MRxQueryVolumeInfo

RDBSS llama a la rutina MRxQueryVolumeInfo para solicitar que una información de volumen de consulta de minidirector de red.

Sintaxis

PMRX_CALLDOWN MRxQueryVolumeInfo;

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

Parámetros

RxContext [in, out]
Puntero a la estructura RX_CONTEXT. Este parámetro contiene el IRP que solicita la operación.

Valor devuelto

MRxQueryVolumeInfo devuelve STATUS_SUCCESS si se ha realizado correctamente o un valor NTSTATUS adecuado, como uno de los siguientes:

Código devuelto Descripción
STATUS_ACCESS_DENIED

El autor de la llamada no tiene la seguridad adecuada para esta operación.

STATUS_BUFFER_OVERFLOW

El búfer para recibir la información del volumen era demasiado pequeño.

Este valor devuelto debe considerarse correcto y se deben devolver tantos datos válidos como sea posible en el miembro Info.Buffer de la estructura RX_CONTEXT a la que apunta el parámetro RxContext .

STATUS_BUFFER_TOO_SMALL

El búfer es demasiado pequeño para recibir los datos solicitados.

Si se devuelve este valor, el miembro InformationToReturn de la estructura RX_CONTEXT a la que apunta el parámetro RxContext debe establecerse en el tamaño mínimo del búfer esperado para que la llamada se realice correctamente.

STATUS_CONNECTION_DISCONNECTED

La conexión se desconecta.

STATUS_INSUFFICIENT_RESOURCES

No había recursos suficientes para completar la consulta.

STATUS_INVALID_PARAMETER

Se especificó un parámetro no válido.

STATUS_NETWORK_NAME_DELETED

Se eliminó un nombre de red.

STATUS_NOT_IMPLEMENTED

No se implementa una característica solicitada.

Comentarios

RDBSS emite una llamada a MRxQueryVolumeInfo en cualquiera de los casos siguientes:

Antes de llamar a MRxQueryVolumeInfo en el caso de una solicitud de IRP_MJ_QUERY_VOLUME_INFORMATION, RDBSS modifica los siguientes miembros de la estructura RX_CONTEXT a la que apunta el parámetro RxContext :

El miembro Info.FsInformationClass se establece en IrpSp-Parameters.QueryVolume.FsInformationClass>.

El miembro Info.Buffer se establece en Irp-AssociatedIrp.SystemBuffer>.

El miembro Info.LengthRemaining se establece en IrpSp-Parameters.QueryVolume.Length>.

Para una solicitud de IRP_MJ_QUERY_VOLUME_INFORMATION, si el miembro PostRequest de la estructura de RX_CONTEXT es TRUE a cambio de MRxQueryVolumeInfo, RDBSS llamará a RxFsdPostRequest para publicar la solicitud. En este caso, la solicitud de IRP_MJ_QUERY_VOLUME_INFORMATION pasará la estructura de RX_CONTEXT a la cola RX_CONTEXT a una cola de trabajo para su procesamiento por el proceso del sistema de archivos (FSP).

Si el miembro PostRequest de la estructura RX_CONTEXT es FALSE al devolver MRxQueryVolumeInfo, el minidirector de red debe establecer el miembro Info.LengthRemaining de la estructura RX_CONTEXT en la longitud de la información del volumen devuelta. RDBSS establece el miembro IoStatus.Information del IRP en IrpSp-Parameters.QueryVolume.Length> menos el miembro Info.LengthRemaining de la estructura RX_CONTEXT.

Si la llamada a MRxQueryVolumeInfo se realiza correctamente, el minidirector de red debe establecer el miembro Info.LengthRemaining de la estructura RX_CONTEXT en el miembro Info.Length menos la longitud de la información del volumen devuelta. Si la llamada a MRxQueryVolumeInfo se realizó correctamente, RDBSS establece el miembro IoStatus.Information del IRP en IrpSp-Parameters.QueryVolume.Length> menos el miembro Info.LengthRemaining de la estructura RX_CONTEXT.

Para una solicitud de IRP_MJ_QUERY_VOLUME_INFORMATION con el miembro Info.FsInformationClass establecido en FileFsDeviceInformation, el minidirector de red devuelve la siguiente información en la estructura de RX_CONTEXT a la que apunta el parámetro RxContext :

El miembro Info.Buffer contiene una estructura de FILE_FS_DEVICE_INFORMATION

El miembro Info.Buffer.Characteristics se establece en las características del volumen, que deben incluir FILE_REMOTE_DEVICE como una de las opciones.

El miembro Info.Buffer.DeviceType se establece en el miembro DeviceType de la estructura de NET_ROOT asociada. Si el miembro Type del NET_ROOT asociado es NET_ROOT_PIPE, el miembro Info.Buffer.DeviceType se establece en FILE_DEVICE_NAMED_PIPE.

Para una solicitud de IRP_MJ_QUERY_VOLUME_INFORMATION con el miembro Info.FsInformationClass establecido en FileFsVolumeInformation, el minidirector de red devuelve la siguiente información en la estructura de RX_CONTEXT a la que apunta el parámetro RxContext :

El miembro Info.Buffer contiene una estructura de FILE_FS_VOLUME_INFORMATION.

El miembro Info.Buffer se establece en el miembro VolumeInfo de la estructura de NET_ROOT asociada.

El miembro Info.LengthRemaining se establece en el miembro VolumeInfoLength de la estructura de NET_ROOT asociada.

Una llamada de MRxQueryVolumeInfo desde RDBSS para IRP_MJ_FILE_SYSTEM_CONTROL es una solicitud para la información de seguimiento de vínculos. Antes de llamar a MRxQueryVolumeInfo para IRP_MJ_FILE_SYSTEM_CONTROL, RDBSS modifica los siguientes miembros de la estructura RX_CONTEXT a la que apunta el parámetro RxContext :

El miembro Info.FsInformationClass se establece en FileFsObjectIdInformation.

El miembro Info.Buffer se establece en una estructura de FILE_FS_OBJECTID_INFORMATION.

El miembro Info.LengthRemaining se establece en sizeof(FILE_FS_OBJECTID_INFORMATION).

En este caso de una solicitud de IRP_MJ_FILE_SYSTEM_CONTROL, el miembro AssociatedIrp.SystemBuffer del IRP apunta a una estructura de LINK_TRACKING_INFORMATION.

Si una solicitud se inicia como una IRP_MJ_FILE_SYSTEM_CONTROL a MRxQueryVolumeInfo con un valor devuelto de STATUS_SUCCESS o STATUS_BUFFER_OVERFLOW, RDBSS copia el miembro ObjectId de la estructura FILE_FS_OBJECTID_INFORMATION pasada en el miembro Info.Buffer de RX_CONTEXT estructura al miembro NetRoot-DiskParameters.VolumeId> de la estructura FCB y al miembro AssociatedIrp.SystemBuffer.VolumeId del IRP. Si la llamada a MRxQueryVolumeInfo se realizó correctamente, RDBSS establece el miembro Type de la estructura LINK_TRACKING_INFORMATION. Si el miembro NetRoot-Flags> de la estructura FCB tiene el NETROOT_FLAG_DFS_AWARE_NETROOT bit establecido, RDBSS establece el miembro Type en DfsLinkTrackingInformation. Si el miembro NetRoot-Flags> de la estructura FCB no tiene establecido el bit de NETROOT_FLAG_DFS_AWARE_NETROOT, RDBSS establece el miembro Type en NtfsLinkTrackingInformation. Si se ejecuta correctamente, RDBSS establece el miembro IoStatus.Information del IRP en el tamaño de una estructura de LINK_TRACKING_INFORMATION.

Requisitos

Plataforma de destino

Escritorio

Encabezado

Mrx.h (incluya Mrx.h)

Consulte también

MRxIsValidDirectory

MRxQueryDirectory

MRxQueryEaInfo

MRxQueryFileInfo

MRxQueryQuotaInfo

MRxQuerySdInfo

MRxSetEaInfo

MRxSetFileInfo

MRxSetFileInfoAtCleanup

MRxSetQuotaInfo

MRxSetSdInfo

MRxSetVolumeInfo

RxFsdPostRequest