Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RASAPI32] Add stub for RasGetConnectionStatistics #12

Merged
merged 1 commit into from Dec 28, 2017

Conversation

binarymaster
Copy link
Member

That's my patch from CORE-10426.

Copy link
Member

@learn-more learn-more left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use your real name for the commit.

@binarymaster
Copy link
Member Author

@learn-more that's my real name, I already commited (sent patches) with it.

See: https://github.com/reactos/reactos/search?utf8=%E2%9C%93&q=Stas%27M&type=Commits

@learn-more
Copy link
Member

@binarymaster : the commit lists as author: 'From: binarymaster redacted@gmail.com'

@binarymaster
Copy link
Member Author

UPD: just noticed, there was nickname instead of name in commit author field, thanks!

@binarymaster
Copy link
Member Author

Fixed author field, and rebased with latest changes.

@HeisSpiter
Copy link
Member

This shouldn't be merged here. This is a Winesynced DLL. You should propose upstream (either Wine or Wine-Staging).

@binarymaster
Copy link
Member Author

You should propose upstream (either Wine or Wine-Staging).

Could you do this? The patch is pretty simple.

I found it a bit complicated (still cloning wine repo, about a hour).

@binarymaster
Copy link
Member Author

binarymaster commented Oct 4, 2017

UPD: filed a patch to Wine-Staging: https://dev.wine-staging.com/patches/203/

Hope I've done it right.

@gonzoMD
Copy link
Member

gonzoMD commented Oct 6, 2017

Got accepted \o/

@feikname
Copy link

feikname commented Oct 7, 2017

I found it a bit complicated (still cloning wine repo, about a hour).

@binarymaster you can clone big repos with the --depth and --single-branch options to decrease download size by limiting the amount of history that will be downloaded and which branch you want downloaded. Like this:

git clone protocol://URL.git --branch master --single-branch --depth 1

It's very useful for quick patches in big repositories.

Diff history will be ommited in your local clone, so you won't be able to view the changes a file has gotten beyond the depth you specify. In case you ever need/want to finish downloading the remaining history, you can use git fetch --unshallow.

@tkreuzer
Copy link
Contributor

tkreuzer commented Oct 7, 2017

@AmineKhaldi: Shall we still apply the patch, or import the related wine-staging instead?

@AmineKhaldi
Copy link
Member

@tkreuzer I'd prefer picking this up from the Wine Staging side if that's okay, otherwise we would for example need to go over the sync commits (that list of changes you see in the commit log of each module sync) with a fine tooth comb to eliminate all the commits that we already merged outside the syncs.

@binarymaster
Copy link
Member Author

Along with this commit 5048dc8 the patch resolves the issue!

image

@learn-more
Copy link
Member

In that case we can close this PR?

@binarymaster
Copy link
Member Author

@learn-more see my last comment in CORE-10426, without this patch service fails to start.

@binarymaster
Copy link
Member Author

Commit 5048dc8 only allows to pass the install without errors.

@learn-more
Copy link
Member

Yes but this exact commit comes from the staging side, so we do not need this PR anymore.

@binarymaster
Copy link
Member Author

binarymaster commented Oct 14, 2017

Well, it would be better to sync this first, then close the PR. 🙄

@AmineKhaldi can you do it?

@AmineKhaldi AmineKhaldi added the 3rd party sync Updating 3rd party components, such as Wine and others label Oct 25, 2017
@sanchaez
Copy link
Member

sanchaez commented Nov 4, 2017

Is this done?

@binarymaster
Copy link
Member Author

Awaits to be synced.

@binarymaster
Copy link
Member Author

https://source.winehq.org/git/wine.git/commit/290aec59aa18e0bdd481c9ae36e24a75e1254bc8

My patch just got into Wine!

@reactos reactos deleted a comment from jeditobe Nov 30, 2017
@AmineKhaldi AmineKhaldi merged commit e7485ea into reactos:master Dec 28, 2017
@binarymaster binarymaster deleted the rasapi branch December 28, 2017 11:29
DarkFire01 pushed a commit to Ring-0-Productions/reactos that referenced this pull request Apr 12, 2022
# This is the 1st commit message:

[SPEC2DEF] Implement generating export patch information

Now spec2def uses the version annotations in spec files to generate a table, which will be used to dynamically patch the export table based on the current process' appcompat settings, when a dll is initialized, allowing to export the appropriate functions for each version.

This feature is still disabled in config.cmake with the variable DISABLE_EXPORT_VERSIONING.

# This is the commit message #2:

[NTDLL] Add mechanism to patch the export table at runtime

The loader checks for a ros-compat-descriptor, and if one is found, parses it's entries. Each entry corresponds to an export and provides a bitmask that specifies on what Windows version the export exists. If the bit for the process' appcompat version (default is still Windows 2003) is set, the export will be kept, otherwise the export will be moved into a second (private) export table. If a module has a ros-compat-descritor, it is still allowed to import these hidden exports.

# This is the commit message #3:

[ROSCOMPAT_APITEST] Add initial test for export rewriting

# This is the commit message #4:

[COMCTL32] Include roscompat descriptor

# This is the commit message #5:

[WINHTTP] Include roscompat descriptor,
so that winhttp can use nt6+ apis

# This is the commit message reactos#6:

[REACTOS] Make sure xxx_vista is linked to before xxx

This is required, because with dynamically patched export tables we will export all vista functions from the main dll, and you can link to them at compile time, but they will not be resolved at runtime, unless the importer has a roscompat-descriptor. Linking the vista version first will resolve the imports from the vista dll.

# This is the commit message reactos#7:

[NTDLL] Don't derive appcompat version from manifest

# This is the commit message reactos#8:

[KERNEL32] Export more Vista APIs

Create kernel32_vista_static library and link both kernel32_vista and kernel32 to it.
Export some vista functions from kernel32.

# This is the commit message reactos#9:

[NTDLL] Link rtl_vista and export some vista functions

# This is the commit message reactos#10:

[APISETS] Improve/fix up some exports

# This is the commit message reactos#11:

[MSVCRT] Export _vcwprintf

# This is the commit message reactos#12:

[KERNEL32_APITEST] Hack the loader test

The test is mapping ntdll using MapViewOfFile, bypassing the loader, then enumerates it's exports, and then passes the names to GetProcAddress, which is hiding some of the original exports.
At this point we do not support this scenario.

# This is the commit message reactos#13:

[SDK] Enable export patching

# This is the commit message reactos#14:

[MSVCRT][CPPRT] Adjust Cxxhandler3

# This is the commit message reactos#15:

oops
DarkFire01 pushed a commit to Ring-0-Productions/reactos that referenced this pull request Apr 12, 2022
# This is the 1st commit message:

[SPEC2DEF] Implement generating export patch information

Now spec2def uses the version annotations in spec files to generate a table, which will be used to dynamically patch the export table based on the current process' appcompat settings, when a dll is initialized, allowing to export the appropriate functions for each version.

This feature is still disabled in config.cmake with the variable DISABLE_EXPORT_VERSIONING.

# This is the commit message #2:

[NTDLL] Add mechanism to patch the export table at runtime

The loader checks for a ros-compat-descriptor, and if one is found, parses it's entries. Each entry corresponds to an export and provides a bitmask that specifies on what Windows version the export exists. If the bit for the process' appcompat version (default is still Windows 2003) is set, the export will be kept, otherwise the export will be moved into a second (private) export table. If a module has a ros-compat-descritor, it is still allowed to import these hidden exports.

# This is the commit message #3:

[ROSCOMPAT_APITEST] Add initial test for export rewriting

# This is the commit message #4:

[COMCTL32] Include roscompat descriptor

# This is the commit message #5:

[WINHTTP] Include roscompat descriptor,
so that winhttp can use nt6+ apis

# This is the commit message reactos#6:

[REACTOS] Make sure xxx_vista is linked to before xxx

This is required, because with dynamically patched export tables we will export all vista functions from the main dll, and you can link to them at compile time, but they will not be resolved at runtime, unless the importer has a roscompat-descriptor. Linking the vista version first will resolve the imports from the vista dll.

# This is the commit message reactos#7:

[NTDLL] Don't derive appcompat version from manifest

# This is the commit message reactos#8:

[KERNEL32] Export more Vista APIs

Create kernel32_vista_static library and link both kernel32_vista and kernel32 to it.
Export some vista functions from kernel32.

# This is the commit message reactos#9:

[NTDLL] Link rtl_vista and export some vista functions

# This is the commit message reactos#10:

[APISETS] Improve/fix up some exports

# This is the commit message reactos#11:

[MSVCRT] Export _vcwprintf

# This is the commit message reactos#12:

[KERNEL32_APITEST] Hack the loader test

The test is mapping ntdll using MapViewOfFile, bypassing the loader, then enumerates it's exports, and then passes the names to GetProcAddress, which is hiding some of the original exports.
At this point we do not support this scenario.

# This is the commit message reactos#13:

[SDK] Enable export patching

# This is the commit message reactos#14:

[MSVCRT][CPPRT] Adjust Cxxhandler3

# This is the commit message reactos#15:

oops
DarkFire01 pushed a commit to Ring-0-Productions/reactos that referenced this pull request Apr 14, 2022
# This is the 1st commit message:

[SPEC2DEF] Implement generating export patch information

Now spec2def uses the version annotations in spec files to generate a table, which will be used to dynamically patch the export table based on the current process' appcompat settings, when a dll is initialized, allowing to export the appropriate functions for each version.

This feature is still disabled in config.cmake with the variable DISABLE_EXPORT_VERSIONING.

# This is the commit message #2:

[NTDLL] Add mechanism to patch the export table at runtime

The loader checks for a ros-compat-descriptor, and if one is found, parses it's entries. Each entry corresponds to an export and provides a bitmask that specifies on what Windows version the export exists. If the bit for the process' appcompat version (default is still Windows 2003) is set, the export will be kept, otherwise the export will be moved into a second (private) export table. If a module has a ros-compat-descritor, it is still allowed to import these hidden exports.

# This is the commit message #3:

[ROSCOMPAT_APITEST] Add initial test for export rewriting

# This is the commit message #4:

[COMCTL32] Include roscompat descriptor

# This is the commit message #5:

[WINHTTP] Include roscompat descriptor,
so that winhttp can use nt6+ apis

# This is the commit message reactos#6:

[REACTOS] Make sure xxx_vista is linked to before xxx

This is required, because with dynamically patched export tables we will export all vista functions from the main dll, and you can link to them at compile time, but they will not be resolved at runtime, unless the importer has a roscompat-descriptor. Linking the vista version first will resolve the imports from the vista dll.

# This is the commit message reactos#7:

[NTDLL] Don't derive appcompat version from manifest

# This is the commit message reactos#8:

[KERNEL32] Export more Vista APIs

Create kernel32_vista_static library and link both kernel32_vista and kernel32 to it.
Export some vista functions from kernel32.

# This is the commit message reactos#9:

[NTDLL] Link rtl_vista and export some vista functions

# This is the commit message reactos#10:

[APISETS] Improve/fix up some exports

# This is the commit message reactos#11:

[MSVCRT] Export _vcwprintf

# This is the commit message reactos#12:

[KERNEL32_APITEST] Hack the loader test

The test is mapping ntdll using MapViewOfFile, bypassing the loader, then enumerates it's exports, and then passes the names to GetProcAddress, which is hiding some of the original exports.
At this point we do not support this scenario.

# This is the commit message reactos#13:

[SDK] Enable export patching

# This is the commit message reactos#14:

[MSVCRT][CPPRT] Adjust Cxxhandler3

# This is the commit message reactos#15:

oops
DarkFire01 pushed a commit to Ring-0-Productions/reactos that referenced this pull request May 7, 2022
# This is the 1st commit message:

[SPEC2DEF] Implement generating export patch information

Now spec2def uses the version annotations in spec files to generate a table, which will be used to dynamically patch the export table based on the current process' appcompat settings, when a dll is initialized, allowing to export the appropriate functions for each version.

This feature is still disabled in config.cmake with the variable DISABLE_EXPORT_VERSIONING.

# This is the commit message #2:

[NTDLL] Add mechanism to patch the export table at runtime

The loader checks for a ros-compat-descriptor, and if one is found, parses it's entries. Each entry corresponds to an export and provides a bitmask that specifies on what Windows version the export exists. If the bit for the process' appcompat version (default is still Windows 2003) is set, the export will be kept, otherwise the export will be moved into a second (private) export table. If a module has a ros-compat-descritor, it is still allowed to import these hidden exports.

# This is the commit message #3:

[ROSCOMPAT_APITEST] Add initial test for export rewriting

# This is the commit message #4:

[COMCTL32] Include roscompat descriptor

# This is the commit message #5:

[WINHTTP] Include roscompat descriptor,
so that winhttp can use nt6+ apis

# This is the commit message reactos#6:

[REACTOS] Make sure xxx_vista is linked to before xxx

This is required, because with dynamically patched export tables we will export all vista functions from the main dll, and you can link to them at compile time, but they will not be resolved at runtime, unless the importer has a roscompat-descriptor. Linking the vista version first will resolve the imports from the vista dll.

# This is the commit message reactos#7:

[NTDLL] Don't derive appcompat version from manifest

# This is the commit message reactos#8:

[KERNEL32] Export more Vista APIs

Create kernel32_vista_static library and link both kernel32_vista and kernel32 to it.
Export some vista functions from kernel32.

# This is the commit message reactos#9:

[NTDLL] Link rtl_vista and export some vista functions

# This is the commit message reactos#10:

[APISETS] Improve/fix up some exports

# This is the commit message reactos#11:

[MSVCRT] Export _vcwprintf

# This is the commit message reactos#12:

[KERNEL32_APITEST] Hack the loader test

The test is mapping ntdll using MapViewOfFile, bypassing the loader, then enumerates it's exports, and then passes the names to GetProcAddress, which is hiding some of the original exports.
At this point we do not support this scenario.

# This is the commit message reactos#13:

[SDK] Enable export patching

# This is the commit message reactos#14:

[MSVCRT][CPPRT] Adjust Cxxhandler3

# This is the commit message reactos#15:

oops
DarkFire01 pushed a commit to Ring-0-Productions/reactos that referenced this pull request Jul 2, 2022
# This is the 1st commit message:

[SPEC2DEF] Implement generating export patch information

Now spec2def uses the version annotations in spec files to generate a table, which will be used to dynamically patch the export table based on the current process' appcompat settings, when a dll is initialized, allowing to export the appropriate functions for each version.

This feature is still disabled in config.cmake with the variable DISABLE_EXPORT_VERSIONING.

# This is the commit message #2:

[NTDLL] Add mechanism to patch the export table at runtime

The loader checks for a ros-compat-descriptor, and if one is found, parses it's entries. Each entry corresponds to an export and provides a bitmask that specifies on what Windows version the export exists. If the bit for the process' appcompat version (default is still Windows 2003) is set, the export will be kept, otherwise the export will be moved into a second (private) export table. If a module has a ros-compat-descritor, it is still allowed to import these hidden exports.

# This is the commit message #3:

[ROSCOMPAT_APITEST] Add initial test for export rewriting

# This is the commit message #4:

[COMCTL32] Include roscompat descriptor

# This is the commit message #5:

[WINHTTP] Include roscompat descriptor,
so that winhttp can use nt6+ apis

# This is the commit message reactos#6:

[REACTOS] Make sure xxx_vista is linked to before xxx

This is required, because with dynamically patched export tables we will export all vista functions from the main dll, and you can link to them at compile time, but they will not be resolved at runtime, unless the importer has a roscompat-descriptor. Linking the vista version first will resolve the imports from the vista dll.

# This is the commit message reactos#7:

[NTDLL] Don't derive appcompat version from manifest

# This is the commit message reactos#8:

[KERNEL32] Export more Vista APIs

Create kernel32_vista_static library and link both kernel32_vista and kernel32 to it.
Export some vista functions from kernel32.

# This is the commit message reactos#9:

[NTDLL] Link rtl_vista and export some vista functions

# This is the commit message reactos#10:

[APISETS] Improve/fix up some exports

# This is the commit message reactos#11:

[MSVCRT] Export _vcwprintf

# This is the commit message reactos#12:

[KERNEL32_APITEST] Hack the loader test

The test is mapping ntdll using MapViewOfFile, bypassing the loader, then enumerates it's exports, and then passes the names to GetProcAddress, which is hiding some of the original exports.
At this point we do not support this scenario.

# This is the commit message reactos#13:

[SDK] Enable export patching

# This is the commit message reactos#14:

[MSVCRT][CPPRT] Adjust Cxxhandler3

# This is the commit message reactos#15:

oops
archeYR pushed a commit to Ring-0-Productions/reactos that referenced this pull request Jul 2, 2022
# This is the 1st commit message:

[SPEC2DEF] Implement generating export patch information

Now spec2def uses the version annotations in spec files to generate a table, which will be used to dynamically patch the export table based on the current process' appcompat settings, when a dll is initialized, allowing to export the appropriate functions for each version.

This feature is still disabled in config.cmake with the variable DISABLE_EXPORT_VERSIONING.

# This is the commit message #2:

[NTDLL] Add mechanism to patch the export table at runtime

The loader checks for a ros-compat-descriptor, and if one is found, parses it's entries. Each entry corresponds to an export and provides a bitmask that specifies on what Windows version the export exists. If the bit for the process' appcompat version (default is still Windows 2003) is set, the export will be kept, otherwise the export will be moved into a second (private) export table. If a module has a ros-compat-descritor, it is still allowed to import these hidden exports.

# This is the commit message #3:

[ROSCOMPAT_APITEST] Add initial test for export rewriting

# This is the commit message #4:

[COMCTL32] Include roscompat descriptor

# This is the commit message #5:

[WINHTTP] Include roscompat descriptor,
so that winhttp can use nt6+ apis

# This is the commit message reactos#6:

[REACTOS] Make sure xxx_vista is linked to before xxx

This is required, because with dynamically patched export tables we will export all vista functions from the main dll, and you can link to them at compile time, but they will not be resolved at runtime, unless the importer has a roscompat-descriptor. Linking the vista version first will resolve the imports from the vista dll.

# This is the commit message reactos#7:

[NTDLL] Don't derive appcompat version from manifest

# This is the commit message reactos#8:

[KERNEL32] Export more Vista APIs

Create kernel32_vista_static library and link both kernel32_vista and kernel32 to it.
Export some vista functions from kernel32.

# This is the commit message reactos#9:

[NTDLL] Link rtl_vista and export some vista functions

# This is the commit message reactos#10:

[APISETS] Improve/fix up some exports

# This is the commit message reactos#11:

[MSVCRT] Export _vcwprintf

# This is the commit message reactos#12:

[KERNEL32_APITEST] Hack the loader test

The test is mapping ntdll using MapViewOfFile, bypassing the loader, then enumerates it's exports, and then passes the names to GetProcAddress, which is hiding some of the original exports.
At this point we do not support this scenario.

# This is the commit message reactos#13:

[SDK] Enable export patching

# This is the commit message reactos#14:

[MSVCRT][CPPRT] Adjust Cxxhandler3

# This is the commit message reactos#15:

oops
DarkFire01 pushed a commit to Ring-0-Productions/reactos that referenced this pull request Aug 13, 2022
# This is the 1st commit message:

[SPEC2DEF] Implement generating export patch information

Now spec2def uses the version annotations in spec files to generate a table, which will be used to dynamically patch the export table based on the current process' appcompat settings, when a dll is initialized, allowing to export the appropriate functions for each version.

This feature is still disabled in config.cmake with the variable DISABLE_EXPORT_VERSIONING.

# This is the commit message #2:

[NTDLL] Add mechanism to patch the export table at runtime

The loader checks for a ros-compat-descriptor, and if one is found, parses it's entries. Each entry corresponds to an export and provides a bitmask that specifies on what Windows version the export exists. If the bit for the process' appcompat version (default is still Windows 2003) is set, the export will be kept, otherwise the export will be moved into a second (private) export table. If a module has a ros-compat-descritor, it is still allowed to import these hidden exports.

# This is the commit message #3:

[ROSCOMPAT_APITEST] Add initial test for export rewriting

# This is the commit message #4:

[COMCTL32] Include roscompat descriptor

# This is the commit message #5:

[WINHTTP] Include roscompat descriptor,
so that winhttp can use nt6+ apis

# This is the commit message reactos#6:

[REACTOS] Make sure xxx_vista is linked to before xxx

This is required, because with dynamically patched export tables we will export all vista functions from the main dll, and you can link to them at compile time, but they will not be resolved at runtime, unless the importer has a roscompat-descriptor. Linking the vista version first will resolve the imports from the vista dll.

# This is the commit message reactos#7:

[NTDLL] Don't derive appcompat version from manifest

# This is the commit message reactos#8:

[KERNEL32] Export more Vista APIs

Create kernel32_vista_static library and link both kernel32_vista and kernel32 to it.
Export some vista functions from kernel32.

# This is the commit message reactos#9:

[NTDLL] Link rtl_vista and export some vista functions

# This is the commit message reactos#10:

[APISETS] Improve/fix up some exports

# This is the commit message reactos#11:

[MSVCRT] Export _vcwprintf

# This is the commit message reactos#12:

[KERNEL32_APITEST] Hack the loader test

The test is mapping ntdll using MapViewOfFile, bypassing the loader, then enumerates it's exports, and then passes the names to GetProcAddress, which is hiding some of the original exports.
At this point we do not support this scenario.

# This is the commit message reactos#13:

[SDK] Enable export patching

# This is the commit message reactos#14:

[MSVCRT][CPPRT] Adjust Cxxhandler3

# This is the commit message reactos#15:

oops
DarkFire01 pushed a commit to Ring-0-Productions/reactos that referenced this pull request Aug 14, 2022
# This is the 1st commit message:

[SPEC2DEF] Implement generating export patch information

Now spec2def uses the version annotations in spec files to generate a table, which will be used to dynamically patch the export table based on the current process' appcompat settings, when a dll is initialized, allowing to export the appropriate functions for each version.

This feature is still disabled in config.cmake with the variable DISABLE_EXPORT_VERSIONING.

# This is the commit message #2:

[NTDLL] Add mechanism to patch the export table at runtime

The loader checks for a ros-compat-descriptor, and if one is found, parses it's entries. Each entry corresponds to an export and provides a bitmask that specifies on what Windows version the export exists. If the bit for the process' appcompat version (default is still Windows 2003) is set, the export will be kept, otherwise the export will be moved into a second (private) export table. If a module has a ros-compat-descritor, it is still allowed to import these hidden exports.

# This is the commit message #3:

[ROSCOMPAT_APITEST] Add initial test for export rewriting

# This is the commit message #4:

[COMCTL32] Include roscompat descriptor

# This is the commit message #5:

[WINHTTP] Include roscompat descriptor,
so that winhttp can use nt6+ apis

# This is the commit message reactos#6:

[REACTOS] Make sure xxx_vista is linked to before xxx

This is required, because with dynamically patched export tables we will export all vista functions from the main dll, and you can link to them at compile time, but they will not be resolved at runtime, unless the importer has a roscompat-descriptor. Linking the vista version first will resolve the imports from the vista dll.

# This is the commit message reactos#7:

[NTDLL] Don't derive appcompat version from manifest

# This is the commit message reactos#8:

[KERNEL32] Export more Vista APIs

Create kernel32_vista_static library and link both kernel32_vista and kernel32 to it.
Export some vista functions from kernel32.

# This is the commit message reactos#9:

[NTDLL] Link rtl_vista and export some vista functions

# This is the commit message reactos#10:

[APISETS] Improve/fix up some exports

# This is the commit message reactos#11:

[MSVCRT] Export _vcwprintf

# This is the commit message reactos#12:

[KERNEL32_APITEST] Hack the loader test

The test is mapping ntdll using MapViewOfFile, bypassing the loader, then enumerates it's exports, and then passes the names to GetProcAddress, which is hiding some of the original exports.
At this point we do not support this scenario.

# This is the commit message reactos#13:

[SDK] Enable export patching

# This is the commit message reactos#14:

[MSVCRT][CPPRT] Adjust Cxxhandler3

# This is the commit message reactos#15:

oops
DarkFire01 pushed a commit to Ring-0-Productions/reactos that referenced this pull request Sep 13, 2022
# This is the 1st commit message:

[SPEC2DEF] Implement generating export patch information

Now spec2def uses the version annotations in spec files to generate a table, which will be used to dynamically patch the export table based on the current process' appcompat settings, when a dll is initialized, allowing to export the appropriate functions for each version.

This feature is still disabled in config.cmake with the variable DISABLE_EXPORT_VERSIONING.

# This is the commit message #2:

[NTDLL] Add mechanism to patch the export table at runtime

The loader checks for a ros-compat-descriptor, and if one is found, parses it's entries. Each entry corresponds to an export and provides a bitmask that specifies on what Windows version the export exists. If the bit for the process' appcompat version (default is still Windows 2003) is set, the export will be kept, otherwise the export will be moved into a second (private) export table. If a module has a ros-compat-descritor, it is still allowed to import these hidden exports.

# This is the commit message #3:

[ROSCOMPAT_APITEST] Add initial test for export rewriting

# This is the commit message #4:

[COMCTL32] Include roscompat descriptor

# This is the commit message #5:

[WINHTTP] Include roscompat descriptor,
so that winhttp can use nt6+ apis

# This is the commit message reactos#6:

[REACTOS] Make sure xxx_vista is linked to before xxx

This is required, because with dynamically patched export tables we will export all vista functions from the main dll, and you can link to them at compile time, but they will not be resolved at runtime, unless the importer has a roscompat-descriptor. Linking the vista version first will resolve the imports from the vista dll.

# This is the commit message reactos#7:

[NTDLL] Don't derive appcompat version from manifest

# This is the commit message reactos#8:

[KERNEL32] Export more Vista APIs

Create kernel32_vista_static library and link both kernel32_vista and kernel32 to it.
Export some vista functions from kernel32.

# This is the commit message reactos#9:

[NTDLL] Link rtl_vista and export some vista functions

# This is the commit message reactos#10:

[APISETS] Improve/fix up some exports

# This is the commit message reactos#11:

[MSVCRT] Export _vcwprintf

# This is the commit message reactos#12:

[KERNEL32_APITEST] Hack the loader test

The test is mapping ntdll using MapViewOfFile, bypassing the loader, then enumerates it's exports, and then passes the names to GetProcAddress, which is hiding some of the original exports.
At this point we do not support this scenario.

# This is the commit message reactos#13:

[SDK] Enable export patching

# This is the commit message reactos#14:

[MSVCRT][CPPRT] Adjust Cxxhandler3

# This is the commit message reactos#15:

oops
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3rd party sync Updating 3rd party components, such as Wine and others
Projects
None yet
9 participants