根据this link,我创建了Windows Processing Monitoring
和Windows Service Monitoring
DLL,它们将由主应用程序调用并在线程中使用它们运行(使用boost::thread
)以异步获取数据。考虑到这两个DLL都是由我的应用程序运行的。我的应用程序中出现了一个错误Failed to initialize security. Error code = 0x80010119
。并且在停止这些DLL的线程时,CoUninitialize
也会在它们中被调用。我在这里遇到了一个崩溃。这可能是因为后面的线程中的CoUninitialize
可能会尝试清除以前线程清除的内存。调用CoUninitialize时崩溃
如果是这样,我如何检查一个线程中的CoUninitialize
是否成功,以便我不会在另一个线程中调用它。
甚至允许多个初始化?库不应该这样做,调用代码应该保证初始化为先决条件。此外,这个问题没有什么tobwith WMI本身 – Basilevs 2015-02-23 12:10:43
我正在使用WMI API异步获取有关Win32_Process和Win32_Service的数据。在上面给出的链接中,有'CoInitializeEx'和'CoUninitialize'。由于我为这两个任务创建了DLL,因此调用这两个函数会导致崩溃。 – Pant 2015-02-23 14:00:47