RegQueryValue返回2,该如何处理

RegQueryValue返回2


void main()
{
char a[] = "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0";
char b[] = "ProcessorNameString";
char Buffer[260] = {0};
LONG len = 260;
HKEY hKey;
LONG ret = RegOpenKey(HKEY_LOCAL_MACHINE,a,&hKey);
if(ret!=ERROR_SUCCESS)
{
return ;
}
ret = RegQueryValue(hKey,b,Buffer,&len);
printf("%d\n",ret);
}


结果 ret == 2
为什么RegQueryValue会失败啊??

------解决方案--------------------
用RegOpenKeyEx和RegQueryValueEx函数代替RegOpenKey、RegQueryValue读取...