博客日历 |
« March 2014 » |
日 |
一 |
二 |
三 |
四 |
五 |
六 |
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
|
|
|
日志归档 |
三月, 2006
四月, 2006
五月, 2006
六月, 2006
七月, 2006
十月, 2006
十一月, 2006
十二月, 2006
一月, 2007
二月, 2007
三月, 2007
四月, 2007
全部...
|
|
博客统计 |
分类: 9
文章: 204
评论: 0
标签: 3
附件: 103
引用: 0
今日访问: 7857
总访问量: 25028949 |
|
|
 |
win32k桌面堆栈分配失败 |
|
问题现象:
服务器运行一段时间以后,无法打开新的图形界面程序,很多图形程序的一些菜单或者按钮点击后无效,在系统日志中会看到win32k的警告,信息为桌面堆栈分配失败。
只要注销一下就可以解决问题,但是原因到底在哪里呢?
引用下文:
如果你跟我一样,有4G以上的RAM,又喜欢在桌面同时开一缸子程式节省来回切换的时间,你应该有遇到以下情境的经验: 明明RAM还有剩很多,电脑却开始不听始唤: 新程式的画面出不来、程式视窗关不掉(按右上角的X没用)、选单项目不见、视窗一片空白、右键选单出不来... 设法关掉一些程式后,记忆体用得少了,系统就又恢复正常 被这问题困扰很久,也请教不少专家,都没得到明确的解答,大部分的人刻板印象是: Windows在记忆体用很多时,就会怪怪的,不太稳... 而关掉程式释放一些Memory后就会恢复,似乎也印证了这个讲法有几分道理。 一直以来,我除了接受这个笼统且对Windows带点歧视的结论之外,也没有其他选择。直到几前天,我很幸运地在事件检视器中发现这个错误讯息: Failed to create a desktop due to desktop heap exhaustion. 用这个错误讯息Goggle到相关文章,我才搞懂,RAM再多,Desktop Head Size却是固定的,用完了就有可能导致桌面不正常,例如: 新视窗开不起来。推敲了一下,我觉得这个限制极有可能就是造成RAM剩很多,桌面操作却开始不正常的元凶!! 另外,我还找到了dheapmon这个好工具,可以测量Desktop Head的用量,就待下回出问题时,再来好好地剖析一下。 昨天,桌面开了一堆东西,想开Word档案,却发现Word只出现外框,文件开不出来。机不可失,兴奋地用颤抖的手开启dheapmon检查: C:\Program Files\Debugging Tools for Windows\DskHeapMon\x86>dheapmon Desktop Heap Information Monitor Tool (Version 8.1.2925.0) Copyright (c) Microsoft Corporation. All rights reserved. ------------------------------------------------------------- Session ID: 0 Total Desktop: ( 6848 KB - 10 desktops) WinStation\Desktop Heap Size(KB) Used Rate(%) ------------------------------------------------------------- WinSta0\Default 3072 99.8 WinSta0\Disconnect 64 4.0 WinSta0\Winlogon 128 8.2 Service-0x0-3e7$\Default 512 13.6 Service-0x0-3e4$\Default 512 3.2 Service-0x0-3e5$\Default 512 1.2 SAWinSta\SADesktop 512 0.8 __X78B95_89_IW\__A8D9S1_42_ID 512 0.4 Service-0x0-1eefc$\Default 512 1.2 Service-0x0-27435$\Default 512 1.4 ------------------------------------------------------------- Bingo!!! 命中要害,Heap用掉99.8%,关掉一些程式,降到86%后,系统就又正常了。由此,我可以确认这个困扰已久的问题,就是肇因于Desktop Heap耗尽。依著MS KB的说明(看英文版比较好,"Out of Memory" error message = 「 邮件答录机的记忆体 」 错误讯息,算你狠!!),调成SharedSection=1024,8192,512(原来的值是3072[注: x64 OS预设20M起跳],原本只敢小小加到4096,但看到有人开到8192也没事,加上这个数字调大的影响似乎只会影响同时连线的Terminal Service Session数,对我的工作机不是问题,索性就一口气开上8M),从此就可以尽情地开视窗了,再也不怕桌面疯疯颠颠了。 【參考資料】
�}外話,很多時候,所謂的"不穩"、"怪怪的"、"見鬼了",多半另有隱情,搞通了就不再詭異,對系統的掌握度也就更上一層樓了。不過,是否真能揪出背後的元凶,跟追問�}者的積極度(像遇到我這種不信邪的瘋子)、錯誤訊息的明確性(例如: 只知桌面不知使喚,沒有任何警告或提示)、有無適當的偵測工具(dheapmon好棒),都很有關係。在本案例,要不是無意發現Desktop Heap耗盡的錯誤訊息,我對此問�}的認知,大概永遠只停留在"Windows桌面開很多東西就會不穩"的層次(没給User明確的訊息,Windows背負這個污名也是活該吧XD)。原來,對茶包射手來說,�\氣也很重要!!
测试后继续...... |
|
Submitted
by 多情浪子 on 2014, March 12, 7:22 PM |
阅读全文 | 学习笔记 | 评论(11) | 引用(0) | 附件:0 | 点击:5498 |
|
 |
游戏不能同步的一个原因 |
|
今天接到一个客户电话,反映有个游戏运行后出错,双击直接运行,强制修复也是直接运行,简单来说就是不更新了。首先远程上之后就是常规检查:服务器客户机网络连接正常、服务器各项进程正常、游戏已经从三层修复、游戏已经重建索引,但是测试之后还是不行,别的游戏测试正常,无意之间查看客户机进程时发现出错的游戏目录下有个程序在后台运行,结束该进程,更新恢复正常。
总结如下:更新某个游戏时,该游戏目录下不能有程序在运行,否则更新程序自动结束改为调用。这是为了保证多开游戏时已经打开的游戏能够正常工作。以前自己做的VD早期时就有这种问题,后来才解决的,做个记录。 |
|
Submitted
by 多情浪子 on 2014, March 13, 1:10 AM |
阅读全文 | 原创文章 | 评论(11) | 引用(0) | 附件:0 | 点击:3158 |
|
 |
mdb防下载 |
|
第1步,打开记事本,在里面随便写一两句错误的ASP语句,例如写: call abasdfc,bcd b=3-"aabc" %> 我们知道,这儿的ASP代码中第一行出现了汉字,第二行调用一些并不存在的函数,第三行不用我说了,用数字减一个字符,每一行都有错误,当然,我这里只是给个例,只要有ASP错误就行,不一定要写三句,你写一句,两句,十句都行。 在记事本中写好后,我们把它保存成任意文本文件,如*.txt *.htm *.asp都可以。 第 2步,打开你的ACCESS数据库,在里面选择“通过设计创建表”,弹出设计表对话框,在“字段名称”中随便输入一个字符串,然后在右边的“数据类型”中选“OLE对象”,关闭这个对话框,提示你是否保存,点是,给这个表取名“<%no Down%>”,你也可以取其它的名字,这里最好把它用<%%>括起来。 第3步,我们建好了一个名为的表,打开此表,在这个表的白色数据框中点右键,选择“插入对象”,在插入对象对话框中选下面一个“由文件创建”,点下边的浏览,找到你刚才保存的那个文本文件,点确定,这时我们会发现刚才那个白色数据区域中多了一个“包”字,我们己经成功的将这个文本文件存在数据库中了。 第4步,保存你的数据库,再把扩展名改为*.asp的,呵呵,大功告成! 如果你在地址栏中直接输入该*.asp数据库的地址,哈哈,看到了吧?网页出错了,提示为: .... ASP语法错误 第X行 X列.. <%哈哈 如果你用“另存为”那种方法呢?出现提示:无法下载,未知目标数据!
自己测试的方法2
把一个表名改为<% b=a-3c%> |
|
Submitted
by 多情浪子 on 2014, March 12, 7:24 PM |
阅读全文 | 默认分类 | 评论(5) | 引用(0) | 附件:0 | 点击:3406 |
|
 |
添加特定访问的共享目录 |
|
有时候我们需要建立一个特定的共享目录,只有输入正确用户名和密码才能访问,或者有特定权限。
必要的要求有:提供共享的服务器验证模式,在管理工具-本地安全策略-本地策略-安全选项-本地帐户的共享和安全模型中必须改为本地用户以自己的身份验证,如果是仅来宾那么权限就是固定的,无论使用什么账号权限和guest用户都是相同的。
实现步骤如下:1、服务器上增加用户,如用户名/密码为:aaa/aaa,为了安全可以将增加的用户只加入guest组,这样的用户无法在控制台。
2、设置权限,如共享d盘,删除除administrators组外的所有权限,尤其是everyone和guests组,然后加入aaa用户,然后给定权限,如完全控制。
3、建立共享,如xxx,然后设置共享权限,删除默认的everyone,增加aaa用户,设置权限为完全控制。
访问端访问有两种方式:1、增加aaa用户并且密码和服务端相同,这样就能自动验证。
2、使用其它用户,然后通过命令行提供验证
net use x: \\test\xxx "aaa" /user:"aaa"可以映射
net use x: /delete删除原有验证 net use * /delete删除所有验证
一个简单的处理脚本:
@echo off taskkill /f /im GameSync.exe if exist Z: net use * /delete /y if not exist z: net use z: \\192.168.16.249\gameup$ "gameup" /user:"gameup" if exist z: start GameSync.exe |
|
Submitted
by 多情浪子 on 2014, March 13, 1:09 AM |
阅读全文 | 原创文章 | 评论(5) | 引用(0) | 附件:0 | 点击:3161 |
|
 |
SC中的start和type参数与注册表的对应值 |
|
使用sc创建服务时涉及到两个比较重要的参数,分别是type和start,它们的值可以是
type=----own, share, interact, kernel, filesys 关于建立服务的类型,选项值包括驱动程序使用的类型,默认是share。
start=----boot, system, auto, demand, disabled 关于启动服务的类型,选项值包括驱动程序使用的类型,默认是demand(手动)。
start类型在注册表中的对应值是:
system=1
boot=0
auto=2
demand=3
disabled=4 |
|
Submitted
by 多情浪子 on 2014, March 13, 1:06 AM |
阅读全文 | 学习笔记 | 评论(3) | 引用(0) | 附件:0 | 点击:2882 |
|
 |
CCDisk实现客户机加载多个盘符的方法 |
|
CCDisk是个非常不错的虚拟磁盘软件,但是在早期版本里无法实现支持客户端加载多个虚拟盘,是一个非常令人遗憾的事情,直到现在这个问题终于解决了,从1.8版本开始就可以轻松实现加载多个盘符了,实现方式有两种,分别是:
1、现在支持硬盘虚拟,可以使用整个物理磁盘,这样磁盘的分区就会带到下面客户端,可以实现多个盘符,这种方式的优点就是简单,无需额外设置,缺点就是只能支持一个物理磁盘虚拟出的盘符。
2、使用分区或者物理磁盘虚拟,但是在客户端管理中手动指定客户端所加载的虚拟盘,这样可以实现客户端加载任意指定的盘符,这种方式优点就是很自由,可以对客户机任意指定,缺点就是必须要单独一一添加各个客户机信息,目前还不能支持批量处理,以后的版本也许能支持。 |
|
Submitted
by 多情浪子 on 2014, March 13, 1:08 AM |
阅读全文 | 原创文章 | 评论(2) | 引用(0) | 附件:0 | 点击:3141 |
|
 |
Virtual PC命令行参数 |
|
Virtual PC2007 命令行参数
-帮助 - 显示相关的信息命令和参数 -全屏 - 使虚拟机运行于全屏模式 -窗口 - 使虚拟机运行于窗口模式 -还原 - 还原已最小化的虚拟机窗口 -最小化 - 最小化虚拟机窗口 -disableopt - 禁用直接执行最优化 -s3bitclip - 单击 S3 转换坐标到 12-位分解 -暂停 - 暂停当前正在运行的虚拟机 -继续 - 继续已暂停的虚拟机 -registervm - 注册虚拟机的配置文件 -startvm - 注册虚拟机的配置文件并启动新建的虚拟机 -pc - 在 Virtual PC 控制台中选中一台虚拟机 -启动 - 从 Virtual PC 控制台中启动虚拟机 -quiet - 虚拟机通常将会还原到没有启动系统之前的状态 -geometry - 更改虚拟机窗口的大小和位置 -disableclose - 禁用虚拟机的关闭按钮 -extnetworking - 强制使任何连接到虚拟机上的网络运行于仅外部网络模式 -setbiosno - 设置虚拟机 BIOS 的序列号 -setassettag - 设置虚拟机的机箱标签 -singlepc - 启动虚拟机而不显示 Virtual PC 控制台。 -使用主机磁盘缓存 - 所有虚拟磁盘 I/O 使用主机的磁盘缓存 |
|
Submitted
by 多情浪子 on 2014, March 13, 1:09 AM |
阅读全文 | 学习笔记 | 评论(2) | 引用(0) | 附件:0 | 点击:3262 |
|
 |
utf-8签名引起的血案 |
|
因为开发个简单的后台,要用到xml输出,最初测试一切正常,后来输出中文是出现乱码,经过google以后发现文件编码使用utf-8可以解决输入输出中文的问题。果然解决了,不过后来包含数据库连接文件后问题出现了,只要使用包含文件,在xml页面编辑前就会出现“?”,每包含一个文件就多出一个问号,导致xml解析出错,非常郁闷中,只能在每个文件里写上包含文件的内容。今天花了大把力气发现使用ansi编码可以使用包含,但是输出地xml内容包含中文时又会出错,在查找php指定输入编码时发现了一篇文章,地址是:http://www.lao8.org/html/8/2011-4-9/PHP_include_kongbai.html
我顿时恍然大悟,原来是utf-8签名惹的祸 |
|
Submitted
by 多情浪子 on 2014, March 12, 7:23 PM |
阅读全文 | 学习笔记 | 评论(1) | 引用(0) | 附件:0 | 点击:2936 |
|
|
|
|