EnumDeviceDrivers デバイスドライバの列挙

Cの宣言:

BOOL EnumDeviceDrivers(
	LPVOID *LoadAddresses,
	DWORD LoadAddressSize,
	LPDWORD ReturnSize);

説明:

現在システムにロードされているデバイスドライバのアドレスを列挙し、結果をLoadAddressesに返す。

引数の意味は以下の通り。
LoadAddresses (OUT) 列挙結果のドライバのアドレスの一覧。
LoadAddressSize (IN) LoadAddressesのサイズ。
ReturnSize (OUT) LoadAddressesに設定されたデータのサイズ、または必要なサイズ。

戻り値は、関数の実行に成功したか否かを表す真偽値である。

Cのサンプル:

現在システムにロードされているデバイスドライバのベース名とファイル名の一覧を表示する。
/* デバイスドライバの一覧を表示 */
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); /* 結果を表示 */
	}
}

(original text:1999/01/11 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。