Routine MRxQueryFileInfo
La routineMRxQueryFileInfo viene chiamata da RDBSS per richiedere che un mini-redirector di rete esegua le informazioni sui file di query su un oggetto file system.
Sintassi
PMRX_CALLDOWN MRxQueryFileInfo;
NTSTATUS MRxQueryFileInfo(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
Parametri
RxContext [in, out]
Puntatore alla struttura RX_CONTEXT. Questo parametro contiene l'IRP che richiede l'operazione.
Valore restituito
MRxQueryFileInfo 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 file 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_INSUFFICIENT_RESOURCES | Risorse insufficienti per completare la query. |
STATUS_INVALID_NETWORK_RESPONSE | Un buffer di informazioni sul file non valido è stato ricevuto dal server remoto. |
STATUS_INVALID_PARAMETER | È stato specificato un parametro non valido. Questo valore può essere restituito se viene passato un valore non valido per il membro FileInformationClass nel RX_CONTEXT. Questo valore può essere restituito anche se il membro FileInformationClass specificato è per FileStreamInformation e il file system remoto non supporta i flussi. |
STATUS_OBJECT_NAME_NOT_FOUND | Il nome dell'oggetto non è stato trovato. Si tratta di un codice di errore. |
Commenti
RDBSS invia una chiamata a MRxQueryFileInfo in risposta alla ricezione di una richiesta di IRP_MJ_QUERY_INFORMATION .
Prima di chiamare MRxQueryFileInfo, RDBSS modifica i membri seguenti nella struttura RX_CONTEXT a cui punta il parametro RxContext :
Il membro Info.FileInformationClass è impostato su IrpSp-Parameters.QueryFile.FileInformationClass>, il valore FILE_INFORMATION_CLASS richiesto.
Il membro Info.Buffer è impostato sul buffer utente dal pacchetto di richiesta di I/O.
Il membro Info.LengthRemaining è impostato su IrpSp-Parameters.QueryFile.Length>.
Il membro QueryDirectory.FileIndex è impostato su IrpSp-Parameters.QueryDirectory.FileIndex>.
Il membro QueryDirectory.RestartScan viene impostato se IrpSp-Flags> ha il SL_RESTART_SCAN bit impostato.
Il membro QueryDirectory.ReturnSingleEntry viene impostato se IrpSp-Flags> ha SL_RETURN_SINGLE_ENTRY bit impostato.
Il membro QueryDirectory.InitialQuery viene impostato se Fobx-UnicodeQueryTemplate.Buffer> è NULL e Fobx-Flags> non dispone del set di bit FOBX_FLAG_MATCH_ALL.
In caso di esito positivo, il mini-reindirizzamento di rete deve impostare il membro Info.LengthRemaining della struttura RX_CONTEXT sul membro Info.Length meno la lunghezza delle informazioni sul file restituite. Se la chiamata a MRxQueryFileInfo ha avuto esito positivo, RDBSS imposta il membro IoStatus.Information di IRP su IrpSp-Parameters.QueryFile.Length> meno il membro Info.LengthRemaining di RX_CONTEXT.
RDBSS non supporta le richieste con il bit SL_INDEX_SPECIFIED del set IrpSp-Flags>. Un mini-redirector di rete non riceverà chiamate a MRxQueryFileInfo con il bit SL_INDEX_SPECIFIED del set IrpSp-Flags>.
Requisiti
Piattaforma di destinazione |
Desktop |
Intestazione |
Mrx.h (include Mrx.h) |