0

あるプロセスで実行しているときに次のコード行から役に立たない "Generic Failure" エラーがスローされますが、別のプロセスではスローされません。プロセス間の違いがわかりません (どちらも管理者として 32 ビットで実行されます)。

WbemScripting::ISWbemObjectSetPtr hdobjects = services->ExecQuery("Select * from Win32_LogicalDisk","WQL",0x10,NULL);

理由はありますか?

4

1 に答える 1

0

これは、各プロセスで COM セキュリティの設定が異なるためです。これは、 への起動呼び出しによって各プロセスで決定されますCoInitializeSecurity

DLL は、一度呼び出されるとこれをリセットできませんが、現在の Wbem 接続のセキュリティを と設定できますCoSetProxyBlanket

WbemScripting を使用してこれを正しく設定する方法を簡単に理解できなかったので、COM 呼び出しを使用して再実装しました。これは、ここの広範な例のように、手順 2 を除いてのみです。

http://msdn.microsoft.com/en-gb/library/windows/desktop/aa390423(v=vs.85).aspx

于 2013-04-24T13:23:17.993 に答える