MRxQueryEaInfo-Routine
Die MRxQueryEaInfo-Routine wird von RDBSS aufgerufen, um anzufordern, dass ein Netzwerk-Mini-Redirector erweiterte Attributinformationen für ein Dateisystemobjekt abfragt.
Syntax
PMRX_CALLDOWN MRxQueryEaInfo;
NTSTATUS MRxQueryEaInfo(
_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
MRxQueryEaInfo gibt STATUS_SUCCESS nach 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 erweiterten Attributinformationen 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_CONNECTION_DISCONNECTED | Die Verbindung wurde getrennt. |
STATUS_EA_CORRUPT_ERROR | Vom Remoteserver wurden ungültige erweiterte Attributinformationen empfangen. |
STATUS_INSUFFICIENT_RESOURCES | Es waren nicht genügend Ressourcen vorhanden, um die Abfrage abzuschließen. |
STATUS_INVALID_PARAMETER | Ein ungültiger Parameter wurde angegeben. |
STATUS_NONEXISTENT_EA_ENTRY | Es gibt keine erweiterten Attribute für das Dateiobjekt, und der Benutzer hat einen erweiterten Attributindex angegeben. |
STATUS_NOT_SUPPORTED | Erweiterte Attribute werden nicht unterstützt. |
STATUS_ONLY_IF_CONNECTED | Die SRV_OPEN-Struktur ist nicht verbunden. |
STATUS_REQUEST_ABORTED | Die Netzwerkanforderung wurde abgebrochen. |
Hinweise
RDBSS gibt einen Aufruf von MRxQueryEaInfo als Reaktion auf den Empfang einer IRP_MJ_QUERY_EA-Anforderung aus.
Vor dem Aufrufen von MRxQueryEaInfo ändert RDBSS die folgenden Member in der RX_CONTEXT Struktur, auf die der RxContext-Parameter verweist:
Das Info.Buffer-Element ist auf den Benutzerpuffer aus E/A-Anforderungspaket festgelegt. Dieser Puffer wurde bei Bedarf bereits von RDBSS gesperrt.
Das Info.LengthRemaining-Element ist auf IrpSp-Parameters.QueryEa.Length> festgelegt.
Das QueryEa.UserEaList-Element ist auf IrpSp-Parameters.QueryEa.EaList> festgelegt.
Das QueryEa.UserEaListLength-Element ist auf IrpSp-Parameters.QueryEa.EaListLength> festgelegt.
Das QueryEa.UserEaIndex-Element ist auf IrpSp-Parameters.QueryEa.EaIndex> festgelegt.
Das QueryEa.RestartScan-Element ist auf nonzero festgelegt, wenn IrpSp-Flags> das SL_RESTART_SCAN Bit aktiviert hat.
Der QueryEa.ReturnSingleEntry-Member ist auf nonzero festgelegt, wenn IrpSp-Flags> das SL_RETURN_SINGLE_ENTRY Bit aktiviert hat.
Der QueryEa.IndexSpecified-Member ist auf nonzero festgelegt, wenn IrpSp-Flags> das SL_INDEX_SPECIFIED Bit aktiviert hat.
Bei Erfolg sollte MRxQueryEaInfo den Info.LengthRemaining-Member der RX_CONTEXT Struktur auf die Länge der zurückgegebenen erweiterten Attributinformationen festlegen und auch das Fobx-OffsetOfNextEaToReturn-Element> aktualisieren. Wenn der Aufruf von MRxQueryEaInfo erfolgreich war, legt RDBSS das IoStatus.Information-Element des IRP auf IrpSp-Parameters.QueryEa.Length abzüglich des Info.LengthRemaining-Members> von RX_CONTEXT fest.
Anforderungen
Zielplattform |
Desktop |
Header |
Mrx.h (einschließlich Mrx.h) |