Due to a bug in one of the new kernel routines (thanks, Bristols for finding it), I've had to post MS11-011 V8. This one also adds a new version of win32k.sys: I had originally wanted to wait until I posted MS11-034 (KB2506223) to add routines to win32k.sys, but analysis is showing that there are quite a lot of changes in MS11-034 such that it will take a while to complete. I'd really like to see if people can get the ATI v11 drivers working, so this one includes win32k.sys with some functions added. As such, I've also added a requirement that MS11-012 (KB2479628) first be installed (which I'm not happy about...this is why I held off on adding win32k.sys until now). Hopefully this won't create a problem as there is no circular dependency and this hotfix will warn you to install KB2479628 if need be.
Anyhow, here's the new list of additions:
ntoskrnl.exe/ntkrnlpa.exe/ntkrnlmp.exe/ntkrpamp.exe
KeAcquireInterruptSpinLock
KeReleaseInterruptSpinLock
InterlockedPushEntrySList
InterlockedPopEntrySList
RtlInt64ToUnicodeString
RtlIntegerToUnicode
RtlClearBit
RtlTestBit
RtlSetBit
ZwQueryInformationThread......already there, added it to the export table
IoForwardIrpSynchronously/IoForwardAndCatchIrp (same routine, has two different exported names)
PsRemoveLoadImageNotifyRoutine (had to completely redesign the set and call routines to make this work)
PsRemoveCreateThreadNotifyRoutine (had to completely redesign the set and call routines to make this work)
_vsnwprintf
_aulldvrm
RtlGetVersion
KeFlushQueuedDpcs
DbgPrintEx
ntdll.dll
RtlIpv4StringToAddressA
RtlIpv4StringToAddressW
RtlIpv4StringToAddressExA
RtlIpv4StringToAddressExW
RtlIpv4AddressToStringA
RtlIpv4AddressToStringW
RtlIpv4AddressToStringExA
RtlIpv4AddressToStringExW
RtlIpv6StringToAddressA
RtlIpv6StringToAddressW
RtlIpv6StringToAddressExA
RtlIpv6StringToAddressExW
RtlIpv6AddressToStringA
RtlIpv6AddressToStringW
RtlIpv6AddressToStringExA
RtlIpv6AddressToStringExW
RtlInitializeGenericTableAvl
RtlIsGenericTableEmptyAvl
RtlGetElementGenericTableAvl
RtlNumberGenericTableElementsAvl
RtlInsertElementGenericTableAvl
RtlDeleteElementGenericTableAvl
RtlEnumerateGenericTableLikeADirectory
RtlLookupElementGenericTableAvl
RtlEnumerateGenericTableWithoutSplayingAvl
RtlEnumerateGenericTableAvl
RtlEncodePointer (not a stub -- it's the real functionality and depends on changes to ntoskrnl.exe, etc.)
RtlDecodePointer (not a stub -- it's the real functionality and depends on changes to ntoskrnl.exe, etc.)
RtlInterlockedPushEntrySList
RtlInterlockedPopEntrySList
RtlInterlockedFlushSList
RtlQueryDepthSList
RtlInitializeSListHead
LdrLockLoaderLock
LdrUnlockLoaderLock
LdrAddRefDll
RtlComputePrivatizedDllName_U
RtlValidateUnicodeString
RtlDuplicateUnicodeString
RtlDowncaseUnicodeChar
RtlFindCharInUnicodeString
RtlpEnsureBufferSize
RtlMultiAppendUnicodeStringBuffer
RtlAppendPathElement
LdrEnumerateLoadedModules
RtlRandomEx
RtlUnhandledExceptionFilter2
RtlUnhandledExceptionFilter
RtlAddVectoredExceptionHandler (also involved updating LdrpInitializeProcess and RtlDispatchException and adding internal function RtlCallVectoredExceptionHandlers)
RtlRemoveAddVectoredExceptionHandler (also involved updating LdrpInitializeProcess and RtlDispatchException and adding internal function RtlCallVectoredExceptionHandlers)
RtlGetNtVersionNumbers
DbgPrintEx (Fixed version)
_vsnwprintf
_lfind
_aulldvrm
_alldvrm
RtlpNotOwnerCriticalSection
RtlpApplyLengthFunction
RtlCopyOutOfProcessMemoryStreamTo
RtlLockMemoryStreamRegion
RtlUnlockMemoryStreamRegion
RtlNtPathNameToDosPathName
RtlGetLengthWithoutLastFullDosOrNtPathElement
RtlCreateBootStatusDataFile
RtlComputeCrc32
RtlCaptureContext
RtlLockBootStatusData
RtlUnlockBootStatusData
RtlGetSetBootStatusData
RtlNtStatusToDosErrorNoTeb (already there, only had to add it to the export table)
RtlAddMemoryStream
RtlReleaseMemoryStream
RtlQueryInterfaceMemoryStream
RtlReadOutOfProcessMemoryStream
RtlRevertMemoryStream
RtlCloneMemoryStream
RtlCommitMemoryStream
RtlSetMemoryStreamSize
RtlWriteMemoryStream
RtlSeekMemoryStream
RtlCopyMemoryStreamTo
RtlReadMemoryStream
RtlStatMemoryStream
RtlInitMemoryStream
RtlFinalReleaseOutOfProcessMemoryStream
RtlInitOutOfProcessMemoryStream
RtlSetLastWin32ErrorAndNtStatusFromNtStatus
RtlSetLastWin32Error/RtlRestoreLastWin32Error (same routine, exported under two different names)
bootvid.dll
VidSetVgaPalette (used by the bootskin code)
kernel32.dll
DecodePointer (forwarded export to NTDLL.RtlDecodePointer)
EncodePointer (forwarded export to NTDLL.RtlEncodePointer)
InterlockedPushEntrySList (forwarded export to NTDLL.RtlInterlockedPushEntrySList)
InterlockedPopEntrySList (forwarded export to NTDLL.RtlInterlockedPopEntrySList)
InterlockedFlushSList (forwarded export to NTDLL.RtlInterlockedFlushSList)
QueryDepthSList (forwarded export to NTDLL.RtlQueryDepthSList)
InitializeSListHead (forwarded export to NTDLL.RtlInitializeSListHead)
GetModuleHandleExA
GetModuleHandleExW
IsWow64Process
IsWow64Message
GetProcessHandleCount
GetNativeSystemInfo (same as GetSystemInfo, simply added another export table entry)
SetDllDirectoryA
SetDllDirectoryW
GetDllDirectoryA
GetDllDirectoryW
AttachConsole
TzSpecificLocalTimeToSystemTime
SetClientTimeZoneInformation
IsValidUILanguage
GetSystemWow64DirectoryA
GetSystemWow64DirectoryW
SetHandleContext
GetProcessId
GetSystemTimes
CreateMemoryResourceNotification
QueryMemoryResourceNotification
AddVectoredExceptionHandler (forwarded export to NTDLL.RtlAddVectoredExceptionHandler)
RemoveVectoredExceptionHandler (forwarded export to NTDLL.RtlRemoveAddVectoredExceptionHandler)
RtlCaptureStackBackTrace
SetThreadUILanguage
LZStart
GetExpandedNameA
GetExpandedNameW
LZInit
LZDone
LZCreateFileW
LZOpenFileA
LZOpenFileW
LZSeek
LZRead
LZClose
LZCloseFile
LZCopy
CopyLZFile
GetVolumePathNamesForVolumeNameW
GetVolumePathNamesForVolumeNameA
GetHandleContext
GetCPFileNameFromRegistry
EnumerateLocalComputerNamesW
EnumerateLocalComputerNamesA
CreateSocketHandle
CreateNlsSecurityDescriptor
AddLocalAlternateComputerNameW
AddLocalAlternateComputerNameA
RemoveLocalAlternateComputerNameW
RemoveLocalAlternateComputerNameA
SetLocalPrimaryComputerNameW
SetLocalPrimaryComputerNameA
RtlCaptureContext
win32k.sys
EngIsSemaphoreOwned
EngClearEvent
EngBugCheckEx (forwards to NTOSKRNL.KeBugCheckEx)
EngAllocSectionMem
EngFreeSectionMem
EngMapSection
I'm prepared to release a new version of MS11-012 that also contains the new win32k.sys just to be safe, but I'm not sure which version is best to use as a starting point: the last one I released or tomasz's updated version. Any recommendations?
This post has been edited by WildBill: 04 December 2011 - 02:12 AM