Usuário com melhor resposta
Como resolvo o problema de identificação de memórias tipo DDR3 no WMI do Windows?

Pergunta
-
Ao tentar indentificar os tipos de memórias no Windows (XP, WIN2003, WIN7, Win2008) verifiquei que no WIN32_PhysicalMemory Class a identificação de padrões de memória só vai até o tipo (value) 21 onde o mesmo é igual a DDR2, não tendo nenhuma identificação para o tipo de memória DDR3 que no caso seria "meaning" padrão igual value 22, não sendo possível identificar este tipo de memória no Windows. Exsite algum tipo de fix ou atualização disponível para solução deste problema.
- Movido AndreAlvesLimaModerator quarta-feira, 9 de março de 2011 17:50 (De:Certificação Microsoft - Geral)
Respostas
-
Gfaria, parece que não existe ainda um fix para isso, normlamente quando o pessoal roda algum tipo de script em cima do WIN32_PhysicalMemory , eles tem colocado umas cases no caso de DDR3, veja um exemplo:
// Memory Information
q = new ObjectQuery("SELECT * FROM Win32_PhysicalMemory");
p = new ManagementObjectSearcher(q);
i = 0; s = "";
foreach (ManagementObject mm in p.Get()) {
i += (long)mm["Capacity"];
if (s == "") {
UInt16 mt = (UInt16)mm["MemoryType"];
switch (mt) {
case 20: s = "DDR"; break;
case 21: s = "DDR2"; break;
default:
if(mt >= 1 && mt <= 19) s = "Unknown"; // non-DDR memory
else s = "DDR3?"; // Assume unknown memory (case 0, and 22+) to be DDR3
break;Veja que ele declara para retornar como UNKNOW MEMORY, ai ele ja sabe que é DDR3.
Mais acho q nao tme fix pra isso ainda.
Na verdade se vc consultar a tabela de codigo oficila desse arquivo vc vai ver que nem cosnta o value 22 que seria referente a DDR3: http://msdn.microsoft.com/en-us/library/aa394347%28VS.85%29.aspx
Seria de repente interessante vc postas essa sua mesma duvida no forum do MSDN:
http://social.msdn.microsoft.com/Forums/pt-br/categories/
Diego Piffaretti- www.mundotecnologico.net- Sugerido como Resposta AndreAlvesLimaModerator quarta-feira, 9 de março de 2011 17:50
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 25 de março de 2011 16:43
Todas as Respostas
-
-
Gfaria, parece que não existe ainda um fix para isso, normlamente quando o pessoal roda algum tipo de script em cima do WIN32_PhysicalMemory , eles tem colocado umas cases no caso de DDR3, veja um exemplo:
// Memory Information
q = new ObjectQuery("SELECT * FROM Win32_PhysicalMemory");
p = new ManagementObjectSearcher(q);
i = 0; s = "";
foreach (ManagementObject mm in p.Get()) {
i += (long)mm["Capacity"];
if (s == "") {
UInt16 mt = (UInt16)mm["MemoryType"];
switch (mt) {
case 20: s = "DDR"; break;
case 21: s = "DDR2"; break;
default:
if(mt >= 1 && mt <= 19) s = "Unknown"; // non-DDR memory
else s = "DDR3?"; // Assume unknown memory (case 0, and 22+) to be DDR3
break;Veja que ele declara para retornar como UNKNOW MEMORY, ai ele ja sabe que é DDR3.
Mais acho q nao tme fix pra isso ainda.
Na verdade se vc consultar a tabela de codigo oficila desse arquivo vc vai ver que nem cosnta o value 22 que seria referente a DDR3: http://msdn.microsoft.com/en-us/library/aa394347%28VS.85%29.aspx
Seria de repente interessante vc postas essa sua mesma duvida no forum do MSDN:
http://social.msdn.microsoft.com/Forums/pt-br/categories/
Diego Piffaretti- www.mundotecnologico.net- Sugerido como Resposta AndreAlvesLimaModerator quarta-feira, 9 de março de 2011 17:50
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 25 de março de 2011 16:43
-
Prezado,
Para direcionarmos corretamente a sua thread, peço que informe qual a linguagem / ambiente de programação você está utilizando...
Obrigado pelo apoio...
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima