次の方法で共有


ZwSetSecurityObject 関数 (ntifs.h)

ZwSetSecurityObject ルーチンは、オブジェクトのセキュリティ状態を設定します。

構文

NTSYSAPI NTSTATUS ZwSetSecurityObject(
  [in] HANDLE               Handle,
  [in] SECURITY_INFORMATION SecurityInformation,
  [in] PSECURITY_DESCRIPTOR SecurityDescriptor
);

パラメーター

[in] Handle

セキュリティ状態が設定されるオブジェクトのハンドル。 このハンドルには、SecurityInformation パラメーターの説明に示されているテーブルの [意味] 列に指定されたアクセス権が必要です。

[in] SecurityInformation

設定する情報を指定する SECURITY_INFORMATION値。 次の値の 1 つ以上の組み合わせを指定できます。

価値 意味
DACL_SECURITY_INFORMATION オブジェクトの随意アクセス制御リスト (DACL) を設定することを示します。 WRITE_DACアクセスが必要です。
GROUP_SECURITY_INFORMATION オブジェクトのプライマリ グループ識別子を設定することを示します。 WRITE_OWNERアクセスが必要です。
OWNER_SECURITY_INFORMATION オブジェクトの所有者識別子を設定することを示します。 WRITE_OWNERアクセスが必要です。
SACL_SECURITY_INFORMATION オブジェクトのシステム ACL (SACL) を設定することを示します。 ACCESS_SYSTEM_SECURITYアクセスが必要です。

[in] SecurityDescriptor

オブジェクトに設定するセキュリティ記述子へのポインター。

戻り値

ZwSetSecurityObject は、STATUS_SUCCESSまたは適切なエラー状態を返します。 考えられるエラー状態コードは次のとおりです。

リターン コード 形容
STATUS_ACCESS_DENIED ハンドル には、必要なアクセス権がありません。
STATUS_ACCESS_VIOLATION SecurityDescriptor は、NULL ポインターです。
STATUS_INSUFFICIENT_RESOURCES オブジェクトのセキュリティ記述子をキャプチャできませんでした。
STATUS_INVALID_ACL オブジェクトのセキュリティ記述子に無効な ACL が含まれています。
STATUS_INVALID_HANDLE ハンドル は有効なハンドルではありません。
STATUS_INVALID_SECURITY_DESCR SecurityDescriptor は、有効なセキュリティ記述子を指していません。
STATUS_INVALID_SID オブジェクトのセキュリティ記述子に、無効な SIDが含まれています。
STATUS_OBJECT_TYPE_MISMATCH ハンドル は、想定される型のハンドルではありません。
STATUS_UNKNOWN_REVISION オブジェクトのセキュリティ記述子のリビジョン レベルが不明であるか、サポートされていません。

備考

セキュリティ記述子は、絶対形式でも自己相対形式でもかまいません。 自己相対形式では、構造体のすべてのメンバーが連続してメモリ内に配置されます。 絶対形式では、構造体にはメンバーへのポインターのみが含まれます。 詳細については、Windows SDK ドキュメントの「セキュリティ」セクションの「絶対および Self-Relative セキュリティ記述子」を参照してください。

セキュリティとアクセス制御の詳細については、ドライバー開発者向けの Windows セキュリティ モデルの と、Windows SDK のこれらのトピックに関するドキュメントを参照してください。

ミニフィルターでは、ZwSetSecurityObjectではなく、FltSetSecurityObject 使用する必要があります。

ZwSetSecurityObject の呼び出し元は、IRQL = PASSIVE_LEVEL で実行され、特殊なカーネル API が有効になっている 必要があります。

手記

ZwSetSecurityObject 関数の呼び出しがユーザー モードで発生する場合は、"ZwSetSecurityObject" ではなく"NtSetSecurityObject" という名前を使用する必要があります。

カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxxZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用 を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP
ターゲット プラットフォーム の 万国
ヘッダー ntifs.h (Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (「解説」セクションを参照)
DDI コンプライアンス規則 を する HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

関連項目

FltSetSecurityObject の

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

ネイティブ システム サービス ルーチンの Nt バージョンと Zw バージョンを使用した

ZwQuerySecurityObject