Freigeben über


FsRtlMupGetProviderInfoFromFileObject-Funktion (ntifs.h)

Die FsRtlMupGetProviderInfoFromFileObject Routine ruft Informationen zu einem Netzwerkumleitungsmodul ab, das mit dem mehrfachen UNC-Anbieter (MUP) aus einem Dateiobjekt für eine Datei registriert ist, die sich auf einem Remotedateisystem befindet.

Syntax

NTSTATUS FsRtlMupGetProviderInfoFromFileObject(
  [in]      PFILE_OBJECT pFileObject,
  [in]      ULONG        Level,
  [out]     PVOID        pBuffer,
  [in, out] PULONG       pBufferSize
);

Parameter

[in] pFileObject

Ein Zeiger auf ein Dateiobjekt einer Datei, die sich auf einem Remotedateisystem befindet.

[in] Level

Die Informationsebene, die von der FsRtlMupGetProviderInfoFromFileObject Routine zurückgegeben wird. Weitere Informationen zu den möglichen Werten für diesen Parameter finden Sie im Abschnitt "Hinweise".

[out] pBuffer

Ein Zeiger auf einen Puffer, der die Informationen empfängt, die von der FsRtlMupGetProviderInfoFromFileObject Routine zurückgegeben werden. Weitere Informationen zum Format der in diesem Puffer zurückgegebenen Daten finden Sie im Abschnitt "Hinweise".

[in, out] pBufferSize

Ein Zeiger auf eine ULONG-Typvariable, die die Größe des Puffers in Byte enthält, auf den der pBuffer-Parameter verweist. Wenn die Routine erfolgreich ist, empfängt diese Variable die Größe von Daten, die im Puffer zurückgegeben werden, in Byte.

Rückgabewert

Die FsRtlMupGetProviderInfoFromFileObject Routine gibt einen der folgenden NTSTATUS-Werte zurück.

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Informationen zum Netzwerkumleitungsmodul wurden erfolgreich im Puffer zurückgegeben, auf den der pBuffer -Parameter verweist.
STATUS_INVALID_PARAMETER
Einer der Parameter war NULL- oder enthielt einen ungültigen Wert.
STATUS_OBJECT_NAME_NOT_FOUND
Das Dateiobjekt, auf das vom pFileObject -Parameter verwiesen wird, entspricht nicht einem vollständig geöffneten Dateisystemdateiobjekt.
STATUS_BUFFER_TOO_SMALL
Die Größe des Puffers, auf den der pBuffer Parameter verweist, ist zu klein, um Daten zurückzugeben. In diesem Fall erhält die Variable, auf die durch die pBufferSize Parameter verwiesen wird, die erforderliche Größe des Puffers in Byte.
STATUS_BUFFER_OVERFLOW
Die Größe des Puffers, auf den der pBuffer Parameter verweist, ist zu klein, um alle Daten zurückzugeben. Nur die Daten, die in den Puffer passen, wurden zurückgegeben. In diesem Fall erhält die Variable, auf die durch die pBufferSize Parameter verwiesen wird, die erforderliche Größe des Puffers in Byte.

Bemerkungen

Ein Dateisystemfiltertreiber kann die FsRtlMupGetProviderInfoFromFileObject Routine aufrufen, um Informationen zu einem Netzwerkumleitungsmodul aus einem Dateiobjekt für eine Datei abzurufen, die sich auf einem Remotedateisystem befindet. Die Menge der Informationen, die von der FsRtlMupGetProviderInfoFromFileObject Routine zurückgegeben werden, hängt vom Wert des parameters Level ab. Wenn der parameter Level auf 1 festgelegt ist, gibt die FsRtlMupGetProviderInfoFromFileObject Routine eine FSRTL_MUP_PROVIDER_INFO_LEVEL_1 Struktur im Puffer zurück, auf die vom pBuffer -Parameter verwiesen wird. Die FSRTL_MUP_PROVIDER_INFO_LEVEL_1 Struktur ist wie folgt definiert:

typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_1 {
  ULONG32  ProviderId;
} FSRTL_MUP_PROVIDER_INFO_LEVEL_1, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_1;

Wenn der parameter Level auf 2 festgelegt ist, gibt die FsRtlMupGetProviderInfoFromFileObject Routine eine FSRTL_MUP_PROVIDER_INFO_LEVEL_2 Struktur im Puffer zurück, auf die vom pBuffer Parameter verwiesen wird. Die FSRTL_MUP_PROVIDER_INFO_LEVEL_2-Struktur ist wie folgt definiert:

typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_2 {
  ULONG32  ProviderId;
  UNICODE_STRING  ProviderName;
} FSRTL_MUP_PROVIDER_INFO_LEVEL_2, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_2;

Ein Dateisystemfiltertreiber kann den Wert des Anbieterbezeichners schnell mit dem Wert anderer Anbieterbezeichner vergleichen, ohne einen Zeichenfolgenvergleich durchführen zu müssen.

Der Wert des UNC-Anbieterbezeichners für einen bestimmten Netzwerkumleitungsanbieter bleibt gleich, wenn der Netzwerkumleitungsmodul aus dem System entladen und dann wieder in das System geladen wird.

Um den UNC-Anbieterbezeichner eines Netzwerkumleitungs aus dem Gerätenamen des Netzwerkumleitungs abzurufen, kann ein Dateisystemfiltertreiber den FsRtlMupGetProviderIdFromName Routine aufrufen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Die FsRtlMupGetProviderInfoFromFileObject-Funktion ist Windows Vista
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= APC_LEVEL

Siehe auch

FsRtlMupGetProviderIdFromName