共用方式為


RxPrepareToReparseSymbolicLink 函式 (rxprocs.h)

RxPrepareToReparseSymbolicLink 設定檔案物件名稱,以利重新剖析。 網路迷你重新導向器會使用此例程來周遊符號連結。

語法

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

參數

RxContext

RX_CONTEXT 結構的指標。

SymbolicLinkEmbeddedInOldPath

布爾值,表示遇到符號連結。 如果值 TRUE,則會在舊路徑周遊過程中遇到符號連結。

NewPath

Unicode 字串的指標,其中包含要周遊的新路徑名稱。

NewPathIsAbsolute

布爾值,指出新路徑是否為絕對路徑。 如果此值 FALSE,則 \Device\Mup 應該前面加上 NewPath。 如果此值 TRUE,則 NewPath 參數是重新剖析的完整路徑。 在此情況下,會直接使用包含 NewPath 的緩衝區,而不是配置新的緩衝區。

ReparseRequired

布爾值的指標,指出是否需要重新分析。 如果此值 TRUE,則需要重新分析。

傳回值

RxPrepareToReparseSymbolicLink 會在成功時傳回STATUS_SUCCESS,或失敗時傳回下列其中一個錯誤值:

傳回碼 描述
STATUS_ACCESS_DENIED
刪除的要求失敗。
STATUS_INSUFFICIENT_RESOURCES
資源不足。
STATUS_INVALID_PARAMETER
無效的參數已傳遞至例程。 如果未IRP_MJ_CREATE RxContext MajorFunction 成員,則會傳回此錯誤。

言論

RxPrepareToReparseSymbolicLink 例程只能由支援符號連結的網路迷你重新導向器使用,並使用重新分析點來實作符號連結。 RxPrepareToReparseSymbolicLink 例程通常會由網路迷你重新導向器從其 MrxCreate 回呼例程呼叫。

傳遞至此例程的 SymbolicLinkEmbeddedInOldPath 參數非常重要。 若要保留正確的語意,應謹慎使用。 例如,請考慮 C 恰好是符號連結的舊路徑 \A\B\C\D。 在此情況下,符號連結會內嵌在路徑中,且 SymbolicLinkEmbeddedInOldPath 應設定為 true 。 相反地,這與當 D 碰巧是符號連結時的情況非常不同。 在先前的案例中,重新分析構成中繼步驟。 在第二個範例中,reparse 構成名稱解析的最後一個步驟,而 SymbolicLinkEmbeddedInOldPath 應設定為 FALSE

如果指定 DELETE 存取,則會拒絕所有未內嵌符號連結的開啟或建立作業。 如果 DELETE 存取是唯一指定的存取,則開啟嘗試必須成功,而不需重新分析。 這符合 UNIX 符號連結語意。

在此例程中,也會適當標記 RxContext。 這可確保傳回值可以使用這個例程的調用進行交叉檢查。 叫用 RxPrepareToReparseSymbolicLink 之後,網路迷你重新導向器必須傳回STATUS_REPARSE。

只有在從這個例程傳回STATUS_SUCCESS時,ReparseRequired 參數的值才會假設意義。 如果 ReparseRequiredFALSE,這表示不需要重新分析嘗試,而且符號鏈接檔案本身應該受到作,而不是鏈接的目標。 如果 ReparseRequiredTRUE,這表示已成功設定重新分析嘗試。 在這種情況下,網路迷你重新導向器必須針對相關聯的 MRxCreate 呼叫傳回STATUS_REPARSE。 RDBSS 會起始此條件的檢查。

要求

要求 價值
目標平臺 桌面
標頭 rxprocs.h (包括 Rxprocs.h)
IRQL <= APC_LEVEL

另請參閱

MRxCreate