能力值:
( LV2,RANK:10 )
|
-
-
301 楼
usb摄像头不能启动
|
能力值:
( LV3,RANK:30 )
|
-
-
302 楼
这个牛啊~~~
|
能力值:
( LV3,RANK:20 )
|
-
-
303 楼
乖乖,,,,真是大牛
|
能力值:
( LV2,RANK:10 )
|
-
-
304 楼
用用,试一试效果如果
|
能力值:
( LV2,RANK:10 )
|
-
-
305 楼
看来 很多人 都遇到这个bugl了
|
能力值:
( LV2,RANK:10 )
|
-
-
306 楼
已更新版本 直接下載 copy 貼上
http://www.mediafire.com/?dd74m0kx1qzir2b
原Po 在Hal.dll 上已解決 USB 問題
實測8g ram 使用7g ram 無誤
另提供 參考文件
http://www.hard-soft.se/hardsoft/home
及
void __userpurge MmAddPhysicalMemoryEx(int a1<ebx>, int a2<edi>, int a3<esi>, int a4, int a5, int a6)
{
signed __int64 v6; // qax@8
ULONG v7; // ebx@8
unsigned int v8; // esi@8
int v9; // ecx@8
ULONG_PTR v10; // eax@14
char v11; // zf@16
PVOID v12; // edi@21
PVOID v13; // eax@23
int v14; // ecx@23
int v15; // edx@24
ULONG v16; // ecx@24
int v17; // edx@25
unsigned int v18; // ecx@31
int v19; // ecx@31
unsigned int v20; // ecx@31
ULONG_PTR v21; // edi@37
unsigned __int32 v22; // edx@39
int v23; // ecx@39
int v24; // ebx@39
int v25; // eax@39
int v26; // edx@39
int v27; // ecx@43
PVOID v28; // eax@43
int v29; // edx@43
int v30; // ecx@56
char *v31; // eax@57
int v32; // ecx@60
int v33; // edi@65
int v34; // edx@68
int v35; // [sp-Ch] [bp-30h]@8
int v36; // [sp-8h] [bp-2Ch]@3
int v37; // [sp-4h] [bp-28h]@2
__int16 v38; // [sp+0h] [bp-24h]@37
int v39; // [sp+4h] [bp-20h]@37
int BugCheckParameter2; // [sp+8h] [bp-1Ch]@31
unsigned int BugCheckParameter2a; // [sp+8h] [bp-1Ch]@44
char *v42; // [sp+Ch] [bp-18h]@23
unsigned int v43; // [sp+Ch] [bp-18h]@31
signed int v44; // [sp+Ch] [bp-18h]@43
PVOID P; // [sp+10h] [bp-14h]@21
void *v46; // [sp+14h] [bp-10h]@21
int v47; // [sp+18h] [bp-Ch]@23
unsigned int v48; // [sp+18h] [bp-Ch]@30
signed int v49; // [sp+1Ch] [bp-8h]@6
int v50; // [sp+1Ch] [bp-8h]@31
signed int v51; // [sp+1Ch] [bp-8h]@43
ULONG StartingIndex; // [sp+20h] [bp-4h]@8
char v53; // [sp+2Fh] [bp+Bh]@23
int v54; // [sp+34h] [bp+10h]@8
if ( *(_DWORD *)a4 & 0xFFF
|| (v37 = a3, *(_DWORD *)a5 & 0xFFF)
|| (v36 = a2, a6)
|| !MmDynamicPfn
|| ((*(_DWORD *)((((unsigned int)MmPfnDatabase >> 18) & 0x3FF8) - 1067450368) & 0x81) != 129 ? (v49 = 0) : (v49 = 1),
v35 = a1,
HIDWORD(v6) = *(_DWORD *)(a5 + 4),
v7 = *(_QWORD *)a4 >> 12,
LODWORD(v6) = *(_DWORD *)a5,
StartingIndex = v7,
v8 = v6 >> 12,
v9 = v8 + v7,
v54 = v8 + v7,
v7 >= v8 + v7) )
goto LABEL_70;
if ( v9 - 1 > (unsigned int)MmHighestPossiblePhysicalPage )
{
v54 = MmHighestPossiblePhysicalPage + 1;
v9 = MmHighestPossiblePhysicalPage + 1;
v8 = MmHighestPossiblePhysicalPage + 1 - v7;
}
if ( v7 >= v9 )
goto LABEL_70;
if ( ExVerifySuite(DataCenter) == 1 )
{
v10 = 0x1000000u;
}
else
{
if ( MmProductType == 0x690057 || (v11 = ExVerifySuite(Enterprise) == 1, v10 = 0x800000u, !v11) )
v10 = 0x100000u;
}
if ( MmNumberOfPhysicalPages + v8 > v10 )
{
v8 = v10 - MmNumberOfPhysicalPages;
v54 = v10 - MmNumberOfPhysicalPages + v7;
}
if ( v7 >= v54 )
goto LABEL_70;
ExAcquireFastMutex(&MmDynamicMemoryMutex);
P = MmPhysicalMemoryBlock;
v12 = ExAllocatePoolWithTag(0, 8 * *(_DWORD *)MmPhysicalMemoryBlock + 24, 0x20206D4Du);
v46 = v12;
if ( !v12 )
{
ExReleaseFastMutex(&MmDynamicMemoryMutex);
goto LABEL_70;
}
v47 = 0;
MmLockPagableSectionByHandle(ExPageLockHandle);
v53 = KeAcquireQueuedSpinLock(2, v35);
v13 = MmPhysicalMemoryBlock;
v14 = (int)((char *)MmPhysicalMemoryBlock + 8);
v42 = (char *)MmPhysicalMemoryBlock + 8;
do
{
v15 = *(_DWORD *)(v14 + 4);
v16 = *(_DWORD *)v14;
if ( v15 )
{
v17 = v16 + v15;
if ( v7 >= v16 )
{
if ( v7 < v17 )
goto LABEL_36;
}
else
{
if ( v54 > v16 )
goto LABEL_36;
}
}
++v47;
v14 = (int)(v42 + 8);
v42 += 8;
}
while ( v47 != *(_DWORD *)MmPhysicalMemoryBlock );
v48 = 0;
if ( !v49 )
{
v18 = (MmPfnDatabase + 28 * v7) >> 9;
v19 = (v18 & 0x7FFFF8) - 1073741824;
v50 = v19;
BugCheckParameter2 = v19;
v20 = (((unsigned int)(28 * v54 + MmPfnDatabase - 1) >> 9) & 0x7FFFF8) - 1073741824;
v43 = (((unsigned int)(28 * v54 + MmPfnDatabase - 1) >> 9) & 0x7FFFF8) - 1073741824;
if ( v50 <= v20 )
{
do
{
v17 = 0;
if ( !(*(_DWORD *)v50 & 1) )
++v48;
v50 += 8;
}
while ( v50 <= v20 );
if ( MmAvailablePages < v48 )
{
LABEL_36:
LOBYTE(v17) = v53;
KeReleaseQueuedSpinLock(2, v17, v36, v37);
MmUnlockPagableImageSection(ExPageLockHandle);
ExReleaseFastMutex(&MmDynamicMemoryMutex);
ExFreePoolWithTag(v12, 0);
goto LABEL_70;
}
}
v21 = BugCheckParameter2;
v38 = ValidKernelPte;
v39 = dword_47AD64;
while ( v21 <= v20 )
{
if ( !(*(_DWORD *)v21 & 1) )
{
v22 = __readfsdword(32) + 1216;
v23 = *(_DWORD *)(*(_DWORD *)(__readfsdword(32) + 1228) + 8) | MmSecondaryColorMask & (*(_DWORD *)v22)++;
v24 = MiRemoveZeroPage(v23);
MiInitializePfn(v24, v21, 0);
v24 &= 0x3FFFFFFu;
v25 = v38 & 0xFFF | (v24 << 12);
v26 = v39 & 0xFFFFFFC0 | ((unsigned __int64)(unsigned int)v24 >> 20);
v7 = StartingIndex;
v39 = v26;
*(_DWORD *)(v21 + 4) = v26;
v20 = v43;
v38 = v25;
*(_DWORD *)v21 = v25;
}
v21 += 8;
}
MmResidentAvailablePages -= v48;
v12 = v46;
v13 = MmPhysicalMemoryBlock;
}
*(_DWORD *)v12 = *(_DWORD *)v13 + 1;
v27 = 0;
v51 = 0;
v44 = 0;
*((_DWORD *)v12 + 1) = v8 + *((_DWORD *)MmPhysicalMemoryBlock + 1);
v28 = MmPhysicalMemoryBlock;
v29 = (int)((char *)v12 + 8);
while ( 1 )
{
BugCheckParameter2a = *((_DWORD *)v28 + 2 * v27 + 2);
if ( !v51 )
{
v7 = StartingIndex;
if ( StartingIndex == *((_DWORD *)v28 + 2 * v27 + 2) + *((_DWORD *)v28 + 2 * v27 + 3) )
{
*((_DWORD *)v28 + 2 * v27 + 3) += v8;
P = v46;
*((_DWORD *)MmPhysicalMemoryBlock + 1) += v8;
v30 = v27 + 1;
if ( (unsigned int)v30 < *(_DWORD *)MmPhysicalMemoryBlock )
{
v31 = (char *)MmPhysicalMemoryBlock + 8 * v30;
if ( v8 + StartingIndex == *((_DWORD *)v31 + 2) )
{
*((_DWORD *)v31 + 1) += *((_DWORD *)v31 + 3);
--*(_DWORD *)MmPhysicalMemoryBlock;
if ( v30 != *(_DWORD *)MmPhysicalMemoryBlock )
memmove(
(char *)MmPhysicalMemoryBlock + 8 * v30 + 8,
(char *)MmPhysicalMemoryBlock + 8 * v30 + 16,
8 * (*(_DWORD *)MmPhysicalMemoryBlock - v30));
}
}
goto LABEL_65;
}
if ( v8 + StartingIndex == BugCheckParameter2a )
{
v7 = StartingIndex;
v32 = 8 * v27;
*(_DWORD *)((char *)v28 + v32 + 8) = StartingIndex;
*(_DWORD *)((char *)MmPhysicalMemoryBlock + v32 + 12) += v8;
P = v46;
*((_DWORD *)MmPhysicalMemoryBlock + 1) += v8;
v28 = MmPhysicalMemoryBlock;
v44 = 1;
LABEL_61:
if ( !v44 )
{
*(_DWORD *)v29 = v7;
*(_DWORD *)(v29 + 4) = v8;
v28 = MmPhysicalMemoryBlock;
v51 = 1;
}
if ( v51 == 1 )
{
P = v28;
MmPhysicalMemoryBlock = v46;
}
LABEL_65:
v33 = MmPfnDatabase + 28 * v7;
if ( v54 - 1 > MmHighestPhysicalPage )
MmHighestPhysicalPage = v54 - 1;
RtlSetBits(&MiPfnBitMap, v7, v54 - v7);
do
{
MiDetermineNode(v7, v33);
*(_DWORD *)(v33 + 4) = 8 * v7;
MiInsertPageInFreeList(v7++);
v33 += 28;
}
while ( v7 < v54 );
LOBYTE(v34) = v53;
MmNumberOfPhysicalPages += v8;
MmResidentAvailablePages += v8;
KeReleaseQueuedSpinLock(2, v34, v36, v37);
_InterlockedExchangeAdd((signed __int32 *)0xFFDF02E8, v8);
_InterlockedExchangeAdd((signed __int32 *)&MmTotalCommittedPages, v48);
_InterlockedExchangeAdd((signed __int32 *)&MmTotalCommitLimitMaximum, v8);
_InterlockedExchangeAdd((signed __int32 *)&MmTotalCommitLimit, v8);
MmUnlockPagableImageSection(ExPageLockHandle);
ExReleaseFastMutex(&MmDynamicMemoryMutex);
ExFreePoolWithTag(P, 0);
*(_QWORD *)a5 = (unsigned __int64)v8 << 12;
LABEL_70:
JUMPOUT(locret_57597F);
}
if ( v8 + StartingIndex > BugCheckParameter2a )
{
v7 = StartingIndex;
}
else
{
if ( (unsigned int)(v27 + 1) < *(_DWORD *)v28 && v8 + StartingIndex <= *((_DWORD *)v28 + 2 * v27 + 4) )
{
v7 = StartingIndex;
goto LABEL_54;
}
v7 = StartingIndex;
*(_DWORD *)v29 = StartingIndex;
*(_DWORD *)(v29 + 4) = v8;
v29 += 8;
v51 = 1;
v44 = 1;
v28 = MmPhysicalMemoryBlock;
}
}
*(_DWORD *)v29 = *((_DWORD *)v28 + 2 * v27 + 2);
*(_DWORD *)(v29 + 4) = *((_DWORD *)MmPhysicalMemoryBlock + 2 * v27 + 3);
v28 = MmPhysicalMemoryBlock;
v29 += 8;
++v27;
LABEL_54:
if ( v27 == *(_DWORD *)v28 )
goto LABEL_61;
}
}
|
能力值:
( LV2,RANK:10 )
|
-
-
307 楼
楼主好人啊,造福XP用户的好贴啊!
|
能力值:
( LV2,RANK:10 )
|
-
-
308 楼
I3/I5/I7 cpu都集成了显卡的,所以那140M应该是被CPU吃了,当显存去了。
|
能力值:
( LV2,RANK:10 )
|
-
-
309 楼
楼主大牛~~~
|
能力值:
( LV2,RANK:10 )
|
-
-
310 楼
Patch后 U盘无法格式化,这是不是BUG?
|
能力值:
( LV2,RANK:10 )
|
-
-
311 楼
沒錯 我的也无法格式化
|
能力值:
( LV2,RANK:10 )
|
-
-
312 楼
我也無法格式化 flash
|
能力值:
( LV2,RANK:10 )
|
-
-
313 楼
重复了,还没找到如何删除,见楼下..
|
能力值:
( LV2,RANK:10 )
|
-
-
314 楼
无营养的回复是不健康的,稍稍重复下没关系吧...
(转至作者的留言)
----
你好,非常感谢你的XP64G补丁,我查到些信息,希望对你改进补丁有所帮助,当然,如果你还有在维护补丁的话~
----
http://www.romexsoftware.com/zh-cn/ 中文,内存做虚拟硬盘、内存做硬盘缓存两产品。
其中有提及使用扩展/未识别内存,及避免冲突的方式(即,前端/末端地址保留空间)。*详见*:http://www.romexsoftware.com/zh-cn/knowledge-base/ (Romex Software 知识库,就2篇主题:未识别内存、未识别内存管理接口 (UIMMI) )
----
其他我留意到的信息:
搜索‘XP64G 2.1 Beta’(看似很不讲究的发布于百度贴),他人的修改版(可能非正式转载,但仍有对你的深深致谢),移植/替换了2003版的USB驱动,说是解决USB问题。
----
最后,想请教boot.ini的/3GB参数,或,类似单进程2G内存限制的功能,有无意义,能否实现..(代码注释中倒是出现了‘booting /3gb')。
----
希望你能够继续完善、维护,谢谢~
|
能力值:
( LV2,RANK:10 )
|
-
-
315 楼
mark 学习下
|
能力值:
( LV2,RANK:10 )
|
-
-
316 楼
很久没来了。。。。。顶一下
|
能力值:
( LV2,RANK:10 )
|
-
-
317 楼
牛,学习了。
|
能力值:
( LV2,RANK:10 )
|
-
-
318 楼
lz大牛(*@ο@*) 哇╮(╯3╰)╭
|
能力值:
( LV2,RANK:10 )
|
-
-
319 楼
麻烦 问一下 lkd> dd MmHighestPhysicalPage。。 lkd> 是什么东西? dd是什么啊?
|
能力值:
( LV2,RANK:10 )
|
-
-
320 楼
WinXP SP3 Pro 可用,U盘,USB移动硬盘都可正常使用。
3.20G -> 3.67G
i5 GPU占用了一部分内存。
|
能力值:
( LV2,RANK:10 )
|
-
-
321 楼
楼主大牛 学习了 但是有的主板会蓝屏
|
能力值:
( LV2,RANK:10 )
|
-
-
322 楼
你真的下载试了,电脑系统没有什么问题?????
|
能力值:
( LV2,RANK:10 )
|
-
-
323 楼
没问题啊,一切正常。
直接用楼主的 XP64G20111113.rar 即可。
启动时有 "Microsoft Windows XP 64G" 和你源系统的启动菜单。
如果有问题选源系统,用XP64G20111113.rar恢复一下就可以了。
|
能力值:
( LV2,RANK:10 )
|
-
-
324 楼
那你电脑里都装些什么软件呀????
我安装有小红伞杀毒 + SSM(HIPS类的软件)+ office + opera + QQ + YY + 呱呱。这是主要常用的。
我看到上面有人说和某些主板不兼容,真的还是假的???
对了,我还安装有RamDisk,用来虚拟系统认不出来的内存。目前4G内存
|
能力值:
( LV2,RANK:10 )
|
-
-
325 楼
好吧,下来看看。
|