C:\Program Files\Support Tools>gflags /?

usage: GFLAGS [-r [<Flags>] |
[-k [<Flags>]] |
[-i <ImageFileName> [<Flags>]] |
[-i <ImageFileName> -tracedb <SizeInMb>] |
[-p <PageHeapOptions>] (use `-p ?' for help)

where: <Flags> is a 32 bit hex number (0x12345678) that specifies
one or more global flags to set.
-r operates on system registry settings.
-k operates on kernel settings of the running system.
-i operates on settings for a specific image file.

If only the switch is specified, then current settings
are displayed, not modified. If flags specified for -i
option are FFFFFFFF, then registry entry for that image
is deleted

The `-tracedb' option is used to set the size of the stack trace
database used to store runtime stack traces. The actual database
will be created if the `+ust' flag is set in a previous command.
`-tracedb 0' will revert to the default size for the database.

If no arguments are specified to GFLAGS then it displays
a dialog box that allows the user to modify the global
flag settings.

Flags may either be a single hex number that specifies all
32-bits of the GlobalFlags value, or it can be one or more
arguments, each beginning with a + or -, where the + means
to set the corresponding bit(s) in the GlobalFlags and a =
means to clear the corresponding bit(s). After the + or =
may be either a hex number or a three letter abbreviation
for a GlobalFlag. Valid abbreviations are:

soe - Stop On Exception
sls - Show Loader Snaps
dic - Debug Initial Command
shg - Stop on Hung GUI
htc - Enable heap tail checking
hfc - Enable heap free checking
hpc - Enable heap parameter checking
hvc - Enable heap validation on call
vrf - Enable application verifier
ptg - Enable pool tagging
htg - Enable heap tagging
ust - Create user mode stack trace database
kst - Create kernel mode stack trace database
otl - Maintain a list of objects for each type
htd - Enable heap tagging by DLL
dse - Disable stack extensions
d32 - Enable debugging of Win32 Subsystem
ksl - Enable loading of kernel debugger symbols
dps - Disable paging of kernel stacks
scb - Enable system critical breaks
dhc - Disable Heap Coalesce on Free
ece - Enable close exception
eel - Enable exception logging
eot - Enable object handle type tagging
hpa - Enable page heap
dwl - Debug WINLOGON
ddp - Disable kernel mode DbgPrint output
cse - Early critical section event creation
ltd - Load DLLs top-down
bhd - Enable bad handles detection
dpd - Disable protected DLL verification

All images with ust enabled can be accessed in the
USTEnabled key under 'Image File Options'.

C:\Program Files\Support Tools>

本地调用过程LPC是一种用于高速传递消息的跨进程通信设施。并不是通过windows API直接可以使用,是一种内部机制,只能用于windows操作系统逐渐。用到LPC的地方:
使用了远程过程调用RPC的windows应用程序,如果他们指定了本地RPC,用于在同一个系统上的进程之间进行通讯
一些windows API要向windows子系统进程发送消息
Winlogon通过LPC与本地安全认证服务器进程LSASS进行通信
安全应用监视器使用LPC和LSASS进程进行通讯。

查看LPC端口对象:winobj程序

64bit的windows如何运行win32的程序,使用的wow64的DLL来实现的:
wow64.DLL:管理线程和进程的创建,钩子程序异常分发,和ntoskrnl导出的基本系统调用,实现了文件重定向,注册表重定向和反射
WOW64CPU.DLL:为每个正在WOW64内部运行的线程,管理他们的32位CPU环境
WOW64WIN.DLL:截取了win32K.SYS导出的GUI调用。
关系如下:

在注册表中为什么HKEY等根键都是以H开头而不是以ROOT开头?
因为:所以指向KEY是windows的句柄Handle,参考technical reference to the windows 2000 registry帮助文件。

在HKLM\HARDWARE\DESCRIPTION\SYSTEM\CENTRALPROCESSOR\0下的PROCESSORNAMESTRING 可以让我的电脑属性看为牛B的CPU。

可以使用regmon来实现监控注册表,regmon实际上依赖一个设备驱动程序
现在和filemon一起被procmon替代了。

注册表的内部机理:实现注册表的执行体子系统是配置管理器,配置管理器是如何组织指标表的磁盘文件的呢?是通过一个hive 存储巢穴来做到的。
对于本机来说对应关系如下:

系统修复和还原是通过regedit 的load hive来实现的。相当于恢复注册表

Hive的大小是有限制的。在XP和2003上,hive的最高达到200M,或者物理内存的1/4.
WINDOWS 2000中设计了换页池的概念,大小限制376M。而在XP和2003上,registry size中没有显示,因为配置管理器不适用换页池。
查看HIVE的内存使用量:

0: kd> !reg hivelist

-------------------------------------------------------------------------------------------------------------
| HiveAddr |Stable Length|Stable Map|Volatile Length|Volatile Map|MappedViews|PinnedViews|U(Cnt)| BaseBlock | FileName
-------------------------------------------------------------------------------------------------------------
| e270ab60 | 33000 | e270abc0 | 0 | 00000000 | 0 | 13 | 0| e220e000 | \Microsoft\Windows\UsrClass.dat
| e2571378 | 23f000 | e222a000 | 1000 | e25714b4 | 76 | 24 | 0| e220b000 | s and Settings\jamin\ntuser.dat
| e21a0b60 | 1000 | e21a0bc0 | 0 | 00000000 | 1 | 0 | 0| e227a000 | \Microsoft\Windows\UsrClass.dat
| e22aa008 | 39000 | e22aa068 | 1000 | e22aa144 | 15 | 0 | 0| e22ad000 | ettings\LocalService\ntuser.dat
| e20edb60 | 1000 | e20edbc0 | 0 | 00000000 | 1 | 0 | 0| e2113000 | \Microsoft\Windows\UsrClass.dat
| e2103558 | 39000 | e21035b8 | 1000 | e2103694 | 13 | 2 | 0| e1eaa000 | tings\NetworkService\ntuser.dat
| e16b7b60 | 27df000 | e16fe000 | c000 | e16b7c9c | 256 | 5 | 0| e16b9000 | emRoot\System32\Config\SOFTWARE
| e16bf008 | 7000 | e16bf068 | 0 | 00000000 | 2 | 0 | 0| e16c1000 | \SystemRoot\System32\Config\SAM
| e162e820 | d000 | e162e880 | 1000 | e162e95c | 4 | 0 | 0| e16ac000 | emRoot\System32\Config\SECURITY
| e16bcb60 | 3d000 | e16bcbc0 | 0 | 00000000 | 16 | 0 | 0| e16ae000 | temRoot\System32\Config\DEFAULT
| e143d3c0 | d000 | e143d420 | 4000 | e143d4fc | 0 | 0 | 0| e1440000 | <NONAME>
| e1036b60 | 3f7000 | e1038000 | 26000 | e1036c9c | 141 | 29 | 0| e1037000 | SYSTEM
| e1024b60 | 1000 | e1024bc0 | 1000 | e1024c9c | 0 | 0 | 0| e102f000 | <NONAME>
-------------------------------------------------------------------------------------------------------------
在Windows\SYSTEM32\CONFIG中有一个隐藏文件,system.SAV是SYSTEM的HIVE的一个版本,是初始拷贝,是从SETUP的ISO上拷贝来的。

在windows2000中相同路径,有一个非隐藏文件system.ALT是一个替补,在WINDOWS XP/2003后面没有

Windows服务类似于unix的守护进程,服务有3个部分组成:服务应用,服务控制程序SCP,服务控制管理器SCM

原文链接: http://blog.csdn.net/jaminwm/article/details/7249303

转载于:https://my.oschina.net/chen106106/blog/45182

《深入理解Windows操作系统》笔记5相关推荐

  1. 深入解析Windows操作系统笔记——CH1概念和术语

    1.概念和工具 本章主要介绍Windows操作系统的关键概念和术语 1.概念和工具... 1 1.1操作系统版本... 1 1.2基础概念和术语... 2 1.2.1Windows API2 1.2. ...

  2. 《深入理解Windows操作系统》笔记4

    分发或者延迟过程中调用中断(DPC):但一个线程不能继续运行的时候,比如因为线程已经终止了或者它主动进入到等待状态,内核就会直接调用分发器,从而直接导致一个环境切换.然后有时候,内核检测已经深入到了许 ...

  3. 《深入理解Windows操作系统》笔记2

    在SDK中有一个工具依赖性查找工具depends.exe 可以看到进程的子系统类型.发现这个工具和VS6企业版中的Microsoft Visual Studio 6.0 Tools中的Depends( ...

  4. 随笔分类 - 深入解析Windows操作系统笔记

    https://www.cnblogs.com/Amaranthus/category/578353.html

  5. 《深入解析Microsoft Windows操作系统》译序

    深入解析Microsoft Windows操作系统 Microsoft® Windows® Internals (Fourth Edition)中文版 适用于Microsoft Windows Ser ...

  6. 操作系统笔记——Linux系统实例分析、Windows系统实例分析

    文章目录 传送门 Linux进程管理 Linux进程组成 Linux进程链表 Linux进程控制 用户进程创建与撤销 0,1,2号进程 Linux进程切换 Linux进程调度 内核同步 Linux储存 ...

  7. [笔记]深入解析Windows操作系统《三》系统机制

    文章目录 前言 第三章 系统机制 3.1 陷阱分发 实验:将系统调用号映射到函数和参数 实验:查看系统服务的行为 选择"System"对象,再选择"System Call ...

  8. 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第一章 概念和工具(二)

    1.2   基础概念和术语(续) 内核模式和用户模式 l         内核模式和用户模式是处理器的概念,而不是操作系统的概念. l         用户代码运行在用户模式下,操作系统代码运行在内核 ...

  9. 《深入解析Windows操作系统》笔记第1章

    在看第一章,做了几个实验,书上的东西我就不copy了 实验1 查看进程树 用tlist工具(在Windows调试工具箱中) 在命令行下打开tlist工具 E:\Program Files\Debugg ...

  10. 【王道考研】操作系统 笔记 第一章

    特此鸣谢王道考研 本文参考王道考研的相关课程 若有侵权请联系,立删 其余笔记链接: [王道考研]操作系统笔记 第一章_才疏学浅743的博客-CSDN博客 [王道考研]操作系统 笔记 第二章上 进程调度 ...

最新文章

  1. 寒冬中的半个月前端面试
  2. 分布式监控报警平台Centreon之:Centreon依赖安装
  3. Majority Element(169) Majority Element II(229)
  4. atmega8 例程:T1定时器 CTC模式 方波输出
  5. 通过bios修改服务器ipmi配置,Dell服务器之配置ipmi远程console管理
  6. 1227讲解(递归deng)
  7. Android 开发环境配置问题
  8. Flash MX 2004 基础知识
  9. 第十七届振兴杯计算机程序设计员(云计算平台运维与开发)决赛
  10. CGAL学习之路(三):CGAL读写点云
  11. MySQL-- 统计函数
  12. 软件测试工具常用的都有哪些?
  13. 实验报告 三密码破解技术
  14. 面向三种典型程序语言的中小学计算思维课堂设计研究
  15. Second-Order Cone Programming(SOCP) 二阶锥规划
  16. Linux分区命令-parted
  17. 小型企业服务器型号齐全,【一般小企业内部使用什么样子的服务器性价比比较高?】...
  18. Mutt+Msmtp如何实现邮箱报警(阿里云)
  19. android代码里切换横竖屏,Android横竖屏切换
  20. echarts:从github及其镜像下载china.js和china.json

热门文章

  1. CAS单点登录及处理流程介绍(一)
  2. MM32F3277替换STM32
  3. 直播平台,直播TV介绍,对比,下载等相关信息
  4. 人工智能Java SDK: BIGGAN 图像自动生成
  5. IBM 亮相HIMSS 2010 亚太区博览会
  6. python相关性系数显著性检验_线性回归模型中系数趋势显著性的Statsmodels-Wald检验...
  7. axios官方文档——中文版
  8. javascript的模块化编程
  9. python希尔伯特变换_Hilbert变换提取信号特征的Python实现
  10. graphpad做单因素方差分析_graphpad prism 8.0:如何进行单因素方差分析