COMBASE.DLL STATUS_ACCESS_VIOLATION
問題
think-cellの内部データシートを使用した後、COMBASE.DLL STATUS_ACCESS_VIOLATION
エラー メッセージが表示されました。

再現手順
-
PowerPointを開きます。
-
think-cell積み上げグラフを挿入: [挿入] → [think-cell] → [要素] → [積み上げ] → スライド上をクリックしてチャートを挿入します → 内部データシートが開きます([タスク マネージャー] →([詳細情報])→ [詳細])
-
内部データシートを閉じます → Excelのプロセスが [タスク マネージャー] で終了するまで待ちます →([詳細情報])→ [詳細])(最高30秒かかる場合があります) →
CRITICALWITHMSG COMBASE.DLL 10.0.18362.1645+0x1BEBBE: STATUS_ACCESS_VIOLATION
→ エラー メッセージを閉じた後、Excelプロセスが終了します
分析
これは、think-cell と SentinelOne の SentinelAgent がいっしょに有効であるときにのみ発生します。当社の開発者が問題を詳細に分析しました。SentinelAgent が Windows の CoGetInterceptor
関数の使用を開始し、think-cell が COM ContextSwitcher
を使用しているようです。2 つは一緒に動作しません。これは Windows のバグのようです。
CCtxChnl::OnCall
関数内の COMBASE.DLL
でクラッシュが発生します。64 ビット COMBASE.DLL 10.0.19041.1202 で問題を調査しました。次のアドレス オフセットとシンボル名は、このバージョンのものです。CCtxChnl::OnCall
のほとんどのコードは、null
である this->_pIFaceEntry->_pID
メンバーに対してロバストであるようです (たとえば、CStdWrapper::IsNAWrapper
は CCtxChnl::OnCall
から呼び出され、これを処理するコートがあります)。ただし、CCtxChnl::OnCall
での IsCallTracingEnabled
の呼び出しが true
を返す場合、コードは this->_pIFaceEntry->_pID
が null
であることを確認せずに this->_pIFaceEntry->_pID->_oid.Data1
にアクセスしようとします。これにより、アクセス違反が発生します (COMBASE.DLL!Imagebase+0x00000000001A77B0
)。これはバグのように見えます。
回避策
think-cellの顧客はSentinelOneから次の解決策を入手しました。
-
マシン用のSentinelOne パスフレーズを入手してください。
-
管理者としてCMDを実行してください。
cd "C:\Program Files\SentinelOne\Sentinel Agent <X.X.X.XXX\>"
sentinelctl config agent.relinking.com false -k "PASS PHRASE FROM STEP ONE"
sentinelctl config agent.relinking.com
(戻り値は次の通り:false
) -
5分待機して、マシンを再起動してください。
この解決策について追加の情報を希望される場合は、SentinelOneサポートに連絡し、次のチケットを使用してください。#652625.
解決策
当社では、問題を Microsoft に報告し、次のステップを待っています。問い合わせることができる Microsoft Office サポートの担当者がいる場合や、この問題について Microsoft にさらに問い合わせを行う場合は、Premier ケース番号 120081824003059 を使用してください。また、SentinelOne サポートにこの問題と Microsoft ケース番号を通知してください。