Share via


CoDecodeProxy 関数 (combaseapi.h)

プロキシされたオブジェクトへのインターフェイスを指定して、サーバー プロセス内のコンポーネント オブジェクト モデル (COM) インターフェイスの実装を検索します。

構文

HRESULT CoDecodeProxy(
  [in]  DWORD              dwClientPid,
  [in]  UINT64             ui64ProxyAddress,
  [out] PServerInformation pServerInformation
);

パラメーター

[in] dwClientPid

プロキシを含むプロセスのプロセス ID。

[in] ui64ProxyAddress

オブジェクトへのプロキシ上のインターフェイスのアドレス。 ui64ProxyAddress は、64 ビット値へのポインターではなく、64 ビット値型と見なされ、デバッガー プロセス内のオブジェクトへのポインターではありません。 代わりに、このアドレスは ReadProcessMemory 関数に渡されます。

[out] pServerInformation

プロセス ID、スレッド ID、およびサーバーのアドレスを含む構造体。

戻り値

この関数は、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK
サーバー情報が正常に取得されました。
E_ACCESSDENIED
呼び出し元がアプリ コンテナーであるか、開発者ライセンスがインストールされていません。
RPC_E_INVALID_IPID
ui64ProxyAddress はプロキシを指していません。

解説

CoDecodeProxy 関数は COM API であり、ネイティブ デバッガーは、オブジェクトへのプロキシ上のインターフェイスが指定されたサーバー プロセスで COM インターフェイスの実装を見つけることができます。

また、 CoDecodeProxy 関数を使用すると、デバッガーはクロスアパートメント関数呼び出しを監視し、必要に応じてこのような呼び出しを失敗できます。

CoDecodeProxy 関数は、32 ビットまたは 64 ビットのプロセスから呼び出すことができます。 ui64ProxyAddress には、32 ビットまたは 64 ビットのアドレスを指定できます。 CoDecodeProxy 関数は、pServerInformation フィールドに 32 ビットまたは 64 ビットのアドレスを返します。 64 ビット アドレスを返す場合は、64 ビット プロセスからのみ、アドレスを ReadProcessMemory 関数に渡す必要があります。

必要条件

   
対象プラットフォーム Windows
ヘッダー combaseapi.h
Library Ole32.lib
[DLL] ComBase.dll

関連項目

ReadProcessMemory

ServerInformation