次の方法で共有


ZwDuplicateObject 関数 (ntifs.h)

ZwDuplicateObject ルーチンは、指定されたソース ハンドルの複製であるハンドルを作成します。

構文

NTSYSAPI NTSTATUS ZwDuplicateObject(
  [in]            HANDLE      SourceProcessHandle,
  [in]            HANDLE      SourceHandle,
  [in, optional]  HANDLE      TargetProcessHandle,
  [out, optional] PHANDLE     TargetHandle,
  [in]            ACCESS_MASK DesiredAccess,
  [in]            ULONG       HandleAttributes,
  [in]            ULONG       Options
);

パラメーター

[in] SourceProcessHandle

重複するハンドルのソース プロセスへのハンドル。

[in] SourceHandle

複製するハンドル。

[in, optional] TargetProcessHandle

新しいハンドルを受け取るターゲット プロセスへのハンドル。 このパラメーターは省略可能であり、DUPLICATE_CLOSE_SOURCE フラグが Optionsで設定されている場合は NULL として指定できます。

[out, optional] TargetHandle

ルーチンが新しい重複ハンドルを書き込む HANDLE 変数へのポインター。 重複したハンドルは、指定されたターゲット プロセスで有効です。 このパラメーターは省略可能であり、重複するハンドルを作成しない場合は NULL として指定できます。

[in] DesiredAccess

新しいハンドルに必要なアクセスを指定する ACCESS_MASK 値。

[in] HandleAttributes

新しいハンドルに必要な属性を指定する ULONG。 属性の詳細については、OBJECT_ATTRIBUTESAttributes メンバーの説明を参照してください。

[in] Options

重複操作の動作を制御するフラグのセット。 このパラメーターを 0 に設定するか、次のフラグの 1 つ以上のビットごとの OR に設定します。

フラグ名 形容
DUPLICATE_SAME_ATTRIBUTES HandleAttributes パラメーターを使用する代わりに、ソース ハンドルからターゲット ハンドルに属性をコピーします。
DUPLICATE_SAME_ACCESS DesiredAccess パラメーターを使用する代わりに、ソース ハンドルからターゲット ハンドルにアクセス権をコピーします。
DUPLICATE_CLOSE_SOURCE ソース ハンドルを閉じます。

戻り値

ZwDuplicateObject 、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合は、適切なエラー状態コードが返されます。

備考

ソース ハンドルは、指定されたソース プロセスのコンテキストで評価されます。 呼び出し元プロセスは、ソース プロセスに PROCESS_DUP_HANDLE アクセスできる必要があります。 重複するハンドルは、指定されたターゲット プロセスのハンドル テーブルに作成されます。 呼び出し元のプロセスは、ターゲット プロセスに PROCESS_DUP_HANDLE アクセスできる必要があります。

既定では、重複するハンドルは、HandleAttributes パラメーターで指定された属性と、DesiredAccess パラメーターで指定されたアクセス権を使用して作成されます。 必要に応じて、呼び出し元は、Options パラメーターで DUPLICATE_SAME_ATTRIBUTES フラグと DUPLICATE_SAME_ACCESS フラグを設定することで、一方または両方の既定値をオーバーライドできます。

この関数の呼び出しがユーザー モードで発生する場合は、"ZwDuplicateObject" の代わりに"NtDuplicateObject" という名前を使用する必要があります。

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

必要条件

要件 価値
サポートされる最小クライアント Windows 2000。
ターゲット プラットフォーム の 万国
ヘッダー ntifs.h (Ntdef.h、Ntifs.h、Fltkernel.h を含む)
ライブラリ Ntoskrnl.lib
IRQL PASSIVE_LEVEL

関連項目

ACCESS_MASK

OBJECT_ATTRIBUTES

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