レジストリから物理メモリを取得したく(続)
DWORD dwType;
BYTE val[256];
TCHAR key_name[] = "\\DosDevices\\ :";
int posDriveLetter = sizeof( key_name ) - 3;
for( i='A'; i<='Z'; i++ ) {
key_name[ posDriveLetter ] = i;
DWORD val_len = 256;
// Aは"\"が帰ってきた
// Bで抜けてしまうので、ERROR_SUCCESSの中でやろう
ret = RegQueryValueEx( hKey, key_name, NULL, &dwType, val, &val_len );
if( ret == ERROR_SUCCESS ) {
char szDrive[4];
szDrive[0] = i;
szDrive[1] = '\0';
arRegDrive.Add( szDrive );
}
}
RegCloseKey( hKey );
// GetLogicalDrivesでHDDドライブを列挙
char szLetter[8];
DWORD nDrives = GetLogicalDrives();
int j = 0;
for( i=0; i<32; i++ ) {
if( (1 << i ) & nDrives ) {
sprintf( szLetter, "%c:\\", 'A'+i );
if( DRIVE_FIXED == GetDriveType( szLetter ) ) {
for( int j=0; j