RxPrepareToReparseSymbolicLink 함수(rxprocs.h)

RxPrepareToReparseSymbolicLink 는 재분석이 용이하도록 파일 개체 이름을 설정합니다. 이 루틴은 네트워크 미니 리 디렉터에서 기호 링크를 트래버스하는 데 사용됩니다.

구문

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

매개 변수

RxContext

RX_CONTEXT 구조체에 대한 포인터입니다.

SymbolicLinkEmbeddedInOldPath

기호 링크가 발생했음을 나타내는 부울 값입니다. 값이 TRUE이면 이전 경로 통과의 일부로 기호 링크가 발견되었습니다.

NewPath

트래버스할 새 경로 이름이 포함된 유니코드 문자열에 대한 포인터입니다.

NewPathIsAbsolute

새 경로가 절대 경로인지 여부를 나타내는 부울 값입니다. 이 값이 FALSE이면 \Device\Mup을 NewPath 앞에 추가해야 합니다. 이 값이 TRUE이면 NewPath 매개 변수는 재분석할 전체 경로입니다. 이 경우 NewPath 를 포함하는 버퍼는 새 버퍼를 할당하는 대신 직접 사용됩니다.

ReparseRequired

재분석이 필요한지 여부를 나타내는 부울 값에 대한 포인터입니다. 이 값이 TRUE이면 재분석이 필요합니다.

반환 값

RxPrepareToReparseSymbolicLink 는 성공 시 STATUS_SUCCESS 반환하거나 실패 시 다음 오류 값 중 하나를 반환합니다.

반환 코드 설명
STATUS_ACCESS_DENIED
삭제 요청이 실패했습니다.
STATUS_INSUFFICIENT_RESOURCES
사용할 수 있는 리소스가 부족했습니다.
STATUS_INVALID_PARAMETER
잘못된 매개 변수가 루틴에 전달되었습니다. RxContextMajorFunction 멤버가 IRP_MJ_CREATE 않으면 이 오류가 반환됩니다.

설명

RxPrepareToReparseSymbolicLink 루틴은 기호 링크를 지원하고 재분석 지점을 사용하여 기호 링크를 구현하는 네트워크 미니 리디렉터에서만 사용됩니다. RxPrepareToReparseSymbolicLink 루틴은 일반적으로 MrxCreate 콜백 루틴의 네트워크 미니 리디렉터에 의해 호출됩니다.

이 루틴 에 전달된 SymbolicLinkEmbeddedInOldPath 매개 변수는 매우 중요합니다. 올바른 의미 체계를 유지하려면 신중하게 사용해야 합니다. 예를 들어 C가 기호 링크가 되는 이전 경로 \A\B\C\D를 고려합니다. 이 경우 기호 링크가 경로에 포함되고 SymbolicLinkEmbeddedInOldPathTRUE로 설정해야 합니다. 반면, 이는 D가 기호 링크가 되는 경우와는 매우 다릅니다. 이전의 경우 재분석은 중간 단계를 구성합니다. 두 번째 예제에서 재분석은 이름 확인의 마지막 단계를 구성하며 , SymbolicLinkEmbeddedInOldPathFALSE로 설정해야 합니다.

DELETE 액세스를 지정하면 기호 링크가 포함되지 않은 모든 경우에 대해 열기 또는 만들기 작업이 거부됩니다. DELETE 액세스가 지정된 유일한 액세스인 경우 재분석하지 않고 열린 시도가 성공해야 할 수 있습니다. 이는 UNIX 기호 링크 의미 체계를 준수합니다.

이 루틴의 일부로 RxContext 도 적절하게 태그가 지정됩니다. 이렇게 하면 반환 값이 이 루틴의 호출과 교차 검사될 수 있습니다. RxPrepareToReparseSymbolicLink가 호출되면 네트워크 미니 리디렉터에서 STATUS_REPARSE 반환해야 합니다.

ReparseRequired 매개 변수의 값은 이 루틴에서 STATUS_SUCCESS 반환되는 경우에만 중요를 가정합니다. ReparseRequiredFALSE인 경우 이는 재분석 시도가 필요하지 않으며 링크의 대상이 아닌 기호 링크 파일 자체를 조작해야 한다는 것을 의미합니다. ReparseRequiredTRUE이면 재분석 시도가 성공적으로 설정되었음을 의미합니다. 이러한 경우 네트워크 미니 리디렉터에서 연결된 MRxCreate 호출에 대한 STATUS_REPARSE 반환해야 합니다. RDBSS는 이 조건에 대한 검사 시작합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 rxprocs.h(Rxprocs.h 포함)
IRQL <= APC_LEVEL

추가 정보

MRx만들기