WMI技术介绍和应用——查询驱动信息
? ? ? ??本文使用了《WMI技術(shù)介紹和應(yīng)用——使用VC編寫(xiě)一個(gè)半同步查詢WMI服務(wù)的類》中代碼做為基礎(chǔ)。
? ? ? ? 如何使用WMI查詢所有驅(qū)動(dòng)信息?(轉(zhuǎn)載請(qǐng)指明出于breaksoftware的csdn博客)
CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT * FROM Win32_SystemDriver" );recvnotify.ExcuteFun();
? ? ? ? 如何使用WMI查詢指定驅(qū)動(dòng)服務(wù)是否可以暫停?
CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT AcceptPause FROM Win32_SystemDriver WHERE NAME = 'wanarp'" );recvnotify.ExcuteFun();
? ? ? ? 可以見(jiàn)得我們指定的驅(qū)動(dòng)服務(wù)不允許暫停。我發(fā)現(xiàn)我當(dāng)前系統(tǒng)中沒(méi)有哪個(gè)驅(qū)動(dòng)服務(wù)可以暫停。
? ? ? ? 如何使用WMI查詢指定驅(qū)動(dòng)服務(wù)是否可以終止?
CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT AcceptStop FROM Win32_SystemDriver WHERE NAME = 'wanarp'" );recvnotify.ExcuteFun();
? ? ? ? wanarp這個(gè)驅(qū)動(dòng)服務(wù)是可以終止的,但是系統(tǒng)中海油很多不可以終止的驅(qū)動(dòng)服務(wù),比如usbscan(USB 掃描儀驅(qū)動(dòng)程序)和usbstor(USB 大容量存儲(chǔ)設(shè)備)等。
? ? ? ? 如何使用WMI查詢指定驅(qū)動(dòng)服務(wù)是否可以創(chuàng)建桌面窗口或者和桌面窗口通信?
CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT DesktopInteract FROM Win32_SystemDriver WHERE NAME = 'wanarp'" );recvnotify.ExcuteFun();
? ? ? ? 我枚舉了下我當(dāng)前的環(huán)境,沒(méi)有發(fā)現(xiàn)該屬性為TRUE的。
? ? ? ? 如何使用WMI查詢指定驅(qū)動(dòng)服務(wù)的驅(qū)動(dòng)文件路徑?
CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT PathName FROM Win32_SystemDriver WHERE NAME = 'wanarp'" );recvnotify.ExcuteFun();
? ? ? ? 如何使用WMI枚舉所有文件系統(tǒng)驅(qū)動(dòng)?
CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT Description FROM Win32_SystemDriver WHERE ServiceType = 'File System Driver'" );recvnotify.ExcuteFun();
? ? ? ? 該服務(wù)是什么類型,是由啟動(dòng)程序決定的。ServiceType的可選值有:"Kernel Driver"、"File System Driver"、"Adapter"、"Recognizer Driver"、"Own Process"、"Share Process"和"Interactive Process"。
? ? ? ? 如何使用WMI判斷指定驅(qū)動(dòng)服務(wù)是否啟動(dòng)?
CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT Started FROM Win32_SystemDriver WHERE NAME = 'wanarp'" );recvnotify.ExcuteFun();
? ? ? ? 如何使用WMI查詢指定驅(qū)動(dòng)服務(wù)的狀態(tài)?
CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT State FROM Win32_SystemDriver WHERE NAME = 'wanarp'" );recvnotify.ExcuteFun();
? ? ? ? State值還可以是:"Stopped"、"Start Pending"、"Stop Pending"、"Running"、"Continue Pending"、"Pause Pending"、"Paused"和"Unknown"。
? ? ? ? 如何使用WMI查詢指定驅(qū)動(dòng)服務(wù)的啟動(dòng)方式?
CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT StartMode FROM Win32_SystemDriver WHERE NAME = 'wanarp'" );recvnotify.ExcuteFun();
? ? ? ? 很有意思的一點(diǎn)時(shí),截止到2013年1月9日,MSDN上對(duì)該字段的描述使用的是對(duì)ErrorControl屬性的描述。MSDN也有如此低級(jí)的錯(cuò)誤!我遍歷了下系統(tǒng),發(fā)現(xiàn)該屬性可以有以下的值:System、Boot、Manual、Disabled和Auto。
? ? ? ? 更多信息可參考Win32_SystemDriver。
? ? ? 工程源碼見(jiàn)《WMI技術(shù)介紹和應(yīng)用——WMI概述》結(jié)尾。
總結(jié)
以上是生活随笔為你收集整理的WMI技术介绍和应用——查询驱动信息的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: WMI技术介绍和应用——查询环境变量
- 下一篇: WMI技术介绍和应用——查询文件夹信息