BOOL EnumDeviceDrivers( LPVOID *LoadAddresses, DWORD LoadAddressSize, LPDWORD ReturnSize);
引数の意味は以下の通り。
| LoadAddresses | (OUT) | 列挙結果のドライバのアドレスの一覧。 |
| LoadAddressSize | (IN) | LoadAddressesのサイズ。 |
| ReturnSize | (OUT) | LoadAddressesに設定されたデータのサイズ、または必要なサイズ。 |
戻り値は、関数の実行に成功したか否かを表す真偽値である。
/* デバイスドライバの一覧を表示 */
void DispDrivers()
{
LPVOID Drivers[1000]; /* ドライバのロードアドレスの一覧 */
DWORD ReturnSize; /* ドライバの取得結果のサイズ */
DWORD DriverNum; /* 取得したドライバの数 */
DWORD i;
char BaseName[1000]; /* ドライバのベース名 */
char FileName[1000]; /* ドライバのファイル名 */
/* ドライバの一覧と数を取得 */
EnumDeviceDrivers(Drivers, sizeof(Drivers), &ReturnSize);
DriverNum = ReturnSize / sizeof(LPVOID);
/* それぞれのベース名とファイル名を表示 */
for(i=0; i<DriverNum; i++) {
GetDeviceDriverBaseName(Drivers[i], BaseName, 1000); /* ベース名を取得 */
GetDeviceDriverFileName(Drivers[i], FileName, 1000); /* ファイル名を取得 */
printf("ベース名: '%s', ファイル名: '%s'\n", BaseName, FileName); /* 結果を表示 */
}
}