MRxQueryFileInfo-Routine
DieMRxQueryFileInfo-Routine wird von RDBSS aufgerufen, um anzufordern, dass eine Netzwerkminiumleitung Dateiinformationen für ein Dateisystemobjekt abfragt.
Syntax
PMRX_CALLDOWN MRxQueryFileInfo;
NTSTATUS MRxQueryFileInfo(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
Parameter
RxContext [ein, aus]
Ein Zeiger auf die RX_CONTEXT-Struktur. Dieser Parameter enthält die IRP, die den Vorgang anfordert.
Rückgabewert
MRxQueryFileInfo gibt STATUS_SUCCESS bei Erfolg oder einen entsprechenden NTSTATUS-Wert zurück, z. B. einen der folgenden:
Rückgabecode | Beschreibung |
---|---|
STATUS_ACCESS_DENIED | Dem Aufrufer fehlte die richtige Sicherheit für diesen Vorgang. |
STATUS_BUFFER_OVERFLOW | Der Puffer zum Empfangen der Dateiinformationen war zu klein. Dieser Rückgabewert sollte als erfolgreich betrachtet werden, und so viele gültige Daten wie möglich sollten im Info.Buffer-Member der RX_CONTEXT Struktur zurückgegeben werden, auf die der RxContext-Parameter verweist. |
STATUS_BUFFER_TOO_SMALL | Der Puffer ist zu klein, um die angeforderten Daten zu empfangen. Wenn dieser Wert zurückgegeben wird, sollte das InformationToReturn-Element der RX_CONTEXT Struktur, auf die der RxContext-Parameter verweist, auf die Mindestgröße des erwarteten Puffers festgelegt werden, damit der Aufruf erfolgreich ist. |
STATUS_INSUFFICIENT_RESOURCES | Es waren nicht genügend Ressourcen vorhanden, um die Abfrage abzuschließen. |
STATUS_INVALID_NETWORK_RESPONSE | Vom Remoteserver wurde ein ungültiger Dateiinformationspuffer empfangen. |
STATUS_INVALID_PARAMETER | Ein ungültiger Parameter wurde angegeben. Dieser Wert kann zurückgegeben werden, wenn ein ungültiger Wert für das FileInformationClass-Element im RX_CONTEXT übergeben wird. Dieser Wert kann auch zurückgegeben werden, wenn der angegebene FileInformationClass-Member für FileStreamInformation ist und das Remotedateisystem keine Streams unterstützt. |
STATUS_OBJECT_NAME_NOT_FOUND | Der Objektname wurde nicht gefunden. Dies ist ein Fehlercode. |
Hinweise
RDBSS stellt einen Aufruf von MRxQueryFileInfo als Reaktion auf den Empfang einer IRP_MJ_QUERY_INFORMATION-Anforderung aus.
Vor dem Aufrufen von MRxQueryFileInfo ändert RDBSS die folgenden Member in der RX_CONTEXT Struktur, auf die der RxContext-Parameter verweist:
Das Info.FileInformationClass-Element ist auf IrpSp-Parameters.QueryFile.FileInformationClass> festgelegt, der angeforderte FILE_INFORMATION_CLASS Wert.
Das Info.Buffer-Element ist auf den Benutzerpuffer aus dem E/A-Anforderungspaket festgelegt.
Der Info.LengthRemaining-Member ist auf IrpSp-Parameters.QueryFile.Length> festgelegt.
Das QueryDirectory.FileIndex-Element ist auf IrpSp-Parameters.QueryDirectory.FileIndex> festgelegt.
Das QueryDirectory.RestartScan-Element wird festgelegt, wenn IrpSp-Flags> das SL_RESTART_SCAN Bit festgelegt hat.
Der QueryDirectory.ReturnSingleEntry-Member wird festgelegt, wenn IrpSp-Flags> SL_RETURN_SINGLE_ENTRY Bit festgelegt hat.
Das QueryDirectory.InitialQuery-Element wird festgelegt, wenn Fobx-UnicodeQueryTemplate.Buffer>NULL ist und Fobx-Flags> nicht das FOBX_FLAG_MATCH_ALL Bit festgelegt ist.
Bei Erfolg sollte der Netzwerkminiumleitungsor den Info.LengthRemaining-Member der RX_CONTEXT-Struktur auf Info.Length-Member abzüglich der Länge der zurückgegebenen Dateiinformationen festlegen. Wenn der Aufruf von MRxQueryFileInfo erfolgreich war, legt RDBSS das IoStatus.Information-Element des IRP auf IrpSp-Parameters.QueryFile.Length> abzüglich des Info.LengthRemaining-Members von RX_CONTEXT fest.
RDBSS unterstützt keine Anforderungen mit dem SL_INDEX_SPECIFIED Bit des IrpSp-Flags-Sets>. Ein Netzwerkminiumleitungsor empfängt keine Aufrufe von MRxQueryFileInfo, wobei das SL_INDEX_SPECIFIED Bit von IrpSp-Flags> festgelegt ist.
Anforderungen
Zielplattform |
Desktop |
Header |
Mrx.h (einschließlich Mrx.h) |