デバイスドライバを列挙するにはEnumDeviceDrivers()関数を使います。(戻る)
プロトタイプ宣言
BOOL EnumDeviceDrivers( LPVOID *lpImageBase, // ロードアドレスの配列 DWORD cb, // ロードアドレスの配列サイズ LPDWORD lpcbNeeded // 返されたバイト数 ); DWORD GetDeviceDriverBaseName( LPVOID ImageBase, // ロードアドレス LPTSTR lpBaseName, // バッファ領域 DWORD nSize // バッファ領域のサイズ ); DWORD GetDeviceDriverFileName( LPVOID ImageBase, // ロードアドレス LPTSTR lpFilename, // バッファ領域 DWORD nSize // バッファ領域のサイズ );
サンプル
#include <stdio.h> #include <windows.h> #include <psapi.h> // Psapi.Lib // メイン関数 int main( void ) { LPVOID Address[ 1024 ]; TCHAR szFileName[ 1024 ]; TCHAR szBaseName[ 1024 ]; DWORD dwSize; DWORD dwMax; DWORD dwNow; // デバイスドライバのロードアドレスを取得 EnumDeviceDrivers( Address, sizeof(Address), &dwSize ); // 取得した数を求める dwMax = (dwSize / sizeof(LPVOID)); // デバイスドライバの一覧表示 for ( dwNow = 0 ; dwNow < dwMax ; dwNow++ ){ GetDeviceDriverBaseName( Address[dwNow], szBaseName, sizeof(szBaseName) ); GetDeviceDriverFileName( Address[dwNow], szFileName, sizeof(szFileName) ); printf( "%3d: %-30s %s\n", (dwNow + 1), szBaseName, szFileName ); } return 0; }
- ヘッダファイルとしてpsapi.hをインクルードして下さい。
- インポートライブラリとしてPsapi.Libをリンクして下さい。
関連記事
- プロセスIDの列挙
- 全プロセスの列挙
- モジュールの列挙
- 全モジュールの列挙
- デバイスドライバの列挙
- コンピュータ名の列挙
- オブジェクト名の列挙
- カウンタとインスタンスの列挙
※コメント投稿者のブログIDはブログ作成者のみに通知されます