zoukankan      html  css  js  c++  java
  • 注册表

    注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用。这些作用包括了软、硬件的相关配置和状态信息,比如注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据等,联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等。

    具体来说,在启动Windows时,Registry会对照已有硬件配置数据,检测新的硬件信息;系统内核从Registry中选取信息,包括要装入什么设备驱动程序,以及依什么次序装入,内核传送回它自身的信息,例如版权号等;同时设备驱动程序也向Registry传送数据,并从Registry接收装入和配置参数,一个好的设备驱动程序会告诉Registry它在使用什么系统资源,例如硬件中断或DMA通道等,另外,设备驱动程序还要报告所发现的配置数据;为应用程序或硬件的运行提供增加新的配置数据的服务。配合ini文件兼容16位Windows应用程序,当安装-个基于Windows 3.x的应用程序时,应用程序的安装程序Setup像在windows中-样创建它自己的INI文件或在win.ini和system.ini文件中创建入口;同时windows还提供了大量其他接口,允许用户修改系统配置数据,例如控制面板、设置程序等。

    如果注册表受到了破坏,轻则使windows的启动过程出现异常,重则可能会导致整个windows系统的完全瘫痪。因此正确地认识、使用,特别是及时备份以及有问题恢复注册表对windows用户来说就显得非常重要。[2]

    注册表的数据结构

    注册表由键(也叫主键或称"项")、子键(子项)和值项构成。一个键就是分支中的一个文件夹,而子键就是这个文件夹当中的子文件夹,子键同样它也是一个键。一个值项则是一个键的当前定义,由名称、数据类型以及分配的值组成。一个键可以有一个或多个值,每个值的名称各不相同,如果一个值的名称为空,则该值为该键的默认值。

    在注册表编辑器(regedit.exe)中,数据结构显示如下,其中,command键是open键的子键,(默认)表示该值是默认值,值名称为空,其数据类型为REG_SZ,数据值为%systemroot%/system32/notepad.exe"%1数据类型。

    注册表的数据类型主要有以下四种:显示类型(在编辑器中)数据类型说明

    REG_SZ:字符串:文本字符串

    REG_MULTI_SZ:多字符串值:含有多个文本值的字符串

    REG_BINARY:二进制数:二进制值,以十六进制显示,

    REG_DWORD:双字值;一个32位的二进制值,显示为8位的十六进制值。

    注册表的损坏和解决方法

    注册表可能出现的问题。

    如果注册表受到严重的损害,存取硬件和软件可能会受到很大的限制,甚至系统不能启动。可能因为一个很小的问题,一个应用程序将不能正常的运行,或者运行的不稳定。

    当注册表在运行时是受保护的,所以它不可能被复制,删除,或者改变内容,除非经过一个"验证过的"程序(比如安装程序,注册表编辑工具,和域用户管理器改变安全策略和浏览器等)。由于这些保护,注册表是十分安全的,但是并不是完全能防止的。问题仍会发生,你需要作好认识它们的准备来应付这些问题,

  • 相关阅读:
    把Asp.net Core程序代码部署到Ubuntu(不含数据库)
    2019周笔记(3.11-3.16)
    利用StackExchange.Redis和Log4Net构建日志队列
    Windows环境下安装配置Mosquitto服务及入门操作介绍
    2019周笔记(2.25-3.01)(压缩数据库)
    2019周笔记(2.18-2.23)
    WinForm客户端限速下载(C#限速下载)
    2019周笔记(2.14-2.17)(聚集索引、非聚集索引)
    高并发场景下秒杀项目静态锁的使用疑问
    线性结构队列以及应用(上)
  • 原文地址:https://www.cnblogs.com/kdp0213/p/8555486.html
Copyright © 2011-2022 走看看