Page 328 of 540
#4906 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by canonkong 06.06.2020 15:37

avatar

USB 3.2 GEN2x2 to NVMe device test. Because the CPU's single core performance is not very good, it does not run at the speed of 20gbps. But on the 3950x CPU, read and write speed ran to 2100MB/s!

#4907 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by Mov AX, 0xDEAD 06.06.2020 18:12

avatar

NTOSKRNL Emu_Extender


Library of missing functions for Windows XP/2003/Vista/7 NTOSKRNL.EXE

Project is intended to help in porting drivers from Windows 7/8/8.1/10 for work with Windows XP/2003/Vista/7

How-To:
1) Compile sources to make ntoskrn8.sys
2) Make corrections to target driver XXX.sys so that it loads ntoskrn8.sys instead of the original ntoskrnl.exe
3) If XXX.sys is driver made for Windows 8, change security_cookie to random value, security_cookie is constant 0x4EE640BB(x32) / 0x32A2DF2D992B(x64) inside file , change only first match !
4) Place ntoskrn8.sys to X:/Windows/sytem32/drivers/ folder

Compiling:
1) Install Windows 7 DDK v7.1.0 (download from Microsoft site)

1a) Original DDK header files has mistake with definintion of MmAllocateContiguousMemorySpecifyCacheNode, apply fix:
\WinDDK\Win7\inc\ddk\ntddk.h:
\WinDDK\Win7\inc\ddk\wdm.h:

#if (NTDDI_VERSION >= NTDDI_WIN2K)
typedef ULONG NODE_REQUIREMENT;

to:

#if (NTDDI_VERSION >= NTDDI_VISTA)
typedef ULONG NODE_REQUIREMENT;

2) Download project files to any local folder
git clone https://github.com/MovAX0xDEAD/NTOSKRNL_Emu

3) Choose Target OS (XP, 2003, Vista or WIndows 7) for which OS Emu_Extender will be compiled. Keep in mind that depending on the target operating system the way of exporting the functions changes, if a function already exists in the kernel it will be simply redirected without injecting emulation code

4) Run shell: “Start Menu\Programs\Windows Driver Kits\Win7 7600.16385.1\Build Environments\Windows XXX\YYY Free Build Environment”
(XXX - target OS, YYY - target CPU)

5) In shell change current directory to local project folder

6) In shell type command BLD to compile project

7) Compiled ntoskrn8.sys will be in ntoskrn8/objfre_XXX_x86/YYY folder


STORPORT Windows 7 Emu_Extender


This is Library of missing functions for Windows 7 STORPORT.SYS v6.1.7601.23403 to emulate Windows 8 STORPORT.SYS

How-To:
1) Compile ntoskrnl Emu_Extender
2) Place storpor8.sys to X:/Windows/system32/drivers/ folder
3) Make corrections to target xxx.sys so that it loads storpor8.sys instead of the original storport.sys
4) Place backported storport.sys from Windows 7 to X:/Windows/system32/drivers/ folder


Ported drivers:



Windows 7's WDF 1.11 for Windows XP/2003

Last version for Windows XP/2003 is 1.9, but possible to backport 1.11 version:
1) Get files from Windows 7 Updates (KB3125574):

1
2
3
 

WDF01000.SYS v1.11.9200.20755
WdfLdr.sys v1.11.9200.16384
 


2) In WDF01000.SYS replace string ntoskrnl.exe to ntoskrn8.sys in import section
3) Recalc checksum

If need coexist with original WDF1.9 drivers:

4) Rename WDF01000.SYS->WDF01_W8.SYS, WdfLdr.sys->WdfLdr8.sys
5) In WDF01_W8.SYS replace string WdfLdr.sys to WdfLdr8.sys in import section
6) In WdfLdr8.sys replace unicode string \Registry\Machine\System\CurrentControlSet\Services\Wdf%02d000 to \Registry\Machine\System\CurrentControlSet\Services\Wdf%02d_w8
7) In WdfLdr8.sys replace hex pattern F6 78 1B F6 to F6 EB 1B F6 (x32), to (x64)
8) In target driver xxx.sys replace string WdfLdr.sys to WdfLdr8.sys in import section
9) In .INF of ported driver add creating new service:

1
2
3
4
5
6
7
8
9
10
 

AddService=WDF01_W8,, WDF.AddService
....
[WDF.AddService]
DisplayName = "Windows Driver Framework v1.11 for XP/2003"
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\WDF01_W8.SYS
LoadOrderGroup = Base
 


10) Recalc checksum of all edited *.sys


Windows 7's Storport.sys for Windows XP

Storport was released starting from Windows 2003, but possible to backport Windows 7 version:
1) Get files from Windows 7 Updates (KB3125574):

1
 
       storport.sys	v6.1.7601.23403
 


2) In storport.sys replace string ntoskrnl.exe to ntoskrn8.sys in import section

3) Storport uses MSI interrupts, need to force use only legacy/non-MSI interrupts
x32 - replace hex pattern 8B 8E 3C 01 00 00 to B9 00 00 00 00 90 (mov ecx, [esi+13Ch] -> mov ecx, 0)
x64 - replace hex pattern 8B 83 C0 01 00 00 to B8 00 00 00 00 90 (mov eax, [rbx+1C0h] -> mov eax, 0)


4) Recalc checksum


Windows 7's NVMe driver for Windows XP

1) Get files from Windows 7 Updates (KB3125574):

1
2
 

stornvme.sys v6.1.7601.23403
 


2) MS Windows 7 NVMe driver require storport.sys from Windows 7, use backported one


Windows 8's USB3 driver for Windows XP
USB3 driver from Windows 8 require WDF 1.11, use backported one.

1) Get required files from Windows 8 (KB4534283/4556840, KB2984005, RTM ISO):

1
2
3
4
5
6
 

ucx01000.sys v6.2.9200.22453
usbhub3.sys v6.2.9200.21180
usbxhci.sys v6.2.9200.22099
wpprecorder.sys v6.2.9200.16384
usbd.sys v6.2.9200.20761
 


from Vista Beta/Longhorn 5456.5:

1
 
       ksecdd.sys v6.0.5456.5
 


2) In files ucx01000.sys, usbhub3.sys, usbxhci.sys, wpprecorder.sys, usbd.sys change security_cookie to random value
3) In files ucx01000.sys, usbhub3.sys, usbxhci.sys, ksecdd.sys replace string name "ntoskrnl.exe" to "ntoskrn8.sys' in import section
4) Rename ksecdd.sys->ksecd8.sys, usbd.sys->usbd_w8.sys
5) In usbhub3.sys replace string name "ksecdd.sys" to "ksecd8.sys' in import section
6) In usbhub3.sys replace string name "usbd.sys" to "usbd_w8.sys' in import section,
7) Recalc checksum


Windows 8's STORAHCI driver for Windows XP

STORAHCI driver requires storport.sys from Windows 8, but possible to use storport.sys from Windows 7

storport.sys from Windows 7 more compatible with Windows Xp/2003 because it still call required PoStartNextPowerIrp
when processing power IRPs. Microsoft removed calls to PoStartNextPowerIrp in Windows 8's storport.sys, without this call
Windows XP/2003 kernel cannot finish current power IRP and start next IRP => it generate BSOD (0x0000009F).
Also storport.sys from Windows 7 has compatibility mode to allow old XP/2003 kernels write crashdumps through storport based disk drivers. In storport.sys from Windows 8 compatibility mode was removed, writing crashdumps possible only with new kernels.


Take attention:
WinWindows 8's STORAHCI + Windows 7's STORPORT may have significal performance drop and high CPU usage, there is no fix yet

1) Get files from Windows 8 (RTM ISO):

1
 
   storahci.sys v6.2.9200.16384
 


2) In storahci.sys replace string storport.sys to storport8.sys in import section

3) storahci.sys was compiled with Windows 8 DDK's storport.h and writes to new fields of _PORTCONFIGURATION_INFORMATION, these fields not exist in Windows 7's storport.sys

Need to skip these writes to avoid damaging structures in memory:
x32 - Replace hex pattern 83 A6 C8 00 00 00 00 to 90 90 90 90 90 90 90 (and dword ptr [esi+0C8h], 0 -> nop)
x32 - Replace hex pattern 83 8E CC 00 00 00 03 to 90 90 90 90 90 90 90 (or dword ptr [esi+0CCh], 3 -> nop)

x64 - Replace hex pattern 44 89 B7 D8 00 00 00 to 90 90 90 90 90 90 90 (mov [rdi+0D8h], r14d -> nop)
x64 - Replace hex pattern 83 8F DC 00 00 00 03 to 90 90 90 90 90 90 90 (or dword ptr [rdi+0DCh], 3 -> nop)



If you compile storahci from sources (from Windows 8 DDK Samples), comment two lines:

1
2
 
   ConfigInfo->BusResetHoldTime = 0;
ConfigInfo->FeatureSupport |= STOR_ADAPTER_FEATURE_STOP_UNIT_DURING_POWER_DOWN;
 


4) In storahci.sys change security_cookie to random value

5) Recalc checksum


Windows 7's MSAHCI driver for Windows XP

1) Get files from Windows 7 Updates (KB3125574):

1
2
3
4
5
 

atapi.sys v6.1.7601.23403
ataport.sys v6.1.7601.23403
msahci.sys v6.1.7601.23403
pciidex.sys v6.1.7601.23403
 


2) In ataport.sys, pciidex.sys replace string ntoskrnl.exe to ntoskrn8.sys in import section

3) pciidex.sys uses MS Internal/Undocumented HalDispatchTable way to call functions from Kernel/HAL,

For Windows XP/2003 x32 need to use compatible variant:
x32: replace hex pattern FF 50 3C to FF 50 40, same in asm code:

1
2
3
4
 

mov eax, ds:HalDispatchTable
...
call dword ptr [eax+3Ch] => call dword ptr [eax+40h]
 


x64: replace hex pattern
1) FF 50 78 to EB 2A 90
2) offset +2Ch: CC CC CC CC CC CC CC CC to FF 90 80 00 00 00 EB CF, same in asm code:

1
2
3
4
5
6
7
8
9
10
 

mov rax, cs:HalDispatchTable
...
call qword ptr [rax+78h] => jmp patch
orig:
mov r10d, eax
 
patch:
call qword ptr [eax+80h]
jmp orig
 


4) Recalc checksum

5) MSHDC.INF from Windows 7 may conflict with original mshdc.inf from Windows XP/2003
For example msahci enumerates IDE/SATA channels as InternalIDEChannel and compatible ID as *PNP0600.
Original mshdc.inf for *PNP0600 will install wrong Standard IDE/ESDI Hard Disk Controller driver



Intel RSTe Enterprise AHCI/RAID driver 4.7.0.1098 for Windows XP/2003 +
Intel RST AHCI/RAID driver (v11.x-15.x, last compatible 15.9.8/15.44.0) for Windows XP/2003

These drivers require storport.sys from Windows 7, use backported one.
1) In file iaStorA.sys/iaStorAC.sys/iaStorAVC.sys replace string 'ntoskrnl.exe' to 'ntoskrn8.sys' in import section (do not change second string 'NTOSKRNL.exe')

2) Recalc checksum



Download Sources
https://github.com/MovAX0xDEAD/NTOSKRNL_Emu


Implemented Func List v10 :


_chkstk
_i64toa_s
_i64tow_s
_itoa_s
_itow_s
_ltoa_s
_ltow_s
_makepath_s
_snprintf_s
_snscanf_s
_snwprintf_s
_snwscanf_s
_splitpath_s
_strnset_s
_strset_s
_strtoui64
_swprintf
_ui64toa_s
_ui64tow_s
_ultoa_s
_ultow_s
_vsnprintf_s
_vsnwprintf_s
_vswprintf
_wcsnset_s
_wcsset_s
_wmakepath_s
_wsplitpath_s
_wtoi
_wtol
DbgkLkmdRegisterCallback
EmClientQueryRuleState
EtwActivityIdControl
EtwEventEnabled
EtwProviderEnabled
EtwRegister
EtwRegisterClassicProvider
EtwUnregister
EtwWrite
EtwWriteString
EtwWriteTransfer
ExAcquireRundownProtectionCacheAware
ExAcquireRundownProtectionCacheAwareEx
ExAllocateCacheAwareRundownProtection
ExDeleteLookasideListEx
ExEnterCriticalRegionAndAcquireFastMutexUnsafe
ExEnterCriticalRegionAndAcquireResourceExclusive
ExEnterCriticalRegionAndAcquireResourceShared
ExEnterPriorityRegionAndAcquireResourceExclusive
ExEnterPriorityRegionAndAcquireResourceShared
ExFreeCacheAwareRundownProtection
ExfReleasePushLockShared
ExfTryToWakePushLock
ExGetFirmwareEnvironmentVariable
ExInitializeLookasideListEx
ExInitializeRundownProtectionCacheAware
ExReInitializeRundownProtectionCacheAware
ExReleaseFastMutexUnsafeAndLeaveCriticalRegion
ExReleaseResourceAndLeaveCriticalRegion
ExReleaseResourceAndLeavePriorityRegion
ExReleaseRundownProtectionCacheAware
ExReleaseRundownProtectionCacheAwareEx
ExRundownCompletedCacheAware
ExSetFirmwareEnvironmentVariable
ExSizeOfRundownProtectionCacheAware
ExWaitForRundownProtectionReleaseCacheAware
IoAllocateSfioStreamIdentifier
IoConnectInterruptEx
IoDisconnectInterruptEx
IoFreeSfioStreamIdentifier
IoGetActivityIdIrp
IoGetAffinityInterrupt
IoGetDevicePropertyData
IoGetIoPriorityHint
IoGetSfioStreamIdentifier
IoInitializeWorkItem
IoQueueWorkItemEx
IoSetActivityIdIrp
IoSetDevicePropertyData
IoSizeofWorkItem
IoUninitializeWorkItem
IoUnregisterPlugPlayNotificationEx
KdRefreshDebuggerNotPresent
KeAcquireGuardedMutex
KeAcquireGuardedMutexUnsafe
KeAlertThread
KeAreAllApcsDisabled
KeEnterGuardedRegion
KeExpandKernelStackAndCallout
KeGetCurrentNodeNumber
KeGetCurrentProcessorNumberEx
KeGetProcessorIndexFromNumber
KeGetProcessorNumberFromIndex
KeInitializeGuardedMutex
KeInvalidateAllCaches
KeInvalidateRangeAllCaches
KeLeaveGuardedRegion
KeQueryActiveGroupCount
KeQueryActiveProcessorCount
KeQueryActiveProcessorCountEx
KeQueryDpcWatchdogInformation
KeQueryGroupAffinity
KeQueryHighestNodeNumber
KeQueryLogicalProcessorRelationship
KeQueryMaximumGroupCount
KeQueryMaximumProcessorCount
KeQueryMaximumProcessorCountEx
KeQueryNodeActiveAffinity
KeReleaseGuardedMutex
KeReleaseGuardedMutexUnsafe
KeRevertToUserAffinityThreadEx
KeRevertToUserGroupAffinityThread
KeSetActualBasePriorityThread
KeSetCoalescableTimer
KeSetSystemAffinityThreadEx
KeSetSystemGroupAffinityThread
KeSetTargetProcessorDpcEx
KeTestAlertThread
KeTryToAcquireGuardedMutex
LdrResFindResource
LdrResFindResourceDirectory
LpcReplyWaitReplyPort
LpcRequestWaitReplyPortEx
LpcSendWaitReceivePort
memcpy_s
memmove_s
MmAllocateContiguousMemorySpecifyCacheNode
MmAllocateContiguousNodeMemory
ObDeleteCapturedInsertInfo
ObfDereferenceObjectWithTag
ObfReferenceObjectWithTag
ObGetObjectType
ObQueryNameInfo
PcwAddInstance
PcwCloseInstance
PcwCreateInstance
PcwRegister
PcwUnregister
PoDisableSleepStates
PoEndDeviceBusy
PoGetSystemWake
PoReenableSleepStates
PoRegisterPowerSettingCallback
PoSetDeviceBusyEx
PoSetSystemWake
PoStartDeviceBusy
PoUnregisterPowerSettingCallback
PoUserShutdownInitiated
PsAcquireProcessExitSynchronization
PsEnterPriorityRegion
PsGetCurrentProcessWin32Process
PsGetCurrentThreadProcess
PsGetCurrentThreadProcessId
PsGetCurrentThreadTeb
PsGetCurrentThreadWin32Thread
PsGetCurrentThreadWin32ThreadAndEnterCriticalRegion
PsGetProcessSessionIdEx
PsIsProtectedProcess
PsIsSystemProcess
PsLeavePriorityRegion
PsReleaseProcessExitSynchronization
PsSetCreateProcessNotifyRoutineEx
RtlCheckPortableOperatingSystem
RtlGetIntegerAtom
RtlGetThreadLangIdByIndex
RtlIsNtDdiVersionAvailable
RtlQueryElevationFlags
RtlQueryRegistryValuesEx
RtlSetPortableOperatingSystem
SeReportSecurityEventWithSubCategory
SeSetAuditParameter
SeSetAuthorizationCallbacks
sprintf_s
sscanf_s
strcat_s
strcpy_s
strncat_s
strncpy_s
strnlen
strtok_s
swprintf_s
swscanf_s
vsprintf_s
vswprintf_s
wcscat_s
wcscpy_s
wcsncat_s
wcsncpy_s
wcsnlen
wcstoul
ZwAllocateLocallyUniqueId
ZwAlpcConnectPort
ZwAlpcSendWaitReceivePort
ZwQueryLicenseValue
ZwQueryVirtualMemory



Comparing files ataport.sys and ../ATAPORT.SYS
00000138: 68 69
00000139: 35 1D
0001B093: 6C 38
0001B095: 65 73
0001B096: 78 79
0001B097: 65 73

Comparing files iaStorA.sys and ../IASTORA.SYS
00000159: 15 FD
000687F9: 6C 38
000687FB: 65 73
000687FC: 78 79
000687FD: 65 73

Comparing files ksecd8.sys and ../KSECD8.SYS
00000148: 44 45
00000149: 18 00
0005AEBB: 6C 38
0005AEBD: 65 73
0005AEBE: 78 79
0005AEBF: 65 73

Comparing files storahci.sys and ../STORAHCI.SYS
00000140: 68 5B
00000141: DC CA
00000C2C: 83 90
00000C2D: A6 90
00000C2E: C8 90
00000C2F: 00 90
00000C30: 00 90
00000C31: 00 90
00000C32: 00 90
00000C94: 83 90
00000C95: 8E 90
00000C96: CC 90
00000C97: 00 90
00000C98: 00 90
00000C99: 00 90
00000C9A: 03 90
0000D000: 4E DE
0000D001: E6 AD
0000D002: 40 BE
0000D003: BB EF
0000D491: 74 38

Comparing files storport.sys and ../STORPORT.SYS
00000130: CB CC
00000131: 5C 36
00000132: 02 03
00004E19: 8B B9
00004E1A: 8E 00
00004E1B: 3C 00
00004E1C: 01 00
00004E1E: 00 90
0001D49B: 6C 38
0001D49D: 65 73
0001D49E: 78 79
0001D49F: 65 73

Comparing files uaspstor.sys and ../UASPSTOR.SYS
00000140: 4B A3
00000141: 25 D6
00000142: 02 01
0000E200: 4E DE
0000E201: E6 AD
0000E202: 40 BE
0000E203: BB EF
0000F189: 6C 38
0000F18B: 65 73
0000F18C: 78 79
0000F18D: 65 73
0000F24B: 74 38
0000F27E: 2E 38
0000F27F: 53 2E
0000F280: 59 53
0000F281: 53 59
0000F282: 00 53
0000F2FC: 6F 38
0000F2FD: 72 2E
0000F2FE: 64 73
0000F2FF: 65 79
0000F300: 72 73
0000F301: 2E 00
0000F302: 73 00
0000F303: 79 00
0000F304: 73 00

Comparing files ucx01000.sys and ../UCX01000.SYS
00000140: 0B 83
00000141: 0A 17
00014E00: 4E DE
00014E01: E6 AD
00014E02: 40 BE
00014E03: BB EF
00018D0F: 6C 38
00018D11: 65 73
00018D12: 78 79
00018D13: 65 73
00018DCC: 2E 38
00018DCD: 53 2E
00018DCE: 59 53
00018DCF: 53 59
00018DD0: 00 53
00018E08: 57 77
00018E0B: 52 72
00018E0E: 6F 38
00018E0F: 72 2E
00018E10: 64 73
00018E11: 65 79
00018E12: 72 73
00018E13: 2E 00
00018E14: 73 00
00018E15: 79 00
00018E16: 73 00

Comparing files usbd8.sys and ../USBD8.SYS
00000140: 7D 8B
00000141: 5E 5A
00001600: 4E DE
00001601: E6 AD
00001602: 40 BE
00001603: BB EF

Comparing files usbhub3.sys and ../USBHUB3.SYS
00000140: 62 A6
00000141: 3C DF
00000142: 06 05
00009058: 75 EB
00027C00: 4E DE
00027C01: E6 AD
00027C02: 40 BE
00027C03: BB EF
0004591E: 2E 38
0004591F: 53 2E
00045920: 59 53
00045921: 53 59
00045922: 00 53
00045923: 90 00
00045928: 2E 38
00045929: 53 2E
0004592A: 59 53
0004592B: 53 59
0004592C: 00 53
0004592D: 90 00
00045935: 64 38
0004593C: 57 77
0004593F: 52 72
00045942: 6F 38
00045943: 72 2E
00045944: 64 73
00045945: 65 79
00045946: 72 73
00045947: 2E 00
00045948: 73 00
00045949: 79 00
0004594A: 73 00
0004595B: 6C 38
0004595D: 65 73
0004595E: 78 79
0004595F: 65 73

Comparing files usbxhci.sys and ../USBXHCI.SYS
00000148: 24 9C
00000149: E1 EE
0002A800: 4E DE
0002A801: E6 AD
0002A802: 40 BE
0002A803: BB EF
00034BC3: 6C 38
00034BC5: 65 73
00034BC6: 78 79
00034BC7: 65 73
00034D8E: 57 77
00034D91: 52 72
00034D94: 6F 38
00034D95: 72 2E
00034D96: 64 73
00034D97: 65 79
00034D98: 72 73
00034D99: 2E 00
00034D9A: 73 00
00034D9B: 79 00
00034D9C: 73 00
00034FE8: 2E 38
00034FE9: 53 2E
00034FEA: 59 53
00034FEB: 53 59
00034FEC: 00 53

Comparing files WDF01_W8.SYS and ../WDF01_W8.SYS
00000138: A0 F7
00000139: 5C 95
0007655A: 2E 38
0007655B: 53 2E
0007655C: 59 53
0007655D: 53 59
0007655E: 00 53
0007655F: 90 00
00076567: 6C 38
00076569: 65 73
0007656A: 78 79
0007656B: 65 73

Comparing files WdfLdr8.sys and ../WDFLDR8.SYS (v1.11.9200.16384)
.....

Comparing files WdfLdr8.sys and ../WDFLDR8.SYS (v1.11.9200.16648)
00000150: 32 B0
00000151: F8 6B
00000152: 00 01
000011F2: 30 5F
000011F4: 30 77
000011F6: 30 38
000022C9: 78 EB

Comparing files wpprec8.sys and ../WPPREC8.SYS
00000140: 04 12
00000141: 23 1F
00001E00: 4E DE
00001E01: E6 AD
00001E02: 40 BE
00001E03: BB EF

#4908 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by daniel_k 06.06.2020 18:27

@Mov AX, 0xDEAD, impressed!

Thought you were on a break, but still working on something!

Thanks for sharing it with us!

Theoretically, functions from WppRecorder.sys can be added to ntoskrn8.sys, right?

#4909 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by daniel_k 06.06.2020 18:36

Zitat von gordo999 im Beitrag #4899
@daniel_k ...lost tract which driver is which? I am currently running your amdxhc.sys and usbd.sys. They are working fine. Is there an advantage to converting to the 'switch' driver? And is that driver from W8? Thanks.

Even with USB3 enabled in BIOS, 3rd/4th gen chipset require the HCSwitch lower filter driver to program certain device registers, otherwise you're limited to USB2 speeds.

Regarding USB3 driver, we are not using the amdxhc driver anymore, as it has issues after some plugging/unplugging.

@Mov AX, 0xDEAD ported the Win8 driver, which is a perfect solution, even supporting UASP (USB Attached SCSI Protocol), although is in alpha state yet. If you want it, drop me a PM.

#4910 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by daniel_k 06.06.2020 18:55

@Mov AX, 0xDEAD
I'm getting this error when building:

1
2
3
 
1>errors in directory c:\release0
1>nmake : error: c:\release0\objfre_wxp_x86\i386\_objects.mac was changed during the build process and the build results may not be valid.
Please re-build this directory.
 



I can compile OFA NVME driver, so no problem with my DDK install.

EDIT: Fixed by adding TARGETPATH=obj$(BUILD_ALT_DIR) below TARGETTYPE=EXPORT_DRIVER in sources file.

#4911 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by infuscomus 06.06.2020 18:59

@Mov AX, 0xDEAD

You're releasing this as open source?! Awesome!

Thanks!

edit:
a question concerning cookie_const - what does a windows driver do with this value? why does it BSOD if we don't change it?

#4912 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by diderius6 06.06.2020 19:58

avatar

@Mov AX, 0xDEAD

Is it possible to enable the Lan driver i219 from Intel under XP SP3 with this helper,
have a nice day
Dietmar

#4913 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by Mov AX, 0xDEAD 06.06.2020 20:19

avatar

Zitat von daniel_k im Beitrag #4910

Fixed by adding TARGETPATH=obj$(BUILD_ALT_DIR) below TARGETTYPE=EXPORT_DRIVER in sources file.

thanks for fix !

archive updated

#4914 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by Mov AX, 0xDEAD 06.06.2020 20:32

avatar

Zitat von infuscomus im Beitrag #4911
@Mov AX, 0xDEAD
You're releasing this as open source?! Awesome!


Main benefit is MS "copyright" binary code avoidance as much as possible

Extender is not new idea, Dibya done his extenders before, but he used many stolen code from MS binaries(???)
(i dont know exactly where code taken, sorry Dibya if I'm wrong)

#4915 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by Mov AX, 0xDEAD 06.06.2020 20:40

avatar

@diderius6

Zitat von diderius6 im Beitrag #4912

Is it possible to enable the Lan driver i219 from Intel under XP SP3 with this helper,


I dont know, extender has only few implemented functions and is not full functionaly
If someone has time and C knowledge, he can add more missed imports.
LAN driver may depends on NDIS6 (another driver framework from MS), XP has only NDIS5

#4916 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by Mov AX, 0xDEAD 06.06.2020 20:59

avatar

Zitat von daniel_k im Beitrag #4908
Theoretically, functions from WppRecorder.sys can be added to ntoskrn8.sys, right?

Yes, ntoskrn8.sys can be multi router for export<->import from many *.sys/*.dll:
#pragma comment (linker, "/export:xxxxx=hal.xxxxxx")
#pragma comment (linker, "/export:yyyyy=ntoskrnl.yyyyy")

in case WppRecorder.sys all emulated funcs will be internal

#4917 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by diderius6 06.06.2020 22:25

avatar

@daniel_k
I test, why I can boot an uaspstor device via USBSTOR.sys
but not via uaspstor.sys from win8 with storport from win7.1 .

The uaspstor.sys driver is not loaded early enough, even I set Group = System Reserved start = 0 Tag = 1 (means first of all).
This should move this driver to one of the earliest loaded drivers.

Always this driver uaspstor.sys loads after mup.sys, so this is second boot stage,
means uaspstor.sys not loaded at boot time.
This is the reason for BSOD 0x7B there

Dietmar

PS: With USBSTOR.sys this one is loaded first of all in first boot stage, means no BSOD 0x7B.

#4918 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by daniel_k 06.06.2020 23:29

@diderius6
Don't know if it makes any difference, but remember that uaspstor.sys is a SCSI driver.

During Setup, usbstor is loaded in [InputDevicesSupport], uaspstor should be in [SCSI], in theory.

#4919 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by daniel_k 07.06.2020 00:11

@Mov AX, 0xDEAD

Does changing the function name from "decorated" to "undecorated", affects the behavior of the Extender?

For example, _IoGetDevicePropertyData@32 -> IoGetDevicePropertyData

This could help when compiling the Extender to any archtecture, if you know what I mean.

EDIT: Nevermind, I see it doesn't change anything, binary is identical.

#4920 RE: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by infuscomus 07.06.2020 02:21

can you mix ASM with C code? or is this a bad idea?

Xobor Forum Software von Xobor
Datenschutz