次の方法で共有


FsRtlDissectName 関数 (ntifs.h)

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

構文

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

パラメーター

[in] Path

解析するパス名文字列。

[out] FirstName

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

[out] RemainingName

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

戻り値

何一つ

備考

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

FsRtlDissectName では、入力文字列に無効な文字が存在しないかどうかを確認しません。

次の表に、FsRtlDissectNameの入力値と出力値の例を示します。

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

戻ると、出力パラメーターの Buffer メンバーは、PathBuffer メンバーを指します。 したがって、次の例に示すように、呼び出し元は、2 つの出力パラメーターの 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);
.
.
.

その他の文字列処理ルーチンについては、「Run-Time ライブラリ (RTL) ルーチン」を参照してください。

必要条件

要件 価値
ターゲット プラットフォーム の 万国
ヘッダー ntifs.h (Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 を する HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

関連項目

UNICODE_STRING