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、およびサーバーのアドレスを含む構造体。
戻り値
この関数は、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
|
サーバー情報が正常に取得されました。 |
|
呼び出し元がアプリ コンテナーであるか、開発者ライセンスがインストールされていません。 |
|
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 |