FsRtlDissectDbcs 함수(ntifs.h)

ANSI 또는 DBCS(더블 바이트 문자 집합) 경로 이름 문자열이 지정된 경우 FsRtlDissectDbcs 루틴은 문자열에 있는 첫 번째 파일 이름을 포함하는 문자열과 경로 이름 문자열의 나머지 구분되지 않은 부분을 포함하는 문자열의 두 문자열을 반환합니다.

구문

void FsRtlDissectDbcs(
  [in]  ANSI_STRING  Path,
  [out] PANSI_STRING FirstName,
  [out] PANSI_STRING RemainingName
);

매개 변수

[in] Path

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

[out] FirstName

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

[out] RemainingName

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

반환 값

없음

설명

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

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

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

경로 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 FsRtlDissectDbcs 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:
*/
FsRtlDissectDbcs (FullPathName, &CurrentComponent, &RemainingComponent);
.
.
.

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

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000
대상 플랫폼 유니버설
헤더 ntifs.h(FltKernel.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

추가 정보

ANSI_STRING