FsRtlDissectName 함수(ntifs.h)

유니코드 경로 이름 문자열이 지정된 경우 FsRtlDissectName 루틴은 문자열에 있는 첫 번째 파일 이름을 포함하는 문자열과 pathname 문자열의 나머지 분리되지 않은 부분을 포함하는 두 개의 문자열을 반환합니다.

구문

void FsRtlDissectName(
  [in]  UNICODE_STRING  Path,
  [out] PUNICODE_STRING FirstName,
  [out] PUNICODE_STRING RemainingName
);

매개 변수

[in] Path

구문 분석할 경로 이름 문자열입니다.

[out] FirstName

경로 이름 문자열의 첫 번째 파일 이름에 대한 포인터입니다.

[out] RemainingName

pathname 문자열의 나머지 구문 분석되지 않은 부분에 대한 포인터입니다.

반환 값

없음

설명

입력 문자열에서 백슬라이시는 이름 구분 기호로 읽습니다. 문자열의 첫 번째 이름은 문자열의 시작부터 첫 번째 백슬래시 앞의 문자(포함)에 이르는 모든 문자로 구성된 것으로 간주됩니다. 이 규칙에는 한 가지 예외가 있습니다. 입력 문자열의 첫 번째 문자가 백슬래시인 경우 이 문자는 무시되고 출력 문자열에 표시되지 않습니다. 문자열의 나머지 부분은 문자열에 있는 이름을 따르는 백슬래시 뒤에 있는 모든 문자로 구성됩니다.

FsRtlDissectName은 입력 문자열에 잘못된 문자가 있는지 검사 않습니다.

다음 표에서는 FsRtlDissectName에 대한 샘플 입력 및 출력 값을 보여 줍니다.

경로 FirstName RemainingName
비어 있음 비어 있음 비어 있음
A A 비어 있음
A\B\C\D\E A B\C\D\E
*A? *A? 비어 있음
\A A 비어 있음
A[,] A[,] 비어 있음
A\\B+;\C A \B+;\C
 

반환 시 출력 매개 변수의 Buffer 멤버는 PathBuffer 멤버를 가리킵니다. 따라서 호출자는 다음 예제와 같이 두 출력 매개 변수의 Buffer 멤버에 대한 스토리지를 할당해서는 안 됩니다.

.
.
.
/*
The FsRtlDissectName routine will set the members
of the following two structures appropriately:
*/
UNICODE_STRING CurrentComponent;
UNICODE_STRING RemainingComponent;

/*
Do not allocate storage for the Buffer members of CurrentComponent
and RemainingComponent in that they will point into the previously
allocated storage of FullPathName's Buffer member:
*/
FsRtlDissectName (FullPathName, &CurrentComponent, &RemainingComponent);
.
.
.

다른 문자열 처리 루틴에 대한 자세한 내용은 RTL(런타임 라이브러리) 루틴을 참조하세요.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

추가 정보

UNICODE_STRING