次の方法で共有


ZwQuerySecurityObject 関数 (ntifs.h)

ZwQuerySecurityObject ルーチンは、オブジェクトのセキュリティ記述子のコピーを取得します。

構文

NTSYSAPI NTSTATUS ZwQuerySecurityObject(
  [in]  HANDLE               Handle,
  [in]  SECURITY_INFORMATION SecurityInformation,
  [out] PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]  ULONG                Length,
  [out] PULONG               LengthNeeded
);

パラメーター

[in] Handle

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

[in] SecurityInformation

次の 1 つ以上の組み合わせとして照会する情報を指定する SECURITY_INFORMATION 値。

価値 意味
OWNER_SECURITY_INFORMATION オブジェクトの所有者識別子が照会されています。 READ_CONTROLアクセスが必要です。
GROUP_SECURITY_INFORMATION オブジェクトのプライマリ グループ識別子が照会されています。 READ_CONTROLアクセスが必要です。
SACL_SECURITY_INFORMATION オブジェクトのシステム ACL (SACL) が照会されています。 ACCESS_SYSTEM_SECURITYアクセスが必要です。
DACL_SECURITY_INFORMATION オブジェクトの随意アクセス制御リスト (DACL) が照会されています。 READ_CONTROLアクセスが必要です。

[out] SecurityDescriptor

ZwQuerySecurityObject 呼び出し元によって割り当てられたバッファーは、指定されたセキュリティ記述子のコピーを格納します。 SECURITY_DESCRIPTOR 構造体は自己相対形式で返されます。

[in] Length

SecurityDescriptorが指すバッファーのサイズ (バイト単位)。

[out] LengthNeeded

コピーされたセキュリティ記述子を格納するために必要なバイト数を受け取る呼び出し元によって割り当てられた変数へのポインター。

戻り値

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

リターン コード 形容
STATUS_ACCESS_DENIED ハンドル に必要なアクセス権がありませんでした。
STATUS_BUFFER_TOO_SMALL バッファーがセキュリティ記述子に対して小さすぎます。 セキュリティ情報がバッファーにコピーされませんでした。
STATUS_INVALID_HANDLE ハンドル が有効なハンドルではありません。
STATUS_OBJECT_TYPE_MISMATCH ハンドル は、想定される型のハンドルではありません。

備考

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

NTFS ファイル システムでは、ファイルのディスクに書き込まれるセキュリティ記述子のサイズに 64K の制限が適用されます。 (FAT ファイル システムは、ファイルのセキュリティ記述子をサポートしていません)。したがって、64K SecurityDescriptor バッファーは、返された SECURITY_DESCRIPTOR 構造体を保持するのに十分な大きさであることが保証されます。

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

ミニフィルターは、ZwQuerySecurityObjectではなく、FltQuerySecurityObject 呼び出す必要があります。

手記

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

カーネル モード ドライバーからの呼び出しの場合、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)

関連項目

FltQuerySecurityObject の

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

ZwSetSecurityObject