我想知道为什么注册表项名称的最大长度为255个字符,而服务名称的最大长度为256,这背后的基本原理是什么?
(注意那些长度规范没有\ 0终止符。)
由于服务控制管理器将其服务信息存储在注册表中,这很奇怪。
另外我自己的测试显示确实可以创建:
CreateService
API,名称为256个字符的服务。RegCreateKeyEx
API,名称为256个字符的注册表项。这种现象"他人也观察到,例如如此blogpost中所述。
这两个限制都记录在Microsoft的文档站点:
" Registry Elements Size Limits"
密钥名称:255个字符
作为CreateService
Windows API
pServiceName :要安装的服务的名称。最大字符串长度为256个字符。 [...]