使われているデバイスドライバーを列挙する

test52.gif
EnumDeviceDriversを利用するとWindowsに読み込まれているすべてのデバイスドライバーへのアドレスを取得できる。このアドレスに対してGetDeviceDriverFileNameを利用すると読み込まれているデバイスドライバーのファイル名を知ることができる。

依存環境:ATL
#include "atlstr.h"

#include <psapi.h>
#pragma	comment(lib,"psapi.lib")

//Windows NT 4.0以降対応
bool	Test(void)
{
	int			i;
	int			nSize;
	LPVOID*		ppDrivers;
	DWORD		dwNeeded;
	BOOL		bRet;
	TCHAR		pszDriverName[2048];
	CAtlString	strMessage;

	dwNeeded = 0;
	bRet = ::EnumDeviceDrivers(NULL,0,&dwNeeded);
	if(dwNeeded == 0)
		return	false;

	ppDrivers = (LPVOID*)new BYTE[dwNeeded];
	if(ppDrivers == NULL)
		return	false;
	bRet = ::EnumDeviceDrivers(ppDrivers,dwNeeded,&dwNeeded);

	nSize = dwNeeded / sizeof(LPVOID);
	for(i = 0; i < nSize; i++)
	{
		bRet = ::GetDeviceDriverFileName(ppDrivers[i],pszDriverName,2048);
		if(bRet == FALSE)
			continue;

		strMessage += pszDriverName;
		strMessage += _T("\n");
	}

	delete	ppDrivers;

	::MessageBox(NULL,strMessage,_T(""),MB_OK);

	return	true;
}

プロジェクトファイルをダウンロード


カテゴリー「システム情報」 のエントリー