2013-04-24 6 views
0

하나의 프로세스에서 실행 중이지만 다른 프로세스에서는 실행되지 않는 경우 다음과 같은 코드 줄에서 도움이되지 않는 "일반 오류"오류가 발생합니다. 나는 두 프로세스가 서로 다른 점을 알아낼 수 없다. 둘 다 32 비트를 관리자로 수행한다."Generic Failure"_com_error WbemScripting :: ISWbemServicesPtr :: ExecQuery를 호출하는 중

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

왜 그런가?

답변

0

COM 보안이 각 프로세스마다 다르게 설정 되었기 때문입니다. 이는 각 프로세스에서 CoInitializeSecurity에 대한 시작 호출에 의해 결정됩니다.

DLL은 일단 호출되면 재설정 할 수 없지만 현재 Wbem 연결에 대한 보안을 CoSetProxyBlanket으로 설정할 수 있습니다.

내가 쉽게 단지 2 단계 않고, 여기에 더 광범위한 예처럼, 그래서 COM 호출을 재 구현 제대로 WbemScripting를 통해이를 설정하는 방법을 알아낼 수

:

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