Jump to content

DirectX12 Patch for Windows XP 32Bit


Dibya

Recommended Posts

I have found the dependencies of directX12 Runtimes(d3d12.dll) to make it work on windows XP.

Already many XP dlls like advapi32.dll is customized.

Dependencies Chart::

D3D12.DLL

 - MSVCP110_WIN.DLL

 -MSVCRT.DLL (customization complete)(Added required api)

 - NTDLL.DLL(Customization Completed)

                  required functions of ntdll.dll

     EtwEventActivityIdControl
     EtwEventRegister
     EtwEventSetInformation
     EtwEventUnregister

     EtwEventWrite
     EtwEventWriteTransfer
     RtlCaptureStackBackTrace
     RtlInitUnicodeString
     RtlIsCriticalSectionLockedByThread
     WinSqmAddToStreamEx
     WinSqmIsOptedIn

 needed function for new kerenal32

CsrAllocateCaptureBuffer
CsrAllocateMessagePointer
CsrCaptureMessageBuffer
CsrCaptureMessageMultiUnicodeStringsInPlace
CsrCaptureMessageString
CsrClientCallServer
CsrClientConnectToServer
CsrFreeCaptureBuffer
CsrGetProcessId
CsrVerifyRegion
DbgPrint
DbgPrintEx
DbgUiConnectToDbg
DbgUiContinue
DbgUiConvertStateChangeStructure
DbgUiDebugActiveProcess
DbgUiGetThreadDebugObject
DbgUiIssueRemoteBreakin
DbgUiStopDebugging
DbgUiWaitStateChange
EtwEventEnabled
EtwEventRegister
EtwEventUnregister
EtwEventWrite
EtwEventWriteNoRegistration
LdrAddRefDll
LdrFindResourceEx_U
LdrFindResource_U
LdrGetFileNameFromLoadAsDataTable
LdrGetProcedureAddress
LdrLoadAlternateResourceModule
LdrLoadAlternateResourceModuleEx
LdrLoadDll
LdrLockLoaderLock
LdrQueryImageFileExecutionOptions
LdrQueryImageFileKeyOption
LdrResFindResource
LdrResFindResourceDirectory
LdrResGetRCConfig
LdrResSearchResource
LdrRscIsTypeExist
LdrSetDllManifestProber
LdrUnloadDll
LdrUnlockLoaderLock
LdrpResGetMappingSize
LdrpResGetResourceDirectory
NlsMbCodePageTag
NtAccessCheck
NtAddAtom
NtAllocateUserPhysicalPages
NtAllocateVirtualMemory
NtApphelpCacheControl
NtAssignProcessToJobObject
NtCancelIoFile
NtCancelSynchronousIoFile
NtClearEvent
NtClose
NtConnectPort
NtCreateEvent
NtCreateFile
NtCreateJobObject
NtCreateJobSet
NtCreateKey
NtCreateKeyTransacted
NtCreateMailslotFile
NtCreatePrivateNamespace
NtCreateSection
NtCreateUserProcess
NtDeleteAtom
NtDeleteKey
NtDeletePrivateNamespace
NtDeleteValueKey
NtDeviceIoControlFile
NtDuplicateObject
NtDuplicateToken
NtEnumerateKey
NtEnumerateValueKey
NtFindAtom
NtFlushBuffersFile
NtFlushInstructionCache
NtFlushKey
NtFreeUserPhysicalPages
NtFreeVirtualMemory
NtFsControlFile
NtGetContextThread
NtGetDevicePowerState
NtGetWriteWatch
NtInitiatePowerAction
NtIsSystemResumeAutomatic
NtLoadKey
NtLockFile
NtLockVirtualMemory
NtMapUserPhysicalPages
NtMapUserPhysicalPagesScatter
NtMapViewOfSection
NtNotifyChangeDirectoryFile
NtNotifyChangeKey
NtNotifyChangeMultipleKeys
NtOpenDirectoryObject
NtOpenEvent
NtOpenFile
NtOpenJobObject
NtOpenKey
NtOpenKeyEx
NtOpenKeyTransacted
NtOpenKeyTransactedEx
NtOpenPrivateNamespace
NtOpenProcess
NtOpenProcessToken
NtOpenSymbolicLinkObject
NtOpenThreadToken
NtPowerInformation
NtProtectVirtualMemory
NtQueryDirectoryFile
NtQueryEaFile
NtQueryEvent
NtQueryInformationAtom
NtQueryInformationFile
NtQueryInformationJobObject
NtQueryInformationProcess
NtQueryInformationThread
NtQueryInformationToken
NtQueryInstallUILanguage
NtQueryKey
NtQuerySection
NtQuerySecurityObject
NtQuerySymbolicLinkObject
NtQuerySystemEnvironmentValueEx
NtQuerySystemInformation
NtQuerySystemInformationEx
NtQueryValueKey
NtQueryVirtualMemory
NtQueryVolumeInformationFile
NtRaiseException
NtRaiseHardError
NtReadFile
NtReadVirtualMemory
NtRemoveProcessDebug
NtReplacePartitionUnit
NtRequestWaitReplyPort
NtResetEvent
NtResetWriteWatch
NtRestoreKey
NtResumeThread
NtSaveKeyEx
NtSetContextThread
NtSetEaFile
NtSetInformationDebugObject
NtSetInformationFile
NtSetInformationJobObject
NtSetInformationProcess
NtSetInformationThread
NtSetSecurityObject
NtSetSystemEnvironmentValueEx
NtSetSystemInformation
NtSetSystemTime
NtSetThreadExecutionState
NtSetValueKey
NtSetVolumeInformationFile
NtSignalAndWaitForSingleObject
NtTerminateJobObject
NtTerminateProcess
NtUnloadKey
NtUnlockFile
NtUnlockVirtualMemory
NtUnmapViewOfSection
NtWaitForMultipleObjects
NtWaitForSingleObject
NtWriteFile
NtWriteVirtualMemory
NtYieldExecution
RtlAcquirePrivilege
RtlAcquireSRWLockExclusive
RtlAcquireSRWLockShared
RtlActivateActivationContext
RtlActivateActivationContextUnsafeFast
RtlAddAccessAllowedAce
RtlAddAtomToAtomTable
RtlAddIntegrityLabelToBoundaryDescriptor
RtlAddRefActivationContext
RtlAddSIDToBoundaryDescriptor
RtlAllocateActivationContextStack
RtlAllocateAndInitializeSid
RtlAllocateHandle
RtlAllocateHeap
RtlAnsiStringToUnicodeString
RtlAppendUnicodeStringToString
RtlAppendUnicodeToString
RtlCharToInteger
RtlCleanUpTEBLangLists
RtlCompactHeap
RtlCompareMemory
RtlCompareUnicodeString
RtlComputeImportTableHash
RtlConvertSidToUnicodeString
RtlCopyExtendedContext
RtlCopyLuid
RtlCopyUnicodeString
RtlCreateAcl
RtlCreateActivationContext
RtlCreateAtomTable
RtlCreateBoundaryDescriptor
RtlCreateEnvironment
RtlCreateEnvironmentEx
RtlCreateHeap
RtlCreateProcessParametersEx
RtlCreateQueryDebugBuffer
RtlCreateSecurityDescriptor
RtlCreateUnicodeString
RtlCreateUnicodeStringFromAsciiz
RtlCreateUserStack
RtlCultureNameToLCID
RtlCutoverTimeToSystemTime
RtlDeactivateActivationContext
RtlDeactivateActivationContextUnsafeFast
RtlDecodePointer
RtlDecodeSystemPointer
RtlDeleteAtomFromAtomTable
RtlDeleteCriticalSection
RtlDeregisterSecureMemoryCacheCallback
RtlDeregisterWait
RtlDestroyAtomTable
RtlDestroyEnvironment
RtlDestroyHeap
RtlDestroyProcessParameters
RtlDestroyQueryDebugBuffer
RtlDetermineDosPathNameType_U
RtlDisableThreadProfiling
RtlDnsHostNameToComputerName
RtlDoesFileExists_U
RtlDosPathNameToNtPathName_U
RtlDosPathNameToNtPathName_U_WithStatus
RtlDosPathNameToRelativeNtPathName_U
RtlEnableThreadProfiling
RtlEncodePointer
RtlEncodeSystemPointer
RtlEnterCriticalSection
RtlEqualSid
RtlEqualString
RtlEqualUnicodeString
RtlExitUserProcess
RtlExitUserThread
RtlExpandEnvironmentStrings_U
RtlExtendedLargeIntegerDivide
RtlFindActivationContextSectionGuid
RtlFindActivationContextSectionString
RtlFindCharInUnicodeString
RtlFormatCurrentUserKeyPath
RtlFreeActivationContextStack
RtlFreeAnsiString
RtlFreeHandle
RtlFreeHeap
RtlFreeOemString
RtlFreeSid
RtlFreeUnicodeString
RtlFreeUserStack
RtlGUIDFromString
RtlGetAce
RtlGetActiveActivationContext
RtlGetCurrentDirectory_U
RtlGetCurrentProcessorNumberEx
RtlGetCurrentTransaction
RtlGetExtendedContextLength
RtlGetFullPathName_U
RtlGetFullPathName_UstrEx
RtlGetLastNtStatus
RtlGetLengthWithoutLastFullDosOrNtPathElement
RtlGetLongestNtPathLength
RtlGetNativeSystemInformation
RtlGetProductInfo
RtlGetThreadErrorMode
RtlGetThreadPreferredUILanguages
RtlGetUILanguageInfo
RtlGetUserInfoHeap
RtlGetVersion
RtlIdnToAscii
RtlIdnToNameprepUnicode
RtlIdnToUnicode
RtlImageDirectoryEntryToData
RtlImageNtHeader
RtlImageNtHeaderEx
RtlInitAnsiString
RtlInitAnsiStringEx
RtlInitString
RtlInitUnicodeString
RtlInitUnicodeStringEx
RtlInitializeCriticalSection
RtlInitializeExceptionChain
RtlInitializeExtendedContext
RtlInitializeSRWLock
RtlInitializeSid
RtlIntegerToUnicodeString
RtlIsDosDeviceName_U
RtlIsNameLegalDOS8Dot3
RtlIsNormalizedString
RtlIsTextUnicode
RtlIsValidHandle
RtlKnownExceptionFilter
RtlLCIDToCultureName
RtlLcidToLocaleName
RtlLeaveCriticalSection
RtlLengthSecurityDescriptor
RtlLengthSid
RtlLockHeap
RtlLookupAtomInAtomTable
RtlMakeSelfRelativeSD
RtlMultiAppendUnicodeStringBuffer
RtlMultiByteToUnicodeN
RtlMultiByteToUnicodeSize
RtlNormalizeString
RtlNtPathNameToDosPathName
RtlNtStatusToDosError
RtlNtStatusToDosErrorNoTeb
RtlOemStringToUnicodeString
RtlOpenCurrentUser
RtlPrefixString
RtlPrefixUnicodeString
RtlProcessFlsData
RtlQueryActivationContextApplicationSettings
RtlQueryAtomInAtomTable
RtlQueryElevationFlags
RtlQueryEnvironmentVariable
RtlQueryEnvironmentVariable_U
RtlQueryInformationAcl
RtlQueryInformationActivationContext
RtlQueryProcessDebugInformation
RtlQueryRegistryValues
RtlQueryThreadProfiling
RtlQueueWorkItem
RtlRaiseException
RtlRaiseStatus
RtlRandom
RtlReAllocateHeap
RtlReadThreadProfilingData
RtlRegisterSecureMemoryCacheCallback
RtlRegisterWait
RtlReleaseActivationContext
RtlReleasePebLock
RtlReleasePrivilege
RtlReleaseRelativeName
RtlReleaseSRWLockExclusive
RtlReleaseSRWLockShared
RtlRunOnceBeginInitialize
RtlRunOnceComplete
RtlRunOnceExecuteOnce
RtlRunOnceInitialize
RtlSetCurrentTransaction
RtlSetDaclSecurityDescriptor
RtlSetEnvironmentStrings
RtlSetGroupSecurityDescriptor
RtlSetIoCompletionCallback
RtlSetLastWin32Error
RtlSetLastWin32ErrorAndNtStatusFromNtStatus
RtlSetOwnerSecurityDescriptor
RtlSetProcessPreferredUILanguages
RtlSetThreadErrorMode
RtlSetThreadPoolStartFunc
RtlSetThreadPreferredUILanguages
RtlSetUnhandledExceptionFilter
RtlSetUserValueHeap
RtlSizeHeap
RtlSleepConditionVariableCS
RtlSleepConditionVariableSRW
RtlSubAuthoritySid
RtlTimeFieldsToTime
RtlTimeToTimeFields
RtlTryAcquirePebLock
RtlUnhandledExceptionFilter
RtlUnicodeStringToAnsiString
RtlUnicodeStringToInteger
RtlUnicodeStringToOemString
RtlUnicodeToMultiByteN
RtlUnicodeToMultiByteSize
RtlUnlockHeap
RtlUpcaseUnicodeChar
RtlValidRelativeSecurityDescriptor
RtlValidSecurityDescriptor
RtlVerifyVersionInfo
RtlWerpReportException
RtlWow64EnableFsRedirection
RtlZombifyActivationContext
RtlpApplyLengthFunction
RtlpConvertCultureNamesToLCIDs
RtlpConvertLCIDsToCultureNames
RtlpEnsureBufferSize
RtlxAnsiStringToUnicodeSize
RtlxUnicodeStringToAnsiSize
TpAllocCleanupGroup
TpAllocIoCompletion
TpAllocPool
TpAllocTimer
TpAllocWait
TpAllocWork
TpCallbackMayRunLong
TpCaptureCaller
TpQueryPoolStackInformation
TpSetPoolMinThreads
TpSetPoolStackInformation
TpSimpleTryPost
VerSetConditionMask
WerReportSQMEvent
WinSqmIsOptedIn
_alldiv
_allmul
_allshl
_aulldiv
_aullrem
_memicmp
_strcmpi
_stricmp
_strlwr
_strnicmp
_ui64tow
_vsnprintf
_vsnwprintf
_wcsicmp
_wcslwr
_wcsnicmp
_wtol
atol
bsearch
isdigit
memcpy
memmove
memset
strcat_s
strchr
strcpy_s
strncat
strncat_s
strncmp
strncpy_s
swprintf_s
tolower
toupper
wcscat_s
wcschr
wcscpy_s
wcscspn
wcsncmp
wcsncpy
wcsncpy_s
wcspbrk
wcsrchr
wcsstr
wcstoul


(new nt dll dependencies)

API-MS-WIN-CORE-HEAP-L1-2-0.DLL

API-MS-WIN-CORE-PROCESSTHREADS-L1-1-2.DLL

API-MS-WIN-CORE-SYSINFO-L1-2-1.DLL

API-MS-WIN-CORE-DEBUG-L1-1-1.DLL

API-MS-WIN-CORE-PSAPI-L1-1-0.DLL

API-MS-WIN-CORE-SYNCH-L1-2-0.DLL

API-MS-WIN-CORE-ERRORHANDLING-L1-1-1.DLL

API-MS-WIN-CORE-LIBRARYLOADER-L1-2-0.DLL

API-MS-WIN-CORE-HEAP-L2-1-0.DLL

API-MS-WIN-CORE-MEMORY-L1-1-2.DLL

API-MS-WIN-CORE-VERSION-L1-1-0.DLL

API-MS-WIN-CORE-HANDLE-L1-1-0.DLL

API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL

API-MS-WIN-CORE-COM-L1-1-1.DLL

API-MS-WIN-CORE-UTIL-L1-1-0.DLL

API-MS-WIN-CORE-STRING-L1-1-0.DLL

API-MS-WIN-CORE-PROFILE-L1-1-0.DLL

DXGI.DLL(Customization Copleted)

Kerenal32.dll (King of api dll)(Work in pogress)

(Kerenal 32 function needed to added in XP to make DX!2 Work)

CloseHandle
CreateEventA
CreateFileA
CreateMutexA
CreateSemaphoreA
CreateThread
DebugBreak
DecodePointer
DeleteCriticalSection
DisableThreadLibraryCalls
EncodePointer
EnterCriticalSection
FreeLibrary
GetCurrentProcess
GetCurrentProcessId
GetCurrentThreadId
GetFileSize
GetLastError
GetModuleFileNameA
GetModuleFileNameW
GetModuleHandleA
GetModuleHandleExA
GetProcAddress
GetProcessHeap
GetSystemDirectoryW
GetSystemTimeAsFileTime
GetTickCount
GlobalAddAtomA
HeapAlloc
HeapFree
HeapReAlloc
InitializeCriticalSection
InterlockedCompareExchange
InterlockedCompareExchange64
InterlockedDecrement
InterlockedExchange
InterlockedIncrement
LeaveCriticalSection
LoadLibraryA
LoadLibraryW
LocalFree
MultiByteToWideChar
OpenMutexA
OpenSemaphoreA
OutputDebugStringA
OutputDebugStringW
QueryPerformanceCounter
QueryPerformanceFrequency
RaiseException
ReleaseMutex
ReleaseSemaphore
SetCriticalSectionSpinCount
SetEvent
SetUnhandledExceptionFilter
Sleep
TerminateProcess
TryEnterCriticalSection
UnhandledExceptionFilter
VerSetConditionMask
VerifyVersionInfoA
WaitForSingleObject
lstrcmpA
lstrcmpW
lstrcmpiW
new kerenal 32 dependencies

API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL

API-MS-WIN-CORE-HEAP-L1-1-0.DLL

API-MS-WIN-CORE-MEMORY-L1-1-0.DLL

API-MS-WIN-CORE-HANDLE-L1-1-0.DLL

API-MS-WIN-CORE-SYNCH-L1-1-0.DLL

API-MS-WIN-CORE-FILE-L1-1-0.DLL

API-MS-WIN-CORE-LIBRARYLOADER-L1-1-0.DLL

API-MS-WIN-CORE-NAMEDPIPE-L1-1-0.DLL

API-MS-WIN-CORE-MISC-L1-1-0.DLL

API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL

API-MS-WIN-CORE-LOCALIZATION-L1-1-0.DLL

API-MS-WIN-CORE-PROCESSENVIRONMENT-L1-1-0.DLL

API-MS-WIN-CORE-STRING-L1-1-0.DLL

API-MS-WIN-CORE-DEBUG-L1-1-0.DLL

API-MS-WIN-CORE-ERRORHANDLING-L1-1-0.DLL

API-MS-WIN-CORE-FIBERS-L1-1-0.DLL

API-MS-WIN-CORE-UTIL-L1-1-0.DLL

API-MS-WIN-CORE-PROFILE-L1-1-0.DLL

API-MS-WIN-SECURITY-BASE-L1-1-0.DLL

New user32.dll functions

AdjustWindowRectEx
CallNextHookEx
ChangeDisplaySettingsA
ChangeDisplaySettingsExW
CloseClipboard
CreateWindowExA
DefWindowProcA
DestroyWindow
DispatchMessageA
EmptyClipboard
EnumDisplayDevicesA
EnumDisplayDevicesW
EnumDisplayMonitors
EnumDisplaySettingsW
EqualRect
GetClassNameA
GetClientRect
GetDC
GetDesktopWindow
GetDisplayConfigBufferSizes
GetLayeredWindowAttributes
GetMonitorInfoA
GetMonitorInfoW
GetSystemMetrics
GetWindow
GetWindowInfo
GetWindowLongA
GetWindowRect
GetWindowThreadProcessId
IntersectRect
IsWindow
IsWindowVisible
LoadCursorA
LoadIconA
MonitorFromRect
MonitorFromWindow
OpenClipboard
PeekMessageA
PostMessageA
QueryDisplayConfig
RegisterClassA
RegisterHotKey
ReleaseDC
SetClipboardData
SetForegroundWindow
SetRect
SetWindowLongA
SetWindowPos
SetWindowsHookExA
TranslateMessage
UnhookWindowsHookEx
UnionRect
UnregisterHotKey

new gdi32.dll funtions (Custom gdi32.dll is ready)

BeginGdiRendering
BitBlt
CreateBitmapFromDxSurface
CreateCompatibleBitmap
CreateCompatibleDC
CreateDCA
CreateDCW
CreateDIBSection
DeleteDC
DeleteObject
EndGdiRendering
GdiEntry13
GdiFlush
SelectObject
SetStretchBltMode
StretchBlt
new adavapi32.dll functions

AddAccessAllowedAce
ConvertStringSidToSidA
GetLengthSid
GetSidLengthRequired
GetSidSubAuthority
InitializeAcl
InitializeSecurityDescriptor
InitializeSid
IsValidSid
RegCloseKey
RegEnumKeyExA
RegOpenKeyExA
RegQueryValueExA
SetSecurityDescriptorDacl
SetSecurityInfo


I think if directX12  work in future , Windows Xp can be used for more 17 years without any problem

Edited by Dibya
Link to comment
Share on other sites


 

Dependencies Chart::

 

If I may, you could put that list inside [spòiler] [/spòiler] tags to make your post not so long to scroll.

It is "inside" the third button from left "Special BB code" the result will be:

--- something like this ....

or attach it as a .txt file.

 

jaclaz

Edited by jaclaz
Link to comment
Share on other sites

I would like to test, but there are a few problems in the way:

- I don't have XP drivers, even though my GPU is DX12 compatible (you've guessed it, it's AMD)

- How will people be able to test DX12, when all XP drivers are made with DX9 in mind? Do you plan on making Windows 10 WDDM 2.0 drivers work on XP?

Just a few thoughts...

Link to comment
Share on other sites

That's absolutely great!

I look forward to see the final result.

By the way, while you're doing it, can you keep us updated? I would really like to know how you are going to port/customise certain dependencies.

Anyway, this is a really good project. :)

Link to comment
Share on other sites

I would like to test, but there are a few problems in the way:

- I don't have XP drivers, even though my GPU is DX12 compatible (you've guessed it, it's AMD)

- How will people be able to test DX12, when all XP drivers are made with DX9 in mind? Do you plan on making Windows 10 WDDM 2.0 drivers work on XP?

Just a few thoughts...

Brother yes I will port driver framework of windows 10 currently my pc is running wdm of win7 in xp ported from windows 7 way in which i installed xp with all driver in my new skylake pc

Edited by Dibya
Link to comment
Share on other sites

That's absolutely great!

I look forward to see the final result.

By the way, while you're doing it, can you keep us updated? I would really like to know how you are going to port/customise certain dependencies.

Anyway, this is a really good project. :)

My way of porting::

Visual studio debug function for tracing api

dependency walker for finding dependecies

pe explorer a good diassembler in cluded with it

cff explorer for modifing and adding api.

pe maker by BlackwingCat for fixing api mmmvxcs

IdaPro for Patching

virtualbox for testing out

eventviewer for finding errors

if everything goes fine voila we have done

Edited by Dibya
Link to comment
Share on other sites

Do you plan on working on Windows Vista, to get Windows 7+ drivers and programs working on it? Because since 7 is basically Vista SP3, it shouldn't be too hard to port some of its libraries and dependencies (I speculate).

That OS is seriously underrated, and I would like to use it again! :thumbup

Link to comment
Share on other sites

@greenhillmaniac

Windows Vista , personally I donot like the OS but after sp1 is most favourite then sp2 added again few craps.

Lets my this project finish i will make a video how to add apis in dlls and modify kerenal driver framework any body may likely to make it out. If you want a kerenalEX which is quite difficult to make you can contact BlackWingCat he was a genius on that.

Link to comment
Share on other sites

@greenhillmaniac

Windows Vista , personally I donot like the OS but after sp1 is most favourite then sp2 added again few craps.

Lets my this project finish i will make a video how to add apis in dlls and modify kerenal driver framework any body may likely to make it out. If you want a kerenalEX which is quite difficult to make you can contact BlackWingCat he was a genius on that.

That would be awesome! Could finally stop asking people for things and do something myself :w00t:

Link to comment
Share on other sites

@greenhillmaniac

Windows Vista , personally I donot like the OS but after sp1 is most favourite then sp2 added again few craps.

Lets my this project finish i will make a video how to add apis in dlls and modify kerenal driver framework any body may likely to make it out. If you want a kerenalEX which is quite difficult to make you can contact BlackWingCat he was a genius on that.

Funnily enough, from my experience, Vista SP2 has been generally faster and more stable than SP1 and definitely RTM...  

Anyway, if you could make a video on how to do that, I would love to contribute to helping the current state of compatibility with Windows Vista, because here lately, it has been uncontrollably diminishing, in some instances even faster than the support for XP. It has gotten to a point where I can't even use it as my main OS anymore, whereas less than a year ago, I could do so easily.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...