Freigeben über


RxPrepareToReparseSymbolicLink-Funktion (rxprocs.h)

RxPrepareToReparseSymbolicLink richtet den Dateinamen ein, um eine Analyse zu erleichtern. Diese Routine wird von den Netzwerkminiumleitungen verwendet, um symbolische Verbindungen zu durchlaufen.

Syntax

NTSTATUS RxPrepareToReparseSymbolicLink(
  PRX_CONTEXT     RxContext,
  BOOLEAN         SymbolicLinkEmbeddedInOldPath,
  PUNICODE_STRING NewPath,
  BOOLEAN         NewPathIsAbsolute,
  PBOOLEAN        ReparseRequired
);

Parameter

RxContext

Ein Zeiger auf die RX_CONTEXT-Struktur.

SymbolicLinkEmbeddedInOldPath

Ein boolescher Wert, der angibt, dass eine symbolische Verknüpfung aufgetreten ist. Wenn der Wert TRUEist, wurde im Rahmen der Durchquerung des alten Pfads eine symbolische Verknüpfung gefunden.

NewPath

Ein Zeiger auf eine Unicode-Zeichenfolge, die den neuen Pfadnamen enthält, der durchlaufen werden soll.

NewPathIsAbsolute

Ein boolescher Wert, der angibt, ob der neue Pfad absolut ist. Wenn dieser Wert FALSE-ist, sollte \Device\Mup NewPathvorangestellt werden. Wenn dieser Wert TRUEist, ist der parameter NewPath der vollständige Pfad zum Neuparieren. In diesem Fall wird der Puffer, der NewPath- enthält, direkt verwendet, anstatt einen neuen Puffer zu zuordnen.

ReparseRequired

Ein Zeiger auf einen booleschen Wert, der angibt, ob eine Analyse erforderlich ist. Wenn dieser Wert TRUEist, ist eine Analyse erforderlich.

Rückgabewert

RxPrepareToReparseSymbolicLink gibt STATUS_SUCCESS bei Erfolg oder einen der folgenden Fehlerwerte für fehler zurück:

Rückgabecode Beschreibung
STATUS_ACCESS_DENIED
Fehler bei einer Anforderung zum Löschen.
STATUS_INSUFFICIENT_RESOURCES
Es waren unzureichende Ressourcen verfügbar.
STATUS_INVALID_PARAMETER
An die Routine wurde ein ungültiger Parameter übergeben. Dieser Fehler wird zurückgegeben, wenn das MajorFunction Mitglied von RxContext-nicht IRP_MJ_CREATE ist.

Bemerkungen

Die RxPrepareToReparseSymbolicLink Routine würde nur von einem Netzwerk-Miniumleitungsmodul verwendet werden, der symbolische Verknüpfungen unterstützt und Analysepunkte verwendet, um symbolische Verknüpfungen zu implementieren. Die RxPrepareToReparseSymbolicLink Routine würde normalerweise von einem Netzwerk-Miniumleitungsmodul aus seiner MrxCreate Rückrufroutine aufgerufen werden.

Der an diese Routine übergebene parameter SymbolicLinkEmbeddedInOldPath ist sehr wichtig. Um die richtige Semantik beizubehalten, sollte sie sorgfältig verwendet werden. Betrachten Sie z. B. den alten Pfad \A\B\C\D, wobei C eine symbolische Verknüpfung ist. In diesem Fall ist die symbolische Verknüpfung in den Pfad eingebettet, und SymbolicLinkEmbeddedInOldPath- sollte auf TRUE-festgelegt werden. Im Gegensatz dazu unterscheidet sich dies sehr von dem Fall, wenn D ein symbolischer Zusammenhang ist. Im früheren Fall stellt die Analyse einen Zwischenschritt dar. Im zweiten Beispiel stellt die Analyse den letzten Schritt der Namensauflösung dar und SymbolicLinkEmbeddedInOldPath- sollte auf FALSE-festgelegt werden.

Wenn DER DELETE-Zugriff angegeben ist, wird der Öffnen- oder Erstellungsvorgang für alle Fälle verweigert, in denen die symbolische Verknüpfung nicht eingebettet ist. Es ist möglich, dass, wenn DER DELETE-Zugriff der einzige angegebene war, der geöffnete Versuch ohne Analyse erfolgreich sein muss. Dies entspricht der UNIX-Symbolischen Verknüpfungsemantik.

Im Rahmen dieser Routine wird auch RxContext- entsprechend markiert. Dadurch wird sichergestellt, dass der Rückgabewert mit dem Aufruf dieser Routine durchgecheckt werden kann. Sobald RxPrepareToReparseSymbolicLink aufgerufen wird, muss der Netzwerkminiumleitungs-Umleitungsmodul STATUS_REPARSE zurückgeben.

Der Wert des ReparseRequired Parameter setzt nur dann eine Bedeutung voraus, wenn STATUS_SUCCESS von dieser Routine zurückgegeben wird. Wenn ReparseRequiredFALSEist, bedeutet dies, dass kein Analyseversuch erforderlich ist und die symbolische Verknüpfungsdatei selbst im Gegensatz zum Ziel des Links bearbeitet werden sollte. Wenn ReparseRequiredTRUEist, bedeutet dies, dass ein Analyseversuch erfolgreich eingerichtet wurde. In solchen Fällen ist es zwingend erforderlich, dass der Netzwerk-Miniumleitung STATUS_REPARSE für den zugeordneten MRxCreate Aufruf zurückgibt. RDBSS initiiert eine Überprüfung auf diese Bedingung.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- rxprocs.h (include Rxprocs.h)
IRQL- <= APC_LEVEL

Siehe auch

MRxCreate