[SHLWAPI] Refactor the SHCreateWorkerWindowW() prototype to match its ANSI SHCreateWorkerWindowA() counterpart.
The last parameter is really to be understood as an extra window data, and not a "message result" (as it would be the case for dialog window procedure).
That is why I also remove the mention of "DWLP_MSGRESULT" in the SetWindowLongPtrW() call.
SHCreateWorkerWindowA() had it OK but SHCreateWorkerWindowW() did not.
------------------
[SHLWAPI] Make SHCreateWorkerWindowA() and SHCreateWorkerWindowW() x64-compatible.
The first parameter of these functions is a pointer to a window procedure, having a definite prototype, so employ a correct typedef WNDPROC,
which ensures both correct pointer size and parameter type enforcement.
This also ensures that we use instead a correct pointer size, since otherwise LONG remains 32-bits for Windows compatibility on x64 platforms.
The wndProc parameter is thus casted to LONG_PTR to comply with the SetWindowLongPtrA/W calls.
In SHCreateWorkerWindowW(), the last "wnd_extra" parameter should also be LONG_PTR to be able to pass 64-bit data pointer on x64 platforms.
Therefore fix also setting the wc.cbWndExtra size. One should note that the ANSI SHCreateWorkerWindowA() function had everything OK already.
This halfplements CcScheduleReadAhead() which is responsible for finding the next reads
to perform given last read and previous reads. I made it very basic for now, at least
to test the whole process.
This also introduces the CcExpressWorkQueue in the lazy writer which is responsible
for dealing with read ahead items and which is dealt with before the regular queue.
In CcCopyData(), if read was fine, schedule read ahead so that it can happen in background
without the FSD to notice it! Also, update the read history so that scheduling as a
bit of data.
Implement (à la "old Cc" ;-)) CcPerformReadAhead() which is responsible for performing
the read. It's only to be called by the worker thread.
Side note on the modifications done in CcRosReleaseFileCache(). Private cache map
is tied to a handle. If it goes away, private cache map gets deleted. Read ahead
can run after the handle was closed (and thus, private cache map deleted), so
it is mandatory to always lock the master lock before accessing the structure in
read ahead or before deleting it in CcRosReleaseFileCache(). Otherwise, you'll
just break everything. You've been warned!
This commit also partly reverts f8b5d27.
CORE-14312
[NDK]: Document latest RTL_BSD_DATA as of RS3 based on ext.dll WinDBG
extension "!blackboxbsd" which outputs the entire structure field by
field :).
[NDK]: Update RTL_BSD_ITEM_TYPE thanks to ole32 symbols
[RTL]: Move system volume APIs to sysvol.c
[RTL]: Fill out BsdItemTable based on actual field offsets/sizes and not
hardcoded magic numbers which we won't ask where they came from.
[RTL]: Make RtlCreateBootStatusDataFile use an appropriate structure for
initializing the buffer instead of "UCHAR Buffer[12] = {0xC,0,0,0,
1,0,0,0, 1, 0x1e, 1, 0};" which appears like magic knowledge.
[RTL]: Rename "WriteMode" to "Read" in RtlGetSetBootStatusData since
it's much less confusing.
[RTL]: Some formatting fixes, SAL updates.
- Introduce the TRAYNOTIFYDATAW structure, as documented by Geoff
Chappell in "WM_COPYDATA for Taskbar Interface", at
http://www.geoffchappell.com/studies/windows/shell/shell32/api/shlnot/copydata.htm
that is the data structure passed between shell32 and explorer for
communicating shell notify icon information.
- In Shell_NotifyIcon(), correctly capture the (ANSI and) UNICODE
structures provided by the caller, properly taking into account for
the different NOTIFYICONDATA structure sizes existing out there.
The different strings are now properly null-terminated (especially
szTip if it needs to be truncated out), and the flags validated.
- Remove the now unneeded "SHELL_NotifyIcon()" helper function.
[EXPLORER] Use TRAYNOTIFYDATAW and adjust the callers.
- Start to doxygenate the library, focusing in great details on the
functions of the "outstream" module.
- Add a K32LoadStringEx function that expands (K32)LoadString by
allowing a LanguageId parameter to be able to load strings from other
languages than the current one.
- Add "ConResMsg*" helper functions to be able to (format and) print
message strings with inserts that come *NOT* from a message table (as
usual) *BUT* from resource string tables.
Will be helpful for CORE-14265 in particular.
[CMD] Fix the call to ConMsgPrintfV().
- Add missing error code to DDK/NDIS
- Fix error code in IP driver
- Patch MSAFD to reply correct WSA error code
- Fix IcmpSendEcho function
- Fix returning error code in ICMP_ECHO_REPLY (see MSDN)
- Fix returning host address (using GetBestInterface and GetIpAddrTable functions)
- Fix GetBestRoute function (it is used by GetBestInterface)
Relates to #318 and CORE-14241
As code grows, this will allow for better maintenance of the console
stream code. In particular the input stream module will contain special
code for handling TTYs, and this is something not all console programs
will need. Having this code in a separate module will allow for the linker
to possibly remove this code when it is unused.
- uVersion will only be truly useful when Vista+'s V4 style notification icons are implemented.
- Balloon notifications do not yet support queuing and auto-closing.
- Force the notification icon tooltips to always show even if the taskbar isn't foreground.
[ROSCTRLS.H] Implement CTooltips class which manages a comctl32 tooltips window.
- Full rewrite. This commit replaces the old utility.
- Use the new ICMP APIs instead of manually crafting ping requests using raw sockets.
- Add support for additional languages (the previous utility was hardcoded)
- Add support for IPv6
- Make the icmpapi header C++ compatible. (we don't appear to sync this with wine anymore.)
- Now runs on Win10, is much more reliable, and brings the code somewhat into the 21st century.
(It's currently missing source routing (-j), but as most routers disable this anyway, I'm not sure that it's worth adding)
[REACTOS] Misc 64 bit fixes
* [NTOS:MM] Allow MEM_DOS_LIM in NtMapViewOfSection on x64 as well
* [NTOS:MM] Implement x64 version of MmIsDisabledPage
* [HAL] Remove obsolete code
* [NTOS:KE] Fix amd64 version of KeContextToTrapFrame and KeTrapFrameToContext
* [XDK] Fix CONTEXT_XSTATE definition
* [PCNET] Convert physical address types from pointers to PHYSICAL_ADDRESS
This is no official system DLL and WineD3D is its only user. But latest WineD3D prefers the libtxc_dxtn codebase instead of the alternative library we used.
This is also what Mesa uses and Fedora ships now that the patents have expired, so we should stick to the same.
I'm importing the libtxc_dxtn-1.0.1 codebase from https://people.freedesktop.org/~cbrill/libtxc_dxtn/
It compiles warning-free in our tree without modifying a single line!
I'm merging this Pull Request based on the positive response in CORE-12759.
I lack a proper test case myself, but my version at least shouldn't make things worse. In my opinion, the previous one was broken anyway due to using stdcall imports when WineD3D called cdecl ones.
This also removes the NSWPAT option from our buildsystem as dxtn was its latest user.
It's critical not to perform any write on a volume without an exclusive lock on it.
That lock is only acquired if ChkDsk is started in RW mode.
Also added an assert in write routine, to make sure that when we're about to perform
a write operation, we're really allowed to do so.
This will avoid volume corruptions when a simple "chkdsk" is issued from cmd.
To put it simple: check will really check now, and won't attempt any repair.
CORE-14119
For instance, when repair is required, we can ask the caller whether we should
continue or not in case locking failed.
Also, introduced a hack for 1st stage where IopParseDevice() hack is in usage
so that broken NTSTATUS is diverted to appropriate status.
That way, usetup will properly continue even if locking failed (due to its
callback stub!)
CORE-14087
I use a (not yet used) dir-id value of "80" for this purpose (the value
"8" being already used for /bin/testdata/ and of course values from 9 up
to 50+ are also already used... >_>).
The cFileName member of WIN32_FIND_DATA is an array of MAX_PATH(260). Using strcpy/wcscpy with the target buffer being smaller is potentially bad. Corresponds to CID 1401198 and 1401195.
- SIZE_T -> ULONG in KsecGatherEntropyData
- Add missing ZwQueryInformationProcess() prototype for x64 build of btrfs
- Fix ml.exe path for VS 2017 Community Edition
- Add missing Handle32ToHandle to basetsd.h
b42a155 widl: Handle C++ aggregate returns in a MSVC compatible way.
084fa63 widl: Only generate Proxy Stubs when functions have the call_as attribute.
fbdf119 widl: Try to find imported typelib using .tlb extension if it wasn't specified.
- REVISION is now something like "0.4.7-dev-53-g1304b53" instead of "r12345".
- Change WINDOWS_NT_BANNER to better represent the ReactOS version and the reported NT version.
- Introduce REACTOS_COMMIT_HASH which contains the full 40-character commit hash (for comparing revisions, e.g. in rosautotest/testman).