2009-11-24 123 views

回答

5

这里的一个超过255的键:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \控制\ DeviceClasses {53f5630d-b6bf-11d0-94f2-00a0c91efb8b} ##?#STORAGE#VOLUME #_ ?? _ USBSTOR#DISK & VEN_LEXAR & PROD_USB_FLASH_DRIVE & REV_1100#AANL1B891R5GCDV6 & 0#{53F56307-B6BF -11D0-94F2-00A0C91EFB8B}#{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}#

我发现这个当我在写搜索注册表中的所有键的工具。我创建了一个256的缓冲区,导致了堆栈损坏异常。

当我试图用regedit查看这个键时,我注意到它显示了一个箭头,指示有子键但点击时不会响应。我只是猜测最后的'#'键,因为该区域的其他键以它结束。

当我将缓冲区加倍时,一切都很顺利。

+1

这是一个API错误。该文档说密钥长度限制是255,但RegCreateKeyEx接受256,并且空终止符不计数。那么,257.哎呀。 – Zatronium 2016-08-20 22:08:52