FsRtlDissectDbcs 関数 (ntifs.h)

ANSI または 2 バイト文字セット (DBCS) のパス名文字列を指定すると、 FsRtlDissectDbcs ルーチンは 2 つの文字列を返します。1 つは文字列内で見つかった最初のファイル名を含み、もう 1 つは pathname 文字列の残りの未解析部分を含みます。

構文

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

パラメーター

[in] Path

解析する pathname 文字列。

[out] FirstName

pathname 文字列内の最初のファイル名へのポインター。

[out] RemainingName

pathname 文字列の残りの未解析部分へのポインター。

戻り値

なし

解説

入力文字列では、円記号は名前の区切り記号として読み取られます。 文字列の最初の名前は、文字列の先頭から最初の円記号の前の文字まで、すべての文字で構成されているものと見なされます。 この規則には例外が 1 つだけあります。入力文字列の最初の文字が円記号の場合、この文字は無視され、出力文字列には表示されません。 文字列の残りの部分は、文字列内で見つかった名に続く円記号の後にあるすべての文字で構成されます。

FsRtlDissectDbcs は、入力文字列に無効な文字が存在する場合にチェックされません。

次の表は、 FsRtlDissectDbcs の入力値と出力値の例を示しています。

パス FirstName RemainingName
empty empty empty
A A empty
A\B\C\D\E A B\C\D\E
*A。 *A。 empty
\A A empty
A[,] A[,] empty
A\\B+;\C A \B+;\C
 

返されると、出力パラメーターの Buffer メンバーが PathBuffer メンバーを指します。 したがって、次の例に示すように、呼び出し元は、2 つの出力パラメーターの 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
対象プラットフォーム ユニバーサル
Header ntifs.h (FltKernel.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL

こちらもご覧ください

ANSI_STRING