Funzione RxPrepareToReparseSymbolicLink (rxprocs.h)

RxPrepareToReparseSymbolicLink configura il nome dell'oggetto file per facilitare un reparse. Questa routine viene utilizzata dai mini-reindirizzamenti di rete per attraversare i collegamenti simbolici.

Sintassi

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

Parametri

RxContext

Puntatore alla struttura RX_CONTEXT.

SymbolicLinkEmbeddedInOldPath

Valore booleano che indica che è stato rilevato un collegamento simbolico. Se il valore è TRUE, è stato rilevato un collegamento simbolico come parte dell'attraversamento del percorso precedente.

NewPath

Puntatore a una stringa Unicode contenente il nuovo nome del percorso da attraversare.

NewPathIsAbsolute

Valore booleano che indica se il nuovo percorso è assoluto. Se questo valore è FALSE, \Device\Mup deve essere anteporre a NewPath. Se questo valore è TRUE, il parametro NewPath è il percorso completo di reparse. In questo caso, il buffer che contiene NewPath viene usato direttamente anziché allocare un nuovo buffer.

ReparseRequired

Puntatore a un valore booleano che indica se è necessario un reparse. Se questo valore è TRUE, è necessario un reparse.

Valore restituito

RxPrepareToReparseSymbolicLink restituisce STATUS_SUCCESS in caso di esito positivo o uno dei valori di errore seguenti in caso di errore:

Codice restituito Descrizione
STATUS_ACCESS_DENIED
Richiesta di eliminazione non riuscita.
STATUS_INSUFFICIENT_RESOURCES
Non sono disponibili risorse sufficienti.
STATUS_INVALID_PARAMETER
Alla routine è stato passato un parametro non valido. Questo errore verrà restituito se il membro MajorFunction di RxContext non è IRP_MJ_CREATE.

Commenti

La routine RxPrepareToReparseSymbolicLink verrebbe usata solo da un mini-redirector di rete che supporta collegamenti simbolici e usa i punti reparse per implementare collegamenti simbolici. La routine RxPrepareToReparseSymbolicLink viene normalmente chiamata da un mini redirector di rete dalla routine di callback MrxCreate .

Il parametro SymbolicLinkEmbeddedInOldPath passato a questa routine è molto importante. Per mantenere la semantica corretta, deve essere usata con attenzione. Si consideri ad esempio il percorso precedente \A\B\C\D in cui C è un collegamento simbolico. In questo caso, il collegamento simbolico è incorporato nel percorso e SymbolicLinkEmbeddedInOldPath deve essere impostato su TRUE. Al contrario, questo è molto diverso dal caso in cui D è un collegamento simbolico. Nel primo caso, il reparse costituisce un passaggio intermedio. Nel secondo esempio, il reparse costituisce il passaggio finale della risoluzione dei nomi e SymbolicLinkEmbeddedInOldPath deve essere impostato su FALSE.

Se si specifica l'accesso DELETE, l'operazione di apertura o creazione viene negata per tutti i casi in cui il collegamento simbolico non è incorporato. È possibile che se l'accesso DELETE fosse l'unico specificato, il tentativo di apertura deve avere esito positivo senza eseguire nuovamente la verifica. La semantica del collegamento simbolico UNIX è conforme.

Come parte di questa routine, anche RxContext viene contrassegnato in modo appropriato. In questo modo si garantisce che il valore restituito possa essere controllato in modo incrociato con la chiamata di questa routine. Una volta richiamato RxPrepareToReparseSymbolicLink , il mini redirector di rete deve restituire STATUS_REPARSE.

Il valore del parametro ReparseRequired presuppone un significato solo se STATUS_SUCCESS viene restituito da questa routine. Se ReparseRequired è FALSE, ciò implica che non è necessario alcun tentativo di analisi e che il file di collegamento simbolico stesso deve essere modificato invece della destinazione del collegamento. Se ReparseRequired è TRUE, ciò implica che un tentativo di correzione è stato configurato correttamente. In questi casi, è fondamentale che il mini redirector di rete restituisca STATUS_REPARSE per la chiamata MRxCreate associata. RDBSS avvierà un controllo per questa condizione.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione rxprocs.h (include Rxprocs.h)
IRQL <= APC_LEVEL

Vedi anche

MRxCreate