Guillaume Charifi
5990f19bdc
ntdll: Implement exclusive flag for IOCTL_AFD_POLL.
...
Signed-off-by: Guillaume Charifi <guillaume.charifi@sfr.fr>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 10:28:16 +02:00
Zebediah Figura
c3b32dbccf
server: Factor out a complete_async_poll() helper.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 10:27:33 +02:00
Gabriel Ivăncescu
2fe70331d9
ntdll: Implement JobObjectBasicProcessIdList for NtQueryInformationJobObject.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-14 21:24:14 +02:00
Zebediah Figura
cc7e3ec8e2
server: Create pseudo-fds as initially signaled.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-14 18:30:29 +02:00
Zebediah Figura
5af74129bd
ntdll: Do not fill the IOSB if a device IRP failed synchronously.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-14 18:30:17 +02:00
Zebediah Figura
1ee382c706
server: Pass the async result size as part of apc_call_t.
...
Only really an optimization (plus it makes the code a little conceptually simpler).
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-14 18:30:09 +02:00
Zebediah Figura
4a73fbbd40
server: Do not signal completion if the async failed synchronously.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-13 11:33:22 +02:00
Zebediah Figura
097685aa9e
ntoskrnl: Report separately whether an IRP was marked pending.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-13 11:33:19 +02:00
Zebediah Figura
484b78bda0
ntoskrnl: Report the initial status of an IRP separately from the IOSB status.
...
Based on a patch by Chip Davis.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=30155
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-13 11:32:18 +02:00
Zebediah Figura
69ea35a954
ntoskrnl: Report IRP completion via get_next_device_request if possible.
...
Although there is arguably an advantage to saving a server request, the impetus
for this patch is make it easier for the server to process the IRP return status
before (or at the same time as) it processes the IOSB status. This allows
simpler handling of the case where the IRP handler returns STATUS_PENDING but
completes the IRP before returning.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-13 11:31:17 +02:00
Zebediah Figura
a1c42293a2
server: Don't wake up always-blocking asyncs.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-09 22:30:45 +02:00
Zebediah Figura
386c4bcf2f
server: Use a separate field to track whether an async is blocking.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-09 22:30:45 +02:00
Zebediah Figura
32347fcf08
server: Queue a cancel IRP in the device file cancel_async callback.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-09 22:30:45 +02:00
Zebediah Figura
4f1c7ba5f9
server: Cancel asyncs through fd_ops.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-09 22:30:45 +02:00
Zebediah Figura
08eaf8f481
server: Make sure that async_request_complete() is called in the case of a failed connection as well.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51726
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-07 10:16:27 +02:00
Zebediah Figura
dd9eacff4e
server: Fill the TimeZoneBias member of KSHARED_USER_DATA.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-06 14:53:27 +02:00
Zebediah Figura
09dd801291
server: Add helper functions to perform atomic stores.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-06 14:53:11 +02:00
Zebediah Figura
b1e4d920c3
server: Return void from the ioctl callback.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-03 23:19:43 +02:00
Zebediah Figura
a36e2769c9
server: Return void from the flush callback.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-03 23:19:41 +02:00
Zebediah Figura
377d18c7b1
server: Return void from the write callback.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-03 23:19:41 +02:00
Zebediah Figura
6d49991188
server: Return void from the read callback.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-03 23:19:40 +02:00
Zebediah Figura
6cc36a46ff
server: Return void from the get_volume_info callback.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-03 23:19:39 +02:00
Zebediah Figura
15b8f91e24
server: Check the status code to determine whether the async has failed.
...
Instead of manually specifying success or failure.
Based on test_return_status() in ntoskrnl. The changes in this patch don't
affect device IRPs, but the tests show the heuristic that Windows uses, and in
practice it turns out to be correct for all known asyncs.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-03 23:19:36 +02:00
Zebediah Figura
285700a526
server: Mark the async as pending in IOCTL_AFD_EVENT_SELECT.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-03 21:43:04 +02:00
Zebediah Figura
be3ff3d658
server: Mark the async as pending in IOCTL_AFD_BIND.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-03 21:43:04 +02:00
Zebediah Figura
dd58bf9ce2
server: Use a separate function and flag to communicate that the initial status of an async is not known yet.
...
Mostly just to simplify the interface, so that we don't need to use the return
value to communicate this.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-03 21:43:04 +02:00
Zebediah Figura
298a1b296b
server: Move the STATUS_ALERTED logic from async_request_complete() to async_terminate().
...
In particular, don't mark asyncs with output data as "alerted", i.e.
restartable.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-02 10:23:12 +02:00
Zebediah Figura
19d3923975
server: Use async_request_complete() in message_queue_read().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-02 10:23:00 +02:00
Zebediah Figura
559a8cea57
server: Add a helper to call async_request_complete() while allocating new memory.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-02 10:22:49 +02:00
Zebediah Figura
96593370cd
server: Introduce a helper to fill an iosb and terminate the async.
...
For convenience, and to centralize the STATUS_ALERTED logic into one place.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-02 10:22:16 +02:00
Zebediah Figura
fd4e7703e9
server: Do not create an iosb for IRP calls not associated with an async.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-02 10:21:18 +02:00
Zebediah Figura
c4682cd928
server: Allow completing non-alerted asyncs with STATUS_PENDING.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-02 10:20:47 +02:00
Zebediah Figura
0f332fc039
server: Allow calling async_terminate() with STATUS_PENDING.
...
We still don't quite handle this completely correctly, but we should at least
avoid crashing the server due to a failed assertion.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-02 10:20:39 +02:00
Zebediah Figura
6cb5f66079
server: Use a simple boolean to track whether the async has been terminated.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 10:00:19 +02:00
Zebediah Figura
da838c2ae5
server: Use a separate field to track whether the async has been alerted.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 10:00:11 +02:00
Zebediah Figura
8e7a5ec817
server: Use async->iosb->status instead of async->status in async_satisfied().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 10:00:06 +02:00
Zebediah Figura
be07015407
server: Do not call async_terminate() when restarting an already terminated async.
...
At best this is a no-op. At worst this will emit an extra APC_ASYNC_IO where
the termination (e.g. cancellation) should already have emitted one.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 09:59:48 +02:00
Zebediah Figura
e4a2bca47b
server: Remove the async from the queue in async_set_result().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 09:59:33 +02:00
Luke Deller
a87bafc5b9
server: Implement file access hints using posix_fadvise.
...
Signed-off-by: Luke Deller <luke@deller.id.au>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-24 20:51:42 +02:00
Zebediah Figura
d4b13ef9d6
server: Remove a redundant NULL check for async->fd.
...
If the async has not been terminated yet, async->fd cannot be NULL.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-23 11:51:26 +02:00
Zebediah Figura
10ca57f4f5
server: Remove support for waiting on an IRP object.
...
This was initially used to let the client wait on IRP completion;
c56c42ff79
changed it to use the async handle
instead.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-23 11:49:44 +02:00
Alexandre Julliard
d9ca9d455e
server: Also set extended registers from the native context even in Wow64 mode.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-19 15:20:19 +02:00
Zebediah Figura
eec47af638
ws2_32: Properly implement getsockopt(SO_CONNECT_TIME).
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-19 11:33:47 +02:00
Huw Davies
68b840953d
server: Remove check for macOS version < 10.5.
...
Our stated minimum requirement is 10.8.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-19 11:16:59 +02:00
Alexandre Julliard
6c478c304c
server: Set YMM registers from the native context even in Wow64 mode.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-17 18:16:49 +02:00
Zebediah Figura
70e95447f9
server: Create the special Perflib\009 key.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-10 17:53:55 +02:00
Zebediah Figura
acc1861ed0
server: Fix the parameter size check for IOCTL_AFD_EVENT_SELECT.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-10 17:53:55 +02:00
Francois Gouget
a716b13974
server: Remove obsolete synthesized formats in release_clipboard().
...
Synthesized formats must be removed too if the format they depend on has
been removed.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51496
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-10 17:53:55 +02:00
Alexandre Julliard
b08b4b8213
server: Store the entry point as image-relative in pe_image_info_t.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51539
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-30 12:14:30 +02:00
Zebediah Figura
9bc5bc7c66
server: Remove the socket from the polling loop if it was aborted.
...
Don't use rd_shutdown and wr_shutdown to determine this. On the one hand, it's
possible to have pending asyncs even if rd_shutdown && wr_shutdown, which will
be cheerfully completed upon receiving data. On the other hand, RST doesn't
cause WSAESHUTDOWN, but rather WSAECONNRESET.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-26 20:14:16 +02:00