我正在寫一個非常長的註冊表鍵名(這是一個組合卸載程序列表),我認爲它太大了。什麼是Windows註冊表項名稱的最大長度?
鍵的最大尺寸是多少(以字符爲單位)? (Win xp,vista,7之中最小的最大值,因爲它需要在它們全部上工作)
我正在寫一個非常長的註冊表鍵名(這是一個組合卸載程序列表),我認爲它太大了。什麼是Windows註冊表項名稱的最大長度?
鍵的最大尺寸是多少(以字符爲單位)? (Win xp,vista,7之中最小的最大值,因爲它需要在它們全部上工作)
根據this support article,它是255個字符。
項名稱: 255個字符
值名稱: 16,383字符
值:可用內存(最新格式) 或1 MB(標準格式)
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724872%28v=vs.85%29.aspx
這裏的一個超過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查看這個鍵時,我注意到它顯示了一個箭頭,指示有子鍵但點擊時不會響應。我只是猜測最後的'#'鍵,因爲該區域的其他鍵以它結束。
當我將緩衝區加倍時,一切都很順利。
這是一個API錯誤。該文檔說密鑰長度限制是255,但RegCreateKeyEx接受256,並且空終止符不計數。那麼,257.哎呀。 – Zatronium 2016-08-20 22:08:52
實際上,根據你發送的鏈接是密鑰名稱:255,數值名稱:16383,實際值:1兆字節。 – Allanrbo 2013-09-10 15:35:57