Send MinGW-Notify mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.osdn.me/mailman/listinfo/mingw-notify
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of MinGW-Notify digest..."


Please do not reply to this notification; the sender address is unable to 
accept incoming e-mail.  If you wish to unsubscribe you can do so at 
https://lists.osdn.me/mailman/listinfo/mingw-notify.



Today's Topics:

   1. [mingw] #41567: Some new Win32 APIs are missing from w32api
      (MinGW Notification List)
   2. [mingw] #41567: Some new Win32 APIs are missing from w32api
      (MinGW Notification List)
   3. [mingw] #41567: Some new Win32 APIs are missing from w32api
      (MinGW Notification List)
   4. [mingw] #41567: Some new Win32 APIs are missing from w32api
      (MinGW Notification List)
   5. [mingw] #41567: Some new Win32 APIs are missing from w32api
      (MinGW Notification List)


----------------------------------------------------------------------

Message: 1
Date: Tue, 11 May 2021 17:22:12 +0300
From: MinGW Notification List <[email protected]>
To: OSDN Ticket System <[email protected]>
Subject: [MinGW-Notify] [mingw] #41567: Some new Win32 APIs are
        missing from w32api
Message-ID: <[email protected]>
Content-Type: text/plain; charset=UTF-8

#41567: Some new Win32 APIs are missing from w32api

  Open Date: 2021-02-12 16:20
Last Update: 2021-05-11 17:22

URL for this Ticket:
    https://osdn.net//projects/mingw/ticket/41567
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=41567

---------------------------------------------------------------------

Last Changes/Comment on this Ticket:
2021-05-11 17:22 Updated by: eliz

Comment:

Reply To keith
Reply To eliz
Second, we need functions, data structures, and macros to create and update 
lists of attributes for process and thread creation.

Okay.  In the absence of any third party patch submissions, I decided to have a 
look into this, myself.
I'm sorry I dropped the ball on this.  I actually collected the data, but 
didn't have time to generate patches so that I could submit them to you.
 These are:
 * InitializeProcThreadAttributeList function
 * UpdateProcThreadAttribute function
 * DeleteProcThreadAttributeList function

I can find prototypes for these, on docs.microsoft.com, so no problem to add 
them to <winbase.h>.  AFAICT, they should be available from Vista onwards — in 
fact, they must be if STARTUPINFOEX is, because the additional data which this 
incorporates, over STARTUPINFO itself, cannot be manipulated without them.
Thanks.
 * PROC_THREAD_ATTRIBUTE_LIST structure

AFAICT, this is undocumented (by Microsoft), but maybe we can get away with a 
opaque declaration, since this should only ever be accessed via an 
LPPROC_THREAD_ATTRIBUTE_LIST pointer, and manipulated using the preceding three 
functions.
Don't you need it to declare STARTUPINFOEX?
 * PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE macro
 * Other PROC_THREAD_ATTRIBUTE_* macros

What do you mean by other PROC_THREAD_ATTRIBUTE_* macros?  I'm guessing you are 
referring to those enumerated as valid for the Attribute parameter of 
UpdateThreadAttribute(), but that documentation is utterly useless, because the 
enumeration is no more than a meaningless list of macro names; it does not 
specify appropriate values for any of those macros.

These seem to be supported since Windows 7, with the exception of 
PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE, which is only supported since Windows 10, 
and STARTUPINFOEX, which is supported since Vista.  I think the proper place 
for them is in the winbase.h header file.

Actually, some seem to be supported in Vista, some in Win7, and some not until 
Win8; PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE appears not to be supported even for 
all Win10, but only from Win10-v1809 (October 2018 update).  I agree that 
<winbase.h> is the appropriate header for deployment, but that hardly matters; 
the lack of appropriate publicly accessible documentation is a blocker!  Unless 
someone can provide appropriate third-party documentation, (not copies of 
Microsoft SDK headers), this request cannot be fulfilled.
Are we allowed to look in MinGW64 headers and take the info from there?
We also need the EXTENDED_STARTUPINFO_PRESENT flag for the CreateProcess 
function (this flag is supported since Vista and should be in winbase.h).

This one is easy enough; it is adequately documented here.
Thanks.  And sorry again for not seeing this through.


---------------------------------------------------------------------
Ticket Status:

      Reporter: eliz
         Owner: (None)
          Type: Feature Request
        Status: Open
      Priority: 5 - Medium
     MileStone: (None)
     Component: WSL
      Severity: 5 - Medium
    Resolution: None
---------------------------------------------------------------------

Ticket details:

To compile programs that use the Pseudo Console feature introduced recently 
with Windows 10, there's a need in several additions to the MinGW w32api 
headers and import libraries.
First, we need a value for _WIN32_WINNT that specifies Windows 10, in 
sdkddkver.h:
#define _WIN32_WINNT_WIN10 0x0A00
Second, we need functions, data structures, and macros to create and update 
lists of attributes for process and thread creation.  These are:
InitializeProcThreadAttributeList function
UpdateProcThreadAttribute function
DeleteProcThreadAttributeList function
PROC_THREAD_ATTRIBUTE_LIST structure
STARTUPINFOEX structure
PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE macro
Other PROC_THREAD_ATTRIBUTE_* macros
These seem to be supported since Windows 7, with the exception of 
PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE, which is only supported since Windows 10, 
and STARTUPINFOEX, which is supported since Vista.  I think the proper place 
for them is in the winbase.h header file.
We also need the EXTENDED_STARTUPINFO_PRESENT flag for the CreateProcess 
function (this flag is supported since Vista and should be in winbase.h).
And finally, we need the functions, data types, and macros to manipulate 
pseudo-consoles, available only since Windows 10:
CreatePseudoConsole function
ClosePseudoConsole function
ResizePseudoConsole function
HPCON data type
Thanks in advance for providing these.


-- 
Ticket information of MinGW - Minimalist GNU for Windows project
MinGW - Minimalist GNU for Windows Project is hosted on OSDN

Project URL: https://osdn.net/projects/mingw/
OSDN: https://osdn.net

URL for this Ticket:
    https://osdn.net/projects/mingw/ticket/41567
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=41567


------------------------------

Message: 2
Date: Tue, 11 May 2021 17:18:50 +0100
From: MinGW Notification List <[email protected]>
To: OSDN Ticket System <[email protected]>
Subject: [MinGW-Notify] [mingw] #41567: Some new Win32 APIs are
        missing from w32api
Message-ID: <[email protected]>
Content-Type: text/plain; charset=UTF-8

#41567: Some new Win32 APIs are missing from w32api

  Open Date: 2021-02-12 14:20
Last Update: 2021-05-11 17:18

URL for this Ticket:
    https://osdn.net//projects/mingw/ticket/41567
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=41567

---------------------------------------------------------------------

Last Changes/Comment on this Ticket:
2021-05-11 17:18 Updated by: keith

Comment:

Reply To eliz
Reply To keith
Reply To eliz
 * PROC_THREAD_ATTRIBUTE_LIST structure

AFAICT, this is undocumented (by Microsoft), but maybe we can get away with a 
opaque declaration, since this should only ever be accessed via an 
LPPROC_THREAD_ATTRIBUTE_LIST pointer, and manipulated using the preceding three 
functions.

Don't you need it to declare STARTUPINFOEX?
No, I don't think so.  All that STARTUPINFOEX needs is a pointer to a 
PROC_THREAD_ATTRIBUTE_LIST, which must be allocated separately.  Its size is 
not fixed, but rather, must be determined at initialization time, by calling 
InitializeProcThreadAttributeList() twice, (once to get the size of memory 
block to be allocate, then again to initialize the allocated block), and its 
content must then be specified using UpdateProcThreadAttribute() (as many times 
as there are attributes).  We never access the content directly, (and, since 
Microsoft don't provide an accessor for content retrieval, that content must be 
viewed as write-only, from the user perspective), simply declaring 
PROC_THREAD_ATTRIBUTE_LIST as an opaque struct
 typedef struct _PROC_THREAD_ATTRIBUTE_LIST 
*LPPROC_THREAD_ATTRIBUTE_LIST;should suffice.

---------------------------------------------------------------------
Ticket Status:

      Reporter: eliz
         Owner: (None)
          Type: Feature Request
        Status: Open
      Priority: 5 - Medium
     MileStone: (None)
     Component: WSL
      Severity: 5 - Medium
    Resolution: None
---------------------------------------------------------------------

Ticket details:

To compile programs that use the Pseudo Console feature introduced recently 
with Windows 10, there's a need in several additions to the MinGW w32api 
headers and import libraries.
First, we need a value for _WIN32_WINNT that specifies Windows 10, in 
sdkddkver.h:
#define _WIN32_WINNT_WIN10 0x0A00
Second, we need functions, data structures, and macros to create and update 
lists of attributes for process and thread creation.  These are:
InitializeProcThreadAttributeList function
UpdateProcThreadAttribute function
DeleteProcThreadAttributeList function
PROC_THREAD_ATTRIBUTE_LIST structure
STARTUPINFOEX structure
PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE macro
Other PROC_THREAD_ATTRIBUTE_* macros
These seem to be supported since Windows 7, with the exception of 
PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE, which is only supported since Windows 10, 
and STARTUPINFOEX, which is supported since Vista.  I think the proper place 
for them is in the winbase.h header file.
We also need the EXTENDED_STARTUPINFO_PRESENT flag for the CreateProcess 
function (this flag is supported since Vista and should be in winbase.h).
And finally, we need the functions, data types, and macros to manipulate 
pseudo-consoles, available only since Windows 10:
CreatePseudoConsole function
ClosePseudoConsole function
ResizePseudoConsole function
HPCON data type
Thanks in advance for providing these.


-- 
Ticket information of MinGW - Minimalist GNU for Windows project
MinGW - Minimalist GNU for Windows Project is hosted on OSDN

Project URL: https://osdn.net/projects/mingw/
OSDN: https://osdn.net

URL for this Ticket:
    https://osdn.net/projects/mingw/ticket/41567
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=41567


------------------------------

Message: 3
Date: Tue, 11 May 2021 18:12:58 +0100
From: MinGW Notification List <[email protected]>
To: OSDN Ticket System <[email protected]>
Subject: [MinGW-Notify] [mingw] #41567: Some new Win32 APIs are
        missing from w32api
Message-ID: <[email protected]>
Content-Type: text/plain; charset=UTF-8

#41567: Some new Win32 APIs are missing from w32api

  Open Date: 2021-02-12 14:20
Last Update: 2021-05-11 18:12

URL for this Ticket:
    https://osdn.net//projects/mingw/ticket/41567
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=41567

---------------------------------------------------------------------

Last Changes/Comment on this Ticket:
2021-05-11 18:12 Updated by: keith

Comment:

Reply To eliz
Reply To keith
Reply To eliz
 * PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE macro
 * Other PROC_THREAD_ATTRIBUTE_* macros

What do you mean by other PROC_THREAD_ATTRIBUTE_* macros?  I'm guessing you are 
referring to those enumerated as valid for the Attribute parameter of 
UpdateThreadAttribute(), but that documentation is utterly useless, because the 
enumeration is no more than a meaningless list of macro names; it does not 
specify appropriate values for any of those macros.

These seem to be supported since Windows 7, with the exception of 
PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE, which is only supported since Windows 10, 
and STARTUPINFOEX, which is supported since Vista.  I think the proper place 
for them is in the winbase.h header file.

Actually, some seem to be supported in Vista, some in Win7, and some not until 
Win8; PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE appears not to be supported even for 
all Win10, but only from Win10-v1809 (October 2018 update).  I agree that 
<winbase.h> is the appropriate header for deployment, but that hardly matters; 
the lack of appropriate publicly accessible documentation is a blocker!  Unless 
someone can provide appropriate third-party documentation, (not copies of 
Microsoft SDK headers), this request cannot be fulfilled.

Are we allowed to look in MinGW64 headers and take the info from there?
Sorry, but I have to say "no".  Although I don't have conclusive proof, our 
history with that project leads me to a strong suspicion that their headers 
will have been plagiarized from Microsoft's, in violation of Microsoft's terms 
of use; I will not make myself an accessory to such suspected plagiarism.

---------------------------------------------------------------------
Ticket Status:

      Reporter: eliz
         Owner: (None)
          Type: Feature Request
        Status: Open
      Priority: 5 - Medium
     MileStone: (None)
     Component: WSL
      Severity: 5 - Medium
    Resolution: None
---------------------------------------------------------------------

Ticket details:

To compile programs that use the Pseudo Console feature introduced recently 
with Windows 10, there's a need in several additions to the MinGW w32api 
headers and import libraries.
First, we need a value for _WIN32_WINNT that specifies Windows 10, in 
sdkddkver.h:
#define _WIN32_WINNT_WIN10 0x0A00
Second, we need functions, data structures, and macros to create and update 
lists of attributes for process and thread creation.  These are:
InitializeProcThreadAttributeList function
UpdateProcThreadAttribute function
DeleteProcThreadAttributeList function
PROC_THREAD_ATTRIBUTE_LIST structure
STARTUPINFOEX structure
PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE macro
Other PROC_THREAD_ATTRIBUTE_* macros
These seem to be supported since Windows 7, with the exception of 
PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE, which is only supported since Windows 10, 
and STARTUPINFOEX, which is supported since Vista.  I think the proper place 
for them is in the winbase.h header file.
We also need the EXTENDED_STARTUPINFO_PRESENT flag for the CreateProcess 
function (this flag is supported since Vista and should be in winbase.h).
And finally, we need the functions, data types, and macros to manipulate 
pseudo-consoles, available only since Windows 10:
CreatePseudoConsole function
ClosePseudoConsole function
ResizePseudoConsole function
HPCON data type
Thanks in advance for providing these.


-- 
Ticket information of MinGW - Minimalist GNU for Windows project
MinGW - Minimalist GNU for Windows Project is hosted on OSDN

Project URL: https://osdn.net/projects/mingw/
OSDN: https://osdn.net

URL for this Ticket:
    https://osdn.net/projects/mingw/ticket/41567
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=41567


------------------------------

Message: 4
Date: Tue, 11 May 2021 20:23:17 +0300
From: MinGW Notification List <[email protected]>
To: OSDN Ticket System <[email protected]>
Subject: [MinGW-Notify] [mingw] #41567: Some new Win32 APIs are
        missing from w32api
Message-ID: <[email protected]>
Content-Type: text/plain; charset=UTF-8

#41567: Some new Win32 APIs are missing from w32api

  Open Date: 2021-02-12 16:20
Last Update: 2021-05-11 20:23

URL for this Ticket:
    https://osdn.net//projects/mingw/ticket/41567
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=41567

---------------------------------------------------------------------

Last Changes/Comment on this Ticket:
2021-05-11 20:23 Updated by: eliz

Comment:

Reply To keith
Are we allowed to look in MinGW64 headers and take the info from there?

Sorry, but I have to say "no".  Although I don't have conclusive proof, our 
history with that project leads me to a strong suspicion that their headers 
will have been plagiarized from Microsoft's, in violation of Microsoft's terms 
of use; I will not make myself an accessory to such suspected plagiarism.
What about packages under Mozilla Public License, then?  Or Wine?
I guess my point is that the Internet is full of places which cite the values 
of these constants, so maybe some of these places is okay for us to glean the 
info?  Especially since these are just numerical values, not really code.
Failing that, I guess each one who needs to use these will have to discover the 
values him/herself.


---------------------------------------------------------------------
Ticket Status:

      Reporter: eliz
         Owner: (None)
          Type: Feature Request
        Status: Open
      Priority: 5 - Medium
     MileStone: (None)
     Component: WSL
      Severity: 5 - Medium
    Resolution: None
---------------------------------------------------------------------

Ticket details:

To compile programs that use the Pseudo Console feature introduced recently 
with Windows 10, there's a need in several additions to the MinGW w32api 
headers and import libraries.
First, we need a value for _WIN32_WINNT that specifies Windows 10, in 
sdkddkver.h:
#define _WIN32_WINNT_WIN10 0x0A00
Second, we need functions, data structures, and macros to create and update 
lists of attributes for process and thread creation.  These are:
InitializeProcThreadAttributeList function
UpdateProcThreadAttribute function
DeleteProcThreadAttributeList function
PROC_THREAD_ATTRIBUTE_LIST structure
STARTUPINFOEX structure
PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE macro
Other PROC_THREAD_ATTRIBUTE_* macros
These seem to be supported since Windows 7, with the exception of 
PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE, which is only supported since Windows 10, 
and STARTUPINFOEX, which is supported since Vista.  I think the proper place 
for them is in the winbase.h header file.
We also need the EXTENDED_STARTUPINFO_PRESENT flag for the CreateProcess 
function (this flag is supported since Vista and should be in winbase.h).
And finally, we need the functions, data types, and macros to manipulate 
pseudo-consoles, available only since Windows 10:
CreatePseudoConsole function
ClosePseudoConsole function
ResizePseudoConsole function
HPCON data type
Thanks in advance for providing these.


-- 
Ticket information of MinGW - Minimalist GNU for Windows project
MinGW - Minimalist GNU for Windows Project is hosted on OSDN

Project URL: https://osdn.net/projects/mingw/
OSDN: https://osdn.net

URL for this Ticket:
    https://osdn.net/projects/mingw/ticket/41567
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=41567


------------------------------

Message: 5
Date: Tue, 11 May 2021 21:56:34 +0100
From: MinGW Notification List <[email protected]>
To: OSDN Ticket System <[email protected]>
Subject: [MinGW-Notify] [mingw] #41567: Some new Win32 APIs are
        missing from w32api
Message-ID: <[email protected]>
Content-Type: text/plain; charset=UTF-8

#41567: Some new Win32 APIs are missing from w32api

  Open Date: 2021-02-12 14:20
Last Update: 2021-05-11 21:56

URL for this Ticket:
    https://osdn.net//projects/mingw/ticket/41567
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=41567

---------------------------------------------------------------------

Last Changes/Comment on this Ticket:
2021-05-11 21:56 Updated by: keith

Comment:

Reply To eliz
Reply To keith
Are we allowed to look in MinGW64 headers and take the info from there?

Sorry, but I have to say "no".  Although I don't have conclusive proof, our 
history with that project leads me to a strong suspicion that their headers 
will have been plagiarized from Microsoft's, in violation of Microsoft's terms 
of use; I will not make myself an accessory to such suspected plagiarism.

What about packages under Mozilla Public License, then?  Or Wine?
I would also rule Wine out, for the same reason as I reject mingw-w64; in the 
past, some Wine developers have admitted, (to me), that they are willing to 
download a Windows SDK, ignore its stipulated terms of use, and read the header 
files to extract values which Microsoft have, otherwise, declined to disclose.
I guess my point is that the Internet is full of places which cite the values 
of these constants, so maybe some of these places is okay for us to glean the 
info?
Indeed.  If you can find sources, which aren't encumbered by an exclusive 
licence, that's fine; for example, from this GitHub page, I deduce that
 internal const uint PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE = 0x00020016;and the 
associated project landing page states that the licence is MIT.  That's 
definitely acceptable, (as would be Mozilla Public Licence).
Especially since these are just numerical values, not really code.
The Wine guys state this argument as justification for violating the Microsoft 
terms of use, but IANAL, and I have no desire to be required to defend this 
standpoint in a court of law.
Failing that, I guess each one who needs to use these will have to discover the 
values him/herself.
Yes.  Failing a permissively licensed source, that's the best option.  In the 
past, I have used MinGW-compiled code, in a brute force fashion, to determine 
undisclosed values, based solely on the observed effects of trying different 
candidate values.  Last resort, maybe, but occasionally the only option.

---------------------------------------------------------------------
Ticket Status:

      Reporter: eliz
         Owner: (None)
          Type: Feature Request
        Status: Open
      Priority: 5 - Medium
     MileStone: (None)
     Component: WSL
      Severity: 5 - Medium
    Resolution: None
---------------------------------------------------------------------

Ticket details:

To compile programs that use the Pseudo Console feature introduced recently 
with Windows 10, there's a need in several additions to the MinGW w32api 
headers and import libraries.
First, we need a value for _WIN32_WINNT that specifies Windows 10, in 
sdkddkver.h:
#define _WIN32_WINNT_WIN10 0x0A00
Second, we need functions, data structures, and macros to create and update 
lists of attributes for process and thread creation.  These are:
InitializeProcThreadAttributeList function
UpdateProcThreadAttribute function
DeleteProcThreadAttributeList function
PROC_THREAD_ATTRIBUTE_LIST structure
STARTUPINFOEX structure
PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE macro
Other PROC_THREAD_ATTRIBUTE_* macros
These seem to be supported since Windows 7, with the exception of 
PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE, which is only supported since Windows 10, 
and STARTUPINFOEX, which is supported since Vista.  I think the proper place 
for them is in the winbase.h header file.
We also need the EXTENDED_STARTUPINFO_PRESENT flag for the CreateProcess 
function (this flag is supported since Vista and should be in winbase.h).
And finally, we need the functions, data types, and macros to manipulate 
pseudo-consoles, available only since Windows 10:
CreatePseudoConsole function
ClosePseudoConsole function
ResizePseudoConsole function
HPCON data type
Thanks in advance for providing these.


-- 
Ticket information of MinGW - Minimalist GNU for Windows project
MinGW - Minimalist GNU for Windows Project is hosted on OSDN

Project URL: https://osdn.net/projects/mingw/
OSDN: https://osdn.net

URL for this Ticket:
    https://osdn.net/projects/mingw/ticket/41567
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=41567


------------------------------

Subject: Digest Footer

_______________________________________________
MinGW-Notify mailing list
[email protected]
https://lists.osdn.me/mailman/listinfo/mingw-notify


------------------------------

End of MinGW-Notify Digest, Vol 44, Issue 3
*******************************************

Reply via email to