2009-11-24 16 views

Respuesta

5

aquí está una clave que es más larga que 255:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ DeviceClasses {53f5630d-b6bf-11d0-94f2-00a0c91efb8b} ##? # # ALMACENAMIENTO DE VOLUMEN #_ ?? _ USBSTOR disco # & VEN_LEXAR & PROD_USB_FLASH_DRIVE & REV_1100 # AANL1B891R5GCDV6 & 0 # {53F56307-B6BF -11D0-94F2-00A0C91EFB8B} # {53f5630d-b6bf-11d0-94f2-00a0c91efb8b} #

Encontré esto cuando estaba escribiendo una herramienta para buscar todas las claves en el registro. Creé un búfer de 256 que causó una excepción de corrupción de la pila.

Cuando traté de ver esta clave usando regedit noté que muestra una flecha que indica que hay subclaves pero no responderá cuando se haga clic en. Solo adivino la última tecla '#' porque otras teclas en esa área terminan con ella.

Cuando dupliqué el búfer, todo transcurrió sin problemas.

+1

Es un error de API. La documentación dice que el límite de longitud de clave es 255, pero RegCreateKeyEx acepta 256 y el terminador nulo no cuenta. Entonces, 257. Vaya. – Zatronium

Cuestiones relacionadas