Routine MRxQueryVolumeInfo

La routine MRxQueryVolumeInfo viene chiamata da RDBSS per richiedere che un mini-reindirizzamento di rete esegua le informazioni sul volume di query.

Sintassi

PMRX_CALLDOWN MRxQueryVolumeInfo;

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

Parametri

RxContext [in, out]
Puntatore alla struttura RX_CONTEXT. Questo parametro contiene l'IRP che richiede l'operazione.

Valore restituito

MRxQueryVolumeInfo restituisce STATUS_SUCCESS in caso di esito positivo o di un valore NTSTATUS appropriato, ad esempio uno dei seguenti:

Codice restituito Descrizione
STATUS_ACCESS_DENIED

Il chiamante non ha la sicurezza appropriata per questa operazione.

STATUS_BUFFER_OVERFLOW

Il buffer per ricevere le informazioni sul volume era troppo piccolo.

Questo valore restituito deve essere considerato riuscito e deve essere restituito il maggior numero possibile di dati validi nel membro Info.Buffer della struttura RX_CONTEXT a cui punta il parametro RxContext .

STATUS_BUFFER_TOO_SMALL

Il buffer è troppo piccolo per ricevere i dati richiesti.

Se questo valore viene restituito, il membro InformationToReturn della struttura RX_CONTEXT a cui punta il parametro RxContext deve essere impostato sulla dimensione minima del buffer previsto affinché la chiamata abbia esito positivo.

STATUS_CONNECTION_DISCONNECTED

La connessione è stata disconnessa.

STATUS_INSUFFICIENT_RESOURCES

Risorse insufficienti per completare la query.

STATUS_INVALID_PARAMETER

È stato specificato un parametro non valido.

STATUS_NETWORK_NAME_DELETED

È stato eliminato un nome di rete.

STATUS_NOT_IMPLEMENTED

Una funzionalità richiesta non viene implementata.

Commenti

RDBSS invia una chiamata a MRxQueryVolumeInfo in uno dei casi seguenti:

Prima di chiamare MRxQueryVolumeInfo nel caso di una richiesta di IRP_MJ_QUERY_VOLUME_INFORMATION, RDBSS modifica i membri seguenti nella struttura RX_CONTEXT a cui punta il parametro RxContext :

Il membro Info.FsInformationClass è impostato su IrpSp-Parameters.QueryVolume.FsInformationClass>.

Il membro Info.Buffer è impostato su Irp-AssociatedIrp.SystemBuffer>.

Il membro Info.LengthRemaining è impostato su IrpSp-Parameters.QueryVolume.Length>.

Per una richiesta di IRP_MJ_QUERY_VOLUME_INFORMATION, se il membro PostRequest della struttura RX_CONTEXT è TRUE al ritorno da MRxQueryVolumeInfo, RDBSS chiamerà RxFsdPostRequest per inviare la richiesta. In questo caso, la richiesta di IRP_MJ_QUERY_VOLUME_INFORMATION passerà la struttura RX_CONTEXT alla coda RX_CONTEXT a una coda di lavoro per l'elaborazione da parte del processo di file system (FSP).

Se il membro PostRequest della struttura RX_CONTEXT è FALSE quando viene restituito da MRxQueryVolumeInfo, il mini-redirector di rete deve impostare il membro Info.LengthRemaining della struttura RX_CONTEXT sulla lunghezza delle informazioni sul volume restituite. RDBSS imposta il membro IoStatus.Information di IRP su IrpSp-Parameters.QueryVolume.Length> meno il membro Info.LengthRemaining della struttura RX_CONTEXT.

Se la chiamata a MRxQueryVolumeInfo ha esito positivo, il mini-redirector di rete deve impostare il membro Info.LengthRemaining della struttura RX_CONTEXT sul membro Info.Length meno la lunghezza delle informazioni sul volume restituite. Se la chiamata a MRxQueryVolumeInfo ha avuto esito positivo, RDBSS imposta il membro IoStatus.Information di IRP su IrpSp-Parameters.QueryVolume.Length> meno il membro Info.LengthRemaining della struttura RX_CONTEXT.

Per una richiesta di IRP_MJ_QUERY_VOLUME_INFORMATION con il membro Info.FsInformationClass impostato su FileFsDeviceInformation, il mini-redirector di rete restituisce le informazioni seguenti nella struttura RX_CONTEXT a cui punta il parametro RxContext :

Il membro Info.Buffer contiene una struttura FILE_FS_DEVICE_INFORMATION

Il membro Info.Buffer.Characteristics è impostato sulle caratteristiche del volume, che deve includere FILE_REMOTE_DEVICE come una delle opzioni.

Il membro Info.Buffer.DeviceType è impostato sul membro DeviceType della struttura di NET_ROOT associata. Se il membro Type dell'NET_ROOT associato è NET_ROOT_PIPE, il membro Info.Buffer.DeviceType viene impostato su FILE_DEVICE_NAMED_PIPE.

Per una richiesta di IRP_MJ_QUERY_VOLUME_INFORMATION con il membro Info.FsInformationClass impostato su FileFsVolumeInformation, il mini-redirector di rete restituisce le informazioni seguenti nella struttura RX_CONTEXT a cui punta il parametro RxContext :

Il membro Info.Buffer contiene una struttura FILE_FS_VOLUME_INFORMATION.

Il membro Info.Buffer è impostato sul membro VolumeInfo della struttura di NET_ROOT associata.

Il membro Info.LengthRemaining è impostato sul membro VolumeInfoLength della struttura di NET_ROOT associata.

Una chiamata MRxQueryVolumeInfo da RDBSS per IRP_MJ_FILE_SYSTEM_CONTROL è una richiesta per le informazioni di rilevamento dei collegamenti. Prima di chiamare MRxQueryVolumeInfo per IRP_MJ_FILE_SYSTEM_CONTROL, RDBSS modifica i membri seguenti nella struttura RX_CONTEXT a cui punta il parametro RxContext :

Il membro Info.FsInformationClass è impostato su FileFsObjectIdInformation.

Il membro Info.Buffer è impostato su una struttura FILE_FS_OBJECTID_INFORMATION.

Il membro Info.LengthRemaining è impostato su sizeof(FILE_FS_OBJECTID_INFORMATION).

Per questo caso di una richiesta di IRP_MJ_FILE_SYSTEM_CONTROL, il membro AssociatedIrp.SystemBuffer dell'IRP punta a una struttura LINK_TRACKING_INFORMATION.

Se una richiesta viene avviata come IRP_MJ_FILE_SYSTEM_CONTROL a MRxQueryVolumeInfo con un valore restituito di STATUS_SUCCESS o STATUS_BUFFER_OVERFLOW, RDBSS copia il membro ObjectId della struttura FILE_FS_OBJECTID_INFORMATION passato nel membro Info.Buffer della struttura RX_CONTEXT al membro NetRoot-DiskParameters.VolumeId> della struttura FCB e al membro AssociatedIrp.SystemBuffer.VolumeId dell'IRP. Se la chiamata a MRxQueryVolumeInfo ha avuto esito positivo, RDBSS imposta il membro Type della struttura LINK_TRACKING_INFORMATION. Se il membro NetRoot-Flags> della struttura FCB ha il NETROOT_FLAG_DFS_AWARE_NETROOT bit impostato, il membro Type viene impostato da RDBSS su DfsLinkTrackingInformation. Se il membro NetRoot-Flags> della struttura FCB non ha il bit NETROOT_FLAG_DFS_AWARE_NETROOT impostato, il membro Type viene impostato da RDBSS su NtfsLinkTrackingInformation. In caso di esito positivo, RDBSS imposta il membro IoStatus.Information dell'IRP sulle dimensioni di una struttura LINK_TRACKING_INFORMATION.

Requisiti

Piattaforma di destinazione

Desktop

Intestazione

Mrx.h (include Mrx.h)

Vedi anche

MRxIsValidDirectory

MRxQueryDirectory

MRxQueryEaInfo

MRxQueryFileInfo

MRxQueryQuotaInfo

MRxQuerySdInfo

MRxSetEaInfo

MRxSetFileInfo

MRxSetFileInfoAtCleanup

MRxSetQuotaInfo

MRxSetSdInfo

MRxSetVolumeInfo

RxFsdPostRequest