ZwSetInformationToken 関数 (ntifs.h)
ZwSetInformationToken ルーチンは、指定されたトークン内の情報を変更します。 呼び出し元プロセスには、情報を設定するための適切なアクセス権が必要です。
構文
NTSYSAPI NTSTATUS ZwSetInformationToken(
[in] HANDLE TokenHandle,
[in] TOKEN_INFORMATION_CLASS TokenInformationClass,
[in] PVOID TokenInformation,
[in] ULONG TokenInformationLength
);
パラメーター
[in] TokenHandle
情報を変更するアクセス トークンのハンドル。
[in] TokenInformationClass
変更する情報の種類を識別する TOKEN_INFORMATION_CLASS 列挙型の値。 このパラメーターに指定できる値は、TokenInformation パラメーターの説明に示されているテーブルの TokenInformationClass Value 列に表示されます。
[in] TokenInformation
トークンで変更する情報を含む呼び出し元が指定したバッファーへのポインター。 このバッファー内の情報の構造は、次の表に示すように、TokenInformationClassの値によって異なります。 すべての構造体は、32 ビット境界に配置する必要があります。
TokenInformationClass 値 | TokenInformation バッファーへの影響 |
---|---|
TokenDefaultDacl | バッファーには、新しく作成されたオブジェクトの既定の DACL を指定する TOKEN_DEFAULT_DACL 構造体が含まれています。 この情報を設定するには、TOKEN_ADJUST_DEFAULTアクセスが必要です。 バッファーの内容は、構造的な正確性または一貫性については検証されません。 |
TokenGroups | 有効な情報クラスではありません。 この情報は読み取り専用です。 |
TokenOwner | バッファーには、新しく作成されたオブジェクトの既定の所有者 SID を指定する TOKEN_OWNER 構造体が含まれています。 この情報を設定するには、TOKEN_ADJUST_DEFAULTアクセスが必要です。 指定できる所有者値は、オブジェクトの所有者として割り当てることができることを示す属性を持つユーザー ID とグループ ID に制限されます。 |
TokenPrimaryGroup | バッファーには、新しく作成されたオブジェクトの SID |
TokenPrivileges | 有効な情報クラスではありません。 この情報は読み取り専用です。 |
TokenSource | 有効な情報クラスではありません。 この情報は読み取り専用です。 |
TokenStatistics | 有効な情報クラスではありません。 この情報は読み取り専用です。 |
TokenUser | 有効な情報クラスではありません。 この情報は読み取り専用です。 |
[in] TokenInformationLength
TokenInformation バッファーに渡される構造体のサイズ (バイト単位)。 次の表に示す最小値以上にする必要があります。
TokenInformationClass 値 | Minimum TokenInformationLength |
---|---|
TokenDefaultDacl | sizeof(TOKEN_DEFAULT_DACL) |
TokenOwner | sizeof(TOKEN_OWNER) |
TokenPrimaryGroup | sizeof(TOKEN_PRIMARY_GROUP) |
戻り値
ZwSetInformationToken は、STATUS_SUCCESSまたは適切なエラー状態を返します。 考えられるエラー状態コードは次のとおりです。
リターン コード | 形容 |
---|---|
STATUS_ACCESS_DENIED | TokenHandle に必要なアクセス権がありませんでした。 |
STATUS_ALLOTTED_SPACE_EXCEEDED | 既定の随意アクセス制御とプライマリ グループ ID のストレージ用に割り当てられた領域は、これらのフィールドの 1 つの新しい値を受け入れるのに十分な大きさではありません。 |
STATUS_INFO_LENGTH_MISMATCH | TokenInformationLength の値が、必要な最小値より小さかった。 |
STATUS_INSUFFICIENT_RESOURCES | 指定された既定の所有者のセキュリティ情報をキャプチャできませんでした。 |
STATUS_INVALID_HANDLE | TokenHandle は有効なハンドルではありません。 |
STATUS_INVALID_INFO_CLASS | TokenInformationClass が有効なトークン情報クラスではありません。 |
STATUS_INVALID_OWNER | 呼び出し元は、指定した ID をオブジェクトの所有者 (または既定の所有者) に設定できません。 |
STATUS_INVALID_PRIMARY_GROUP | 呼び出し元は、指定した ID をオブジェクトのプライマリ グループに設定できません。 |
STATUS_INVALID_SID | 指定された既定の所有者のセキュリティ情報が無効でした。 |
STATUS_OBJECT_TYPE_MISMATCH | TokenHandle はトークン ハンドルではありません。 |
備考
セキュリティとアクセス制御の詳細については、ドライバー開発者向けの Windows セキュリティ モデルの と、Windows SDK のこれらのトピックに関するドキュメントを参照してください。
手記
カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxx と ZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用 を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 7 |
ターゲット プラットフォーム の |
万国 |
ヘッダー | ntifs.h (Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を |
HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
関連項目
PsDereferenceImpersonationToken の
PsDereferencePrimaryToken の
SID の
SeQueryAuthenticationIdToken の
SeQuerySubjectContextToken の
SeTokenIsAdmin の