Jacek Caban
94c1ef0ee1
server: Allow kernel to keep reference to server objects by client pointer.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:57:18 +01:00
Jacek Caban
134e264ae5
server: Store pointers to objects created by kernel_object_from_handle in server.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:56:31 +01:00
Jacek Caban
b2a546c92d
server: Introduce kernel_object struct for generic association between server and kernel objects.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:55:15 +01:00
Jacek Caban
6531f79d8d
server: Return proper object type for mailslot and device files.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-22 14:27:25 +01:00
Jacek Caban
f003ac5e62
server: Use requested options for device pseudo fd.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-29 17:02:41 +01:00
Jacek Caban
04094a6669
server: Use server_get_file_info for all info classes not implemented on client side.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-24 16:58:08 +02:00
Jacek Caban
56dfb384c7
server: Pass proper async object to queue_irp in device_file_flush.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-02 15:52:22 +01:00
Jacek Caban
6b08e60f03
server: Introduce get_file_info request for server-side NtQueryInformationFile implementation.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-22 12:19:43 +01:00
Jacek Caban
2ab2f31f18
server: Allow server side NtQueryVolumeInformationFile implementation.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-03 09:39:52 +02:00
Jacek Caban
23dce6881b
server: Call create_irp from queue_irp.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-05 10:43:49 +02:00
Jacek Caban
7b33613fc4
server: Make fd_queue_async infallible.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-05 10:43:14 +02:00
Jacek Caban
84bc9c3d56
server: Remove no longer needed need_handle from queue_irp.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-28 12:35:46 +02:00
Jacek Caban
10c1f245e4
server: Use create_request_async in flush request handler.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-28 12:35:33 +02:00
Jacek Caban
c56c42ff79
server: Use create_request_async in ioctl request handler.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-28 12:32:49 +02:00
Jacek Caban
2bd828b13c
server: Use create_request_async for write requests.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-28 12:23:36 +02:00
Jacek Caban
0fb6099b01
server: Preallocate wait handle in create_request_async and return it in read request.
...
alloc_handle is failable and when we're returning the handle, handling
error properly is not really possible.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-28 12:23:35 +02:00
Jacek Caban
b76c1b468a
server: Allocate wait handle on async object in queue_irp.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-10 11:46:34 -05:00
Jacek Caban
9d666869f3
server: Remove no longer needed blocking argument from flush fd op.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-12 19:11:29 +02:00
Jacek Caban
c9d9adaf65
server: Remove no longer needed blocking argument from write fd op.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-12 19:11:27 +02:00
Jacek Caban
5e584e936b
server: Remove no longer needed blocking argument from read fd op.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-12 19:11:26 +02:00
Jacek Caban
047062b28b
server: Remove no longer needed blocking argument from ioctl fd op.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-12 19:11:24 +02:00
Jacek Caban
5126849f7f
server: Use async_is_blocking in queue_irp.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-12 19:11:22 +02:00
Jacek Caban
a3acdf117f
server: Pass existing async object to fd_queue_async.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-22 20:20:50 +01:00
Jacek Caban
a9c51f4e8a
server: Create async object in flush request handler.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:24:13 +01:00
Jacek Caban
bede6499ed
server: Create async object in ioctl request handler.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:24:11 +01:00
Jacek Caban
8ef4f9a0c8
server: Create async objects in read and write request handlers.
...
async_get_data allows splitting patches, but will be removed later in
the series.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:22:46 +01:00
Jacek Caban
13daca6f1a
server: Removed no longer needed user_arg from irp_call struct.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:22:41 +01:00
Jacek Caban
cf08bd0e38
server: Create iosb objects inside read/write request handlers.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-01 21:19:38 +01:00
Jacek Caban
d055d3d121
server: Use async object to transfer IRP result to client.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 16:11:03 +01:00
Jacek Caban
64dc8f5c48
server: Store iosb in async object.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 16:11:03 +01:00
Jacek Caban
d2b3c6c3f9
server: Introduced iosb struct for server-side IO_STATUS_BLOCK representation and use it in irp_call.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 16:11:03 +01:00
Jacek Caban
ad1e0609a0
server: Get rid of no loner used cancel_async from fd_ops.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-01 13:50:59 +01:00
Jacek Caban
5b2dc08307
server: Allow caching device file handles.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-28 18:35:55 +02:00
Alexandre Julliard
c7f16d6220
server: Add a helper function to create a symlink to an existing object.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-18 15:34:08 +09:00
Alexandre Julliard
3ea7f7d2f4
server: Set the security descriptor at object creation.time.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-12 23:07:30 +09:00
Alexandre Julliard
ff9d90bbb0
server: Use a standard object for object attribute roots instead of a directory.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-12 23:07:30 +09:00
Alexandre Julliard
b21a324070
server: Use the link_name operation to create named objects.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-05 00:20:01 +09:00
Alexandre Julliard
f55db7882d
server: Add link_name and unlink_name object operations.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-04 21:07:19 +09:00
Alexandre Julliard
008f14f03f
server: Directly return a structure in get_req_unicode_str().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:12 +09:00
Alexandre Julliard
d15f47412e
server: Always print the full path of objects when dumping them.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-22 01:26:15 +09:00
Sebastian Lackner
408b7ea6b3
server: Remove unused device manager argument from set_irp_result call.
...
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-29 11:02:32 +09:00
Sebastian Lackner
a8c6fe39af
server: Avoid leaking uninitialized stack memory to applications.
...
Without the memset() there is a risk of leaking uninitialized stack memory in the
get_next_device_request wineserver call.
2015-08-17 14:48:20 +09:00
Sebastian Lackner
b279901546
server: Initialize irp->thread immediately after creation of irp_call object.
2015-08-17 14:48:08 +09:00
Alexandre Julliard
9cef52ffd6
server: Don't associate a thread to the MJ_CREATE and MJ_CLOSE requests.
2015-07-13 15:10:30 +09:00
Alexandre Julliard
bf26950194
server: Pass the file instead of the device pointer in all IRP requests.
2015-07-09 14:48:34 +09:00
Alexandre Julliard
13499a3d11
ntoskrnl: Implement creation and destruction of file objects.
2015-07-09 14:48:14 +09:00
Alexandre Julliard
350ee62ab4
server: Queue an IRP_MJ_CLOSE request on file destruction.
2015-07-09 14:38:18 +09:00
Alexandre Julliard
b1fd5955c9
server: Queue an IRP_MJ_CREATE request on file creation.
2015-07-09 14:38:18 +09:00
Alexandre Julliard
d087ea6798
server: Pass the device client pointer as part of the IRP parameters.
2015-07-09 14:38:18 +09:00
Sebastian Lackner
ece08c10a1
server: Delay destruction of file object in set_irp_result.
2015-06-19 17:02:11 +09:00
Alexandre Julliard
c0ac2afb19
server: Create the null device and its symlink.
2015-05-21 17:24:34 +09:00
Alexandre Julliard
b414b93d5a
server: Allow a device file to be mapped directly to a Unix device.
2015-05-21 17:18:08 +09:00
Alexandre Julliard
6260aa6cd2
server: Add an intermediate file object for file handles opened on devices.
2015-05-18 17:50:22 +09:00
Alexandre Julliard
6073e75a6a
server: Implement flush requests for device files.
2015-05-06 17:16:48 +09:00
Alexandre Julliard
311f786286
server: Add a common structure to store irp parameters.
2015-05-06 17:16:16 +09:00
Alexandre Julliard
faa1db4d13
server: Implement read and write requests for device files.
2015-05-06 17:16:16 +09:00
Alexandre Julliard
837b39b202
server: Add read and write fd member functions.
...
Also rename no_flush() to no_fd_flush() for consistency.
2015-05-06 09:07:42 +09:00
Alexandre Julliard
fc4a94c0e2
server: Return irp size separately from the output data.
2015-05-06 08:44:30 +09:00
Alexandre Julliard
6f2ed23c16
server: Retrieve ioctl data directly from the request.
2015-05-06 08:44:29 +09:00
Alexandre Julliard
165dd1ff36
server: Rename ioctl to irp to allow supporting various types of I/O requests.
2015-05-06 08:44:29 +09:00
Alexandre Julliard
ecf7ed6650
server: Add a request to store the results of an ioctl asynchronously.
2015-03-11 22:45:51 +09:00
Alexandre Julliard
0157f76888
server: Allow device manager ioctls to run asynchronously.
2015-03-11 22:44:51 +09:00
Alexandre Julliard
39644bb309
server: Pass a wait queue entry to the signaled/satisfied object functions.
2013-08-27 23:48:36 +02:00
Bernhard Loos
507d929051
ntoskrnl: Correctly implement PsGetCurrentThread/ProcessId.
2011-10-28 13:04:00 +02:00
Alexandre Julliard
6db201080f
server: Make the various async I/O parameters client_ptr_t instead of void pointers.
2008-12-30 21:09:41 +01:00
Alexandre Julliard
7ec95c5bee
server: Explicitly specify when an ioctl call needs to be blocking.
2008-12-30 20:37:20 +01:00
Alexandre Julliard
923310aa54
server: Make the device opaque data a client_ptr_t instead of a void pointer.
2008-12-29 17:28:40 +01:00
Alexandre Julliard
9ed42d2709
server: Get rid of the unused count parameter in fd_queue_async().
2008-12-26 12:33:31 +01:00
Alexandre Julliard
8382eb01b2
server: Return correct object types in the get_directory_entry request.
2007-12-05 18:16:42 +01:00
Alexandre Julliard
8268ad551a
server: Remove failed ioctls from the queue as soon as the result is set.
2007-10-30 11:30:58 +01:00
Rob Shearman
c1707d8938
server: Add get_sd and set_sd object operations to allow the security descriptor to be stored somewhere other than server memory, such as on disk.
2007-10-04 12:30:52 +02:00
Alexandre Julliard
24001e8ddc
server: Add a default access mapping function for files, and use it for devices too.
2007-10-02 14:20:15 +02:00
Alexandre Julliard
aafcfe7663
server: Add support for retrieving results of queued ioctls once they are done.
2007-05-08 20:45:44 +02:00
Alexandre Julliard
78b75108cd
server: Add request to retrieve the next pending ioctl call for a device manager.
2007-05-08 20:40:26 +02:00
Alexandre Julliard
61e08b346b
server: Add support for queuing ioctl calls to a device.
2007-05-08 20:37:21 +02:00
Alexandre Julliard
b43dc15c8a
server: Add support for generic device objects managed from the client side.
2007-05-08 20:28:37 +02:00
Alexandre Julliard
db692c8f39
Open a real file handle for drive devices, and get rid of the server
...
device hacks (based on a patch by Eric Pouech).
2004-03-04 23:00:18 +00:00
Alexandre Julliard
e37c6e18d0
Fixed header dependencies to be fully compatible with the Windows
...
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard
e66207ebfc
Moved all references to file descriptors out of the generic object
...
structure.
Changed the poll()-related routines to deal with file descriptors
instead of objects and integrated poll support into fd.c.
2003-02-19 00:33:32 +00:00
Alexandre Julliard
cf27a7fa3b
Changed fd operations to take a struct fd instead of a struct object.
...
Removed get_file_info function from object operations.
Added get_device_id request to avoid abusing get_file_info.
2003-02-14 20:27:09 +00:00
Alexandre Julliard
863637b158
Started moving functions that deal with Unix file descriptors to a
...
separate fd object. This will be needed for file locking.
2003-01-30 00:26:44 +00:00
Alexandre Julliard
0799c1a780
Added LGPL standard comment, and copyright notices where necessary.
...
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Martin Wilck
88cd32b2d1
More general approach to file descriptor types and flags.
2002-01-09 20:30:51 +00:00
Mike McCormack
6f011c0847
- move async activation into the server
...
- implement async queues
2001-12-20 00:07:05 +00:00
Alexandre Julliard
9caa71eef4
Redesign of the server communication protocol to allow arbitrary sized
...
data to be exchanged.
Split request and reply structures to make backwards compatibility
easier.
Moved many console functions to dlls/kernel, added code page support,
changed a few requests to behave properly with the new protocol.
2001-11-30 18:46:42 +00:00
Mike McCormack
ff58be5c7f
Fetch a handle type in FILE_GetUnixHandle.
2001-10-04 16:18:15 +00:00
Alexandre Julliard
8081e5a1e5
Added handle_t type to server interface so that we can make handles
...
pointers later on.
Always use 0 to signal invalid handle in server requests.
2001-01-05 04:08:07 +00:00
Alexandre Julliard
1ab243bac1
Merged the get_read_fd and get_write_fd requests.
2000-12-19 02:12:45 +00:00
Alexandre Julliard
cb1fc735f0
Changed the server to return STATUS_* error codes.
2000-01-24 21:58:06 +00:00
Alexandre Julliard
1dca5e24c7
Moved poll handling to the generic part of the server objects.
...
Fixed busy waiting on POLLERR events.
Merged struct client into struct thread.
2000-01-01 00:56:27 +00:00
Alexandre Julliard
ebe29ef376
Further server optimizations:
...
- merged request and reply structures
- build requests directly into the buffer to avoid a copy
1999-06-26 08:43:26 +00:00
Alexandre Julliard
5bc78089db
Made server communication faster by using a shared memory block.
...
A few other optimizations in request processing in the server.
Moved automatically generated request definitions to server.h and
removed include/server/request.h.
1999-06-22 17:26:53 +00:00
Alexandre Julliard
43c190e7ba
Server reorganization:
...
- moved request handlers to the specific C files
- moved handle management to handle.c
- moved server private includes to server/ instead of include/server/
1999-05-15 10:48:19 +00:00
Michael Veksler
f935c59787
Added missing includes to avoid warnings/errors.
1999-02-09 15:49:39 +00:00
Alexandre Julliard
f727b4327d
Added server-side device support (only a hack for now).
1999-01-19 16:31:32 +00:00