reactos/sdk/include/ndk
Timo Kreuzer 43dad82fcd
[RTL] Sync actctx.c to wine-5.18 (#6848)
* [WINESYNC] ntdll: Add support for parsing application settings in manifests.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id fc14442970dc6b97032c3cdd76cab33d774dc1a2 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Implement RtlQueryActivationContextApplicationSettings.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 14b9a5af0b44d7e2ca5232ad810c77e561d5d30c by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Propagate the error through the XML buffer in manifest parser.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 7b871727e5cbb8581167acbaae2f4e34dc4ee59e by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Check the namespace in RtlQueryActivationContextApplicationSettings.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id e46259fb823f55aa331381fe56916d20049d52f2 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Use the ARRAY_SIZE() macro.

Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 10f23ddb58b0583c8bce99e59d879c653b389363 by Michael Stefaniuc <mstefani@winehq.org>

* [WINESYNC] ntdll/actctx: Don't stop looking for manifest if dll without manifest is found.

Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 56b3304a019486b52681a05d4b5454b475275e51 by Fabian Maurer <dark.shadow4@web.de>

* [WINESYNC] ntdll: Use the current platform as processorArchitecture instead of a wildcard.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 6abf99b4803003812d4fcf7bf9effc99030cbec9 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Use strncmpiW instead of memicmpW for strings without embedded nulls.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 6fc259a57dafab9e72af13980c021e2a59257935 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Avoid dead initialization (scan-build).

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 6ea282c7e1abd7ab09a5f0a18a437e63f909da96 by Alex Henrie <alexhenrie24@gmail.com>

* [NDK] Add RtlUTF8ToUnicodeN for user mode

* [WINESYNC] ntdll: Use the Rtl UTF8 conversion functions.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id f46fa9c92d08c6e656bc22b94e09aa9dbe7d3be9 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Use module path as assembly path for manifests embedded in resources.

Fixes Office 2016 installer, which removes its .exe directory from load
path, but expects to be able to load files listed in manifest.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 2d764e90dd2c624f7a2d863ab29bd418ed33d252 by Jacek Caban <jacek@codeweavers.com>

* [WINESYNC] ntdll: Store the default process activation context into the PEB.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id e95d0813fdfcfcac2bb1761e62e1d54e6f73cd6d by Gabriel Ivăncescu <gabrielopcode@gmail.com>

* [WINESYNC] ntdll: Use wcsicmp() instead of strcmpiW() where possible.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 3e049b6b962b8e6f048101b9910c09d5b1d8f167 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Use wcsnicmp() instead of strncmpiW() where possible.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id f831b3bd3d6b013893be7645df3a9cd05289c415 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Use RtlEqualUnicodeString() instead of strcmpiW().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 4d93bafe961ed53488ff0fb4b44cb1ad085531fe by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Avoid using memchrW().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 186f189107972b739311f95a4ba3833838349b32 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Avoid using atoiW().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 8f3d869d784753d814a3493d01c3650f45389eda by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Avoid using sprintfW().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id eb1b2e548656dc3d08cbf3c35454621491b84126 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Use wcscpy() instead of strcpyW().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 18411a19b4ea3a68234980c56d4c252670dfc000 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Use wcscat() instead of strcatW().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 80005ee016aeed42967adfe5b3042803d008c50d by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Use wcschr() instead of strchrW().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 6de0ab276b3b79db4331993316f529a43f67c29a by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Use wcsrchr() instead of strrchrW().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 285c5490a4c0ee4a92d042a3e6ab32e6bc14fb49 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Use wcslen() instead of strlenW().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id e003b9884edcccc417d41d30073b312648741aaa by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Use wcscmp() instead of strcmpW().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 4501ab0a7c80e31e602c540a446809e8ae3ebade by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Use wcsncmp() instead of strncmpW().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id e36b97e1d0644f90606d27f5104bb09a910540d2 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Make the windows directory a global variable.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id ca13f489e18fb1f7944e3bdcfdfc4a810bf80994 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Use single field for misc flags in ComClass redirection section.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 72d055854b59db9059a3465f1e65247c0cc5e94e by Nikolay Sivov <nsivov@codeweavers.com>

* [WINESYNC] ntdll: Create class section for proxy-stub interface entries.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id dd9295b415345f2b686b65bd05fae0320cf6dc39 by Nikolay Sivov <nsivov@codeweavers.com>

* [WINESYNC] ntdll: Use the standard C library names for the printf functions.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 4478ba258e45559ac97353ab27951e84dd9865c1 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Implement RtlActivateActivationContextEx().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id c71da19d24a5d6f01e65b3b3691a9d7dd17a2278 by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] ntdll: Fix a memory leak (Valgrind).

Signed-off-by: Chao Long <longchao@uniontech.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id d0946955ec21e4da57aaec92459f81f131b27a49 by Chao Long <longchao@uniontech.com>

* [WINESYNC] rtl is now in sync with wine-staging wine-5.18

---------

Co-authored-by: winesync <ros-dev@reactos.org>
Co-authored-by: winesync <rosdev@reactos.org>
2024-07-09 11:35:41 +03:00
..
amd64 [NTOS:KE/x64] Implement processor freeze code 2024-04-23 15:50:06 +02:00
arch
arm
arm64
i386 [SDK:NDK/XDK] Remove x86 KeGetPcr() definition from the DDK (#6526) 2024-03-10 16:55:44 +01:00
powerpc
tests
asm.h
cctypes.h
cmfuncs.h
cmtypes.h
dbgkfuncs.h
dbgktypes.h
exfuncs.h
extypes.h
gpl.txt
halfuncs.h
haltypes.h
ifssupp.h
inbvfuncs.h
inbvtypes.h
inline_ntcurrentteb.h [SDK:NDK/XDK] Sync NtCurrentTeb() definitions between NDK and PSDK winnt.h (#6542) 2024-03-10 17:10:50 +01:00
iofuncs.h
iotypes.h
kbd.h
kdfuncs.h
kdtypes.h
kefuncs.h
ketypes.h
ldrfuncs.h
ldrtypes.h
lgpl.txt
lpcfuncs.h
lpctypes.h
mmfuncs.h
mmtypes.h
muptypes.h
ndk.txt
ntndk.h
obfuncs.h
obtypes.h
peb_teb.h
pofuncs.h
potypes.h
psfuncs.h [SDK:NDK/XDK] Sync NtCurrentTeb() definitions between NDK and PSDK winnt.h (#6542) 2024-03-10 17:10:50 +01:00
pstypes.h
readme.txt
rtlfuncs.h [RTL] Sync actctx.c to wine-5.18 (#6848) 2024-07-09 11:35:41 +03:00
rtltypes.h
section_attribs.h
sefuncs.h
setypes.h
umfuncs.h
umtypes.h
vffuncs.h
vftypes.h

Native Development Kit README
        NDK 1.00
-----------------------------

0. PREAMBLE

0.1 COPYRIGHT

The NDK is Copyright © 2005-2012 Alex Ionescu.
It is actively maintained by Alex Ionescu, and open contributions are welcome.

0.2 CONTACT INFORMATION

The maintainer and author, Alex Ionescu, may be reached through the following means:

Email: 	aionescu@gmail.com
Mail:	512 Van Ness #302. San Francisco, CA
Phone: 	(424) 781-7156

1. LICENSE

1.1 OPEN SOURCE USAGE

Open Source Projects may choose to use the following licenses:

GNU GENERAL PUBLIC LICENSE Version 2, June 1991

		OR

GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999

                OR

EITHER of the aforementioned licenses AND (at your option)
any later version of the above said licenses.

1.2 LICENSE LIMITATIONS

The choice is yours to make based on the license which is most compatible with your
software.

You MUST read GPL.TXT or LGPL.TXT after your decision. Violating your chosen license
voids your usage rights of the NDK and will lead to legal action on the part of the
author. Using this software with any later version of the GNU GPL or LGPL in no way
changes your obligations under the versions listed above. You MUST still release the 
NDK and its changes under the terms of the original licenses (either GPLv2 or LGPLv2.1)
as listed above. This DOES NOT AFFECT the license of a software package released under
a later version and ONLY serves to clarify that using the NDK with a later version is
permitted provided the aforementioned terms are met.

If your Open Source product does not use a license which is compatible with the ones
listed above, please contact the author to reach a mutual agreement to find a better
solution for your product. Alternatively, you may choose to use the Proprietary Usage
license displayed below in section 1.3

If you are unsure of whether or not your product qualifies as an Open Source product,
please contact the Free Software Foundation, or visit their website at www.fsf.org.

1.3 PROPRIETARY USAGE

Because it may be undesirable or impossible to adapt this software to your commercial
and/or proprietary product(s) and/or service(s) using a (L)GPL license, proprietary
products are free to use the following license:

NDK LICENSE Version 1, November 2005

You MUST read NDK.TXT for the full text of this license. Violating your chosen license
voids your usage rights of the NDK, constitutes a copyright violation, and will lead to
legal action on the part of the author.

If you are unsure of have any questions about the NDK License, please contact the
author for further clarification.

2. ORIGINS OF NDK MATERIAL, AND ADDING YOUR OWN

2.1 CONTRIBUTIONS AND SOURCES

The NDK could not exist without the various contributions made by a variety of people
and sources. The following public sources of information were lawfully used:

- GNU NTIFS.H, Revision 43
- W32API, Version 2.5
- Microsoft Windows Driver Kit
- Microsoft Driver Development Kit 2003 SP1
- Microsoft Driver Development Kit 2000
- Microsoft Driver Development Kit NT 4
- Microsoft Driver Development Kit WinME
- Microsoft Installable File Systems Kit 2003 SP1
- Microsoft Windows Debugger (WinDBG) 6.5.0003.7
- Microsoft Public Symbolic Data
- Microsoft Public Windows Binaries (strings)
- OSR Technical Articles
- Undocumented windows 2000 Secrets, a Programmer's Cookbook
- Windows NT/2000 Native API Reference
- Windows NT File System Internals
- Windows Internals I - II
- Windows Internals 4th Edition

If the information contained in these sources was copyrighted, the information was not
copied, but simply used as a basis for developing a compatible and identical definition.
No information protected by a patent or NDA was used. All information was publically
located through the Internet or purchased or licensed for lawful use.

Additionally, the following people contributed to the NDK:

- Art Yerkes
- Eric Kohl
- Filip Navara
- Steven Edwards
- Matthieu Suiche
- Stefan Ginsberg
- Timo Kreuzer

2.2 BECOMING A CONTRIBUTOR

To contribute information to the NDK, simply contact the author with your new structure,
definition, enumeration, or prototype. Please make sure that your addition is:

1) Actually correct!
2) Present in Windows NT 5, 5.1, 5.2, 6.0, 6.1 and/or 6.2
3) Not already accessible through another public header in the DDK, IFS, WDK and/or PSDK.
4) From a publically verifiable source. The author needs to be able to search for your
   addition in a public information location (book, Internet, etc) and locate this definition.
5) Not Reversed. Reversing a type is STRONGLY discouraged and a reversed type will more then likely
   not be accepted, due to the fact that functionality and naming will be entirely guessed, and things
   like unions are almost impossible to determine. It can also bring up possible legal ramifications
   depending on your location. However, using a tool to dump the strings inside an executable
   for the purpose of locating the actual name or definition of a structure (sometimes possible due
   to ASSERTs or debugging strings) is considered 'fair use' and will be a likely candidate.

If your contribution satsfies these points, then please submit it to the author with the following
statement:

"
Copyright Grant.
I grant to you a perpetual (for the duration of the applicable copyright), worldwide, non-exclusive,
no-charge, royalty-free, copyright license, without any obligation for accounting to me, to reproduce,
prepare derivative works of, publicly display, publicly perform, sublicense, distribute, and implement
my Contribution to the full extent of my copyright interest in the Contribution.
"

If you wish to be credited for your contribution (which the author is more than happy to do!), you
should add:

"As a condition of the copyright grant, you must include an attribution in any derivative work you make
based on the Contribution. That attribution must include, at minimum, my name."

This will allow you to have your name in the readme.txt file (which you are now reading). If you wish to
remain anonymous, simply do not include this statement.

3. USAGE

3.1 ORGANIZATION

   * The NDK is organized in a main folder (include/ndk) with arch-specific subfolders (ex: include/ndk/i386). 
   * The NDK is structured by NT Subsystem Component (ex: ex, ps, rtl, etc). 
   * The NDK can either be included on-demand (#include <ndk/xxxxx.h>) or globally (#include <ndk/ntndk.h>).
     The former is recommended to reduce compile time. 
   * The NDK is structured by function and type. Every Subsystem Component has an associated "xxfuncs.h" and
    "xxtypes.h" header, where "xx" is the Subsystem (ex: iofuncs.h, iotypes.h) 
   * The NDK has a special file called "umtypes.h" which exports to User-Mode or Native-Mode Applications the
     basic NT types which are present in ntdef.h. This file cannot be included since it would conflict with
     winnt.h and/or windef.h. Thus, umtypes.h provides the missing types. This file is automatically included
     in a User-Mode NDK project. 
   * The NDK also includes a file called "umfuncs.h" which exports to User-Mode or Native-Mode Applications
     undocumented functions which can only be accessed from ntdll.dll. 
   * The NDK has another special file called "ifssupp.h", which exports to Kernel-Mode drivers a few types which
     are only documented in the IFS kit, and are part of some native definitions. It will be deprecated next year
     with the release of the WDK. 

3.2 USING IN YOUR PROJECT

    *  User Mode Application requiring Native Types: 

       #define WIN32_NO_STATUS   /* Tell Windows headers you'll use ntstatus.h from PSDK */
       #include "windows.h"      /* Declare Windows Headers like you normally would */
       #include "ntndk.h"        /* Declare the NDK Headers */

    * Native Mode Application: 

       #include "windows.h"      /* Declare Windows Headers for basic types. NEEDED UNTIL NDK 1.5 */
       #include "ntndk.h"        /* Declare the NDK Headers */

    * Kernel Mode Driver: 

       #include "ntddk.h"       /* Declare DDK Headers like you normally would */
       #include "ntndk.h"       /* Declare the NDK Headers */

    * You may also include only the files you need (example for User-Mode application):

       #define WIN32_NO_STATUS   /* Tell Windows headers you'll use ntstatus.h from PSDK */
       #include "windows.h"      /* Declare Windows Headers like you normally would */
       #include "rtlfuncs.h"     /* Declare the Rtl* Functions */

3.3 CAVEATS

    * winternl.h: This header, part of the PSDK, was released by Microsoft as part of one of the governmen
      lawsuits against it, and documents a certain (minimal) part of the Native API and/or types. Unfortunately,
      Microsoft decided to hack the Native Types and to define them incorrectly, replacing real members by "reserved"
      ones. As such, you 'cannot include winternl.h in any project that uses the NDK. Note however, that the NDK fully
      replaces it and retains compatibility with any project that used it.
    * Native programs: Native programs must include "windows.h" until the next release of the NDK (1.5). The upcoming
      version will automatically detect the lack of missing types and include them. Note however that you will still
      need to have the PSDK installed.