2009-11-24 68 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