Commit Graph

537 Commits

Author SHA1 Message Date
Rob Shearman 5f5df83281 server: Pass the security descriptor into create_file, if one is specified, and set the initial mode for the file appropriately. 2007-10-30 14:18:27 +01:00
Rob Shearman f98556c119 server: Add the name length to the object_attributes structure so that other variable length data can be present after object_attributes. 2007-10-30 14:18:05 +01:00
Rob Shearman 23df453d38 server: Make create_mapping use struct object_attributes and set the security descriptor of file mapping objects. 2007-10-26 12:45:29 +02:00
Rob Shearman 1f86321964 server: Make create_mutex use struct object_attributes and set the security descriptor of mutex objects. 2007-10-26 12:44:51 +02:00
Rob Shearman b0e5fb4384 server: Make create_semaphore use struct object_attributes and set the security descriptor of semaphore objects. 2007-10-26 12:44:26 +02:00
Rob Shearman dd9e392796 server: Use the security descriptor passed in when creating events. 2007-10-25 12:47:22 +02:00
Alexandre Julliard 235532ce28 server: Use the file_pos_t type for file sizes and offsets in the protocol structures. 2007-10-10 14:06:25 +02:00
Rob Shearman 5356bfde2c server: Add a new get_security_object call for getting the security descriptor of an object.
Use it to implement NtQuerySecurityObject.
2007-10-03 11:16:45 +02:00
Andrey Turkin d1a8155882 server: Allow completion object to be attached to an fd object. 2007-09-28 13:17:18 +02:00
Andrey Turkin 477582401b server: Implement server-side completion queues and operations on them. 2007-09-26 13:56:43 +02:00
Rob Shearman 3f431a0646 server: Add get_token_statistics server call and use it to implement the TokenStatistics and TokenType levels for NtQueryInformationToken. 2007-09-14 14:43:46 +02:00
Alexandre Julliard 2896540a34 server: Set the queue mask directly in get_message to avoid an extra server call. 2007-08-29 18:13:13 +02:00
Alexandre Julliard b4edb573fd server: Message results should be stored as longs, not ints. 2007-08-29 18:01:10 +02:00
Alexandre Julliard df13cee288 server: Store a separate flag for windows that need to be erased in WM_PAINT.
This avoids the need to invalidate the window after WM_ERASEBKGND.
2007-08-27 16:41:08 +02:00
Kirill K. Smirnov f3e13174c7 wineconsole: Implement GetConsoleWindow. 2007-08-24 12:03:22 +02:00
Alexandre Julliard fec5117e91 server: Merge APC processing into the select request.
This is needed to return the correct value when one of the handles
being waited on is set to signaled state by the APC.
2007-07-16 16:14:45 +02:00
Alexandre Julliard 156b205eb5 server: Add support for system processes, that can be signaled to exit when all non-system processes are done. 2007-06-06 20:33:13 +02:00
Alexandre Julliard 8992f89f27 server: Remove the extra apc_arg parameter now that user APCs all require the same arg as the kernel APC. 2007-06-04 15:20:49 +02:00
Kirill K. Smirnov 9d74661856 server: Move console codepages to the server. 2007-05-11 12:41:29 +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 b43dc15c8a server: Add support for generic device objects managed from the client side. 2007-05-08 20:28:37 +02:00
Alexandre Julliard fd59e158a7 server: Infrastructure to return a wait handle for blocking ioctls. 2007-05-03 17:43:18 +02:00
Alexandre Julliard 133b8bc3ed server: Return a more correct fd type for anonymous files. 2007-04-23 15:13:22 +02:00
Alexandre Julliard 6105a93be6 server: Moved the FSCTL_PIPE_LISTEN implementation to the server. 2007-04-18 16:26:37 +02:00
Alexandre Julliard 3684dc181c server: Move the FSCTL_PIPE_WAIT ioctl implementation to the server. 2007-04-17 22:07:07 +02:00
Alexandre Julliard 737148c57b server: Add a specific data type for ioctl codes so they can be printed as symbols. 2007-04-17 22:06:13 +02:00
Alexandre Julliard aaf477f292 server: Change the timeout handling to use NT-style 64-bit timeouts everywhere. 2007-04-17 20:08:59 +02:00
Alexandre Julliard 2669af73df server: Move the server part of device unmounting to the ioctl processing. 2007-04-16 14:54:52 +02:00
Alexandre Julliard 8c46095484 server: Implement the FSCTL_PIPE_DISCONNECT ioctl on the server side. 2007-04-16 14:51:29 +02:00
Alexandre Julliard 635714397f server: Add infrastructure for ioctl server request. 2007-04-16 14:45:03 +02:00
Alexandre Julliard d85121f199 ntdll: Store the file access and options in the fd cache, and get rid of the dynamic flags.
This avoids server round-trips for all file I/O.
2007-04-10 22:32:46 +02:00
Alexandre Julliard 72bff2e445 server: Add support for restarting an async I/O when the client side couldn't finish it right away. 2007-04-10 17:07:27 +02:00
Alexandre Julliard 0cb29f47ca server: Add support for associating a file descriptor to a message queue. 2007-04-04 18:02:01 +02:00
Alexandre Julliard c16eb8efd9 server: Add support for queuing a user APC upon async I/O completion. 2007-03-27 16:42:27 +02:00
Alexandre Julliard de1866d4fd server: Implement the open_file method for named pipes.
Get rid of the open_named_pipe request, we can now use a normal open_file_object.
2007-03-22 16:47:46 +01:00
Alexandre Julliard 806bb49eda server: Implement the open_file method for mailslots.
Get rid of the open_mailslot request, we can now use a normal open_file_object.
2007-03-22 16:36:54 +01:00
Alexandre Julliard 94655c8493 server: Implemented the open_file method for named pipe and mailslot devices. 2007-03-22 11:52:40 +01:00
Alexandre Julliard 2082a97d45 server: Use a standard async I/O event to signal directory changes. 2007-03-21 14:50:15 +01:00
Alexandre Julliard fa4679fea6 server: Add support for storing an event to signal upon async I/O completion. 2007-03-21 14:27:52 +01:00
Alexandre Julliard 111610c45e server: Add an async_data_t structure to store parameters for async I/O requests. 2007-03-20 20:21:12 +01:00
Alexandre Julliard 50975c81f0 server: Return the status from an async I/O APC call to the server. 2007-03-20 19:27:10 +01:00
Alexandre Julliard eb3728d34e server: Use the common pattern for async I/O parameters in named pipe requests. 2007-03-20 19:21:15 +01:00
Juan Lang c2cb296277 ntdll: Implement NtAllocateLocallyUniqueId with server call. 2007-03-07 13:45:11 +01:00
Alexandre Julliard 1767b4558a server: Expose areas revealed by changes to the window region. 2007-03-05 16:43:27 +01:00
Rob Shearman d342d1413c server: Add get_token_impersonation_level server call for retrieving the impersonation level from a token.
Add tests for GetTokenInformation(TokenImpersonationLevel).
2007-02-21 19:49:37 +01:00
Alexandre Julliard 89faee0194 server: Added support for the PM_QS_* flags in PeekMessage. 2007-02-21 15:21:05 +01:00
Vitaliy Margolen b0e9d7e0b5 ntdll/server: Implement NtSetSecurityObject. With tests. 2007-02-15 14:19:24 +01:00
Vitaliy Margolen bae75024a4 server/ntdll: Simplistic implementation of NtQueryObject(ObjectBasicInformation). 2007-01-25 12:48:35 +01:00
Alexandre Julliard f3cb4f7d94 ntdll: Avoid inter-process APCs when called for the process itself. 2007-01-18 15:41:05 +01:00
Alexandre Julliard 02e2fa7798 ntdll: Implementation of inter-process NtMapViewOfSection and NtUnmapViewOfSection. 2007-01-18 15:17:51 +01:00
Alexandre Julliard 8025f79ce1 ntdll: Implementation of inter-process RtlCreateUserThread. 2007-01-18 15:02:55 +01:00
Alexandre Julliard 3410354d61 ntdll: Fix NtDuplicateObject to only close the file descriptor if it's in the same process. 2007-01-18 12:18:51 +01:00
Alexandre Julliard c122260b9d ntdll: Implemented NtLockVirtualMemory and NtUnlockVirtualMemory. 2007-01-16 09:50:08 +01:00
Alexandre Julliard 5a1ad74a67 ntdll: Implementation of inter-process NtFlushVirtualMemory. 2007-01-15 22:31:07 +01:00
Alexandre Julliard 1ea968016f ntdll: Implementation of inter-process VirtualProtectEx. 2007-01-15 22:30:04 +01:00
Alexandre Julliard 3d00239586 ntdll: Implementation of inter-process VirtualQueryEx. 2007-01-15 22:28:42 +01:00
Alexandre Julliard 6ca1d1b081 server: Support queuing some APCs to a process instead of a thread. 2007-01-15 22:26:32 +01:00
Alexandre Julliard fb40dc4099 server: Added mechanism for returning results of APC calls.
Defined APC_VIRTUAL_ALLOC and APC_VIRTUAL_FREE requests.
2007-01-15 22:24:40 +01:00
Alexandre Julliard 4cbe867a85 ntdll: Duplicate the mapping handle on the server side for NtMapViewOfSection. 2007-01-12 14:55:31 +01:00
Alexandre Julliard 5c8421d3e7 server: Add a generic apc_call structure to make it easier to extend, and more type-safe. 2007-01-04 13:40:09 +01:00
Alexandre Julliard 49b49c30fc server: Notify the server that an APC has completed in the next get_apc call. 2007-01-04 13:17:53 +01:00
Ulrich Czekalla 4bdf4345b8 winex11.drv: Store window and drawable rects in X11DRV_PDEVICE. 2006-12-12 13:45:10 +01:00
Alexandre Julliard 8930427b21 server: Return an fd type in the get_handle_fd request. 2006-11-20 14:14:04 +01:00
Alexandre Julliard 02fc886302 ntdll: Retrieve mailslot message info from the client side. 2006-11-03 17:53:04 +01:00
Alexandre Julliard 8700c4341b server: Get rid of the server-side file descriptor cache management. 2006-11-02 20:52:05 +01:00
Alexandre Julliard 28418cc919 ntdll: Maintain a file descriptor cache on the client side. 2006-11-02 20:48:19 +01:00
Alexandre Julliard 30b878b3b6 server: Compute the removable device flag on the server side. 2006-11-01 13:28:05 +01:00
Alexandre Julliard 85f518ac6b server: A window timer id should be an unsigned long. 2006-10-16 17:03:44 +02:00
Alexandre Julliard 2f80fcd88d server: Changed the get_next_hook request to allow retrieving the current hook too. 2006-10-05 14:05:48 +02:00
Alexandre Julliard 533f519950 user32: Store the prev_unicode hook flag on the client side. 2006-10-05 14:04:25 +02:00
Alexandre Julliard 81c1472449 user32: The per-window user data must be a DWORD_PTR. 2006-10-04 21:49:11 +02:00
Alexandre Julliard e0dcf4fddb server: Rearrange a few fields to avoid wasting padding space on 64 bits. 2006-10-04 21:41:32 +02:00
Alexandre Julliard 3ad9798263 server: Pass the data for message callbacks as vararg from the client side. 2006-10-04 20:25:42 +02:00
Alexandre Julliard 29a3ce9f3a server: Return the data for callback results in the varargs part of the get_message request. 2006-10-04 16:29:45 +02:00
Alexandre Julliard 59dc456822 server: Return the data for winevent hooks in the varargs part of the get_message request. 2006-10-04 16:04:53 +02:00
Eric Pouech 8cb932ea89 ntdll: Implemented AmILastThread information class for NtQueryInformationThread. 2006-10-03 20:20:13 +02:00
Alexandre Julliard 672bfc2d62 server: Make the message extra info 64 bits on Win64. 2006-08-09 17:10:14 +02:00
Alexandre Julliard d3b3096756 server: Split the queuing of hardware messages into a separate send_hardware_message request. 2006-08-09 16:45:26 +02:00
Alexandre Julliard 2c2299685f user: Implementation of Get/SetWindowLongPtr for 64-bit platforms.
Also use the same code for Get/SetWindowWord.
Based on a patch by Ge van Geldorp.
2006-08-02 21:59:00 +02:00
Alexandre Julliard c627601c3b server: Convert the server start time to the abs_time_t type. 2006-07-26 14:50:55 +02:00
Alexandre Julliard 3095a48d6f server: Convert thread creation/exit times to the abs_time_t type. 2006-07-26 14:49:55 +02:00
Alexandre Julliard ce40ef18df server: Rename the wait_input_idle request to better reflect what it does.
Also get rid of the unused timeout field.
2006-07-26 11:48:25 +02:00
Alexandre Julliard 0f273c17ff server: Added data_size_t type to represent sizes in the server protocol.
Make it an unsigned int to save some space on Win64, if we need to
transfer more than 4Gb over the server pipe something is seriously
wrong.
2006-07-26 11:11:03 +02:00
Stefan Siebert 026dd2d88a ntdll: Implementation of process CreationTime and ExitTime. 2006-07-21 13:27:16 +02:00
Alexandre Julliard c316f0e47f server: Simplify process creation.
Pass the socket for the new process from the parent through the
environment.
Perform initialisations during the new_process request.
2006-07-19 14:00:10 +02:00
Ge van Geldorp 54afeb02de user32: Implement Get/SetClassLongPtrA/W. 2006-07-12 20:04:18 +02:00
Mike McCormack fac494c822 server: open_console's from field should be a handle. 2006-06-07 14:30:28 +02:00
Mike McCormack f386950fdd server: Use unsigned long for request types that are 64bit in win64. 2006-06-07 14:21:12 +02:00
Eric Pouech 1d6e2590e0 ntdll/kernel32: Pipe information.
- implemented ntdll.NtQueryInformationFile's FilePipeLocalInformation control code 
- reimplemented kernel32.GetNamedPipeInfo on top of it
- enhance current features to make this work both on client and server handles
- now also returning the number of instances
2006-05-27 12:31:01 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Robert Shearman 3396a66ee7 server: Retrieve the groups for a token from the server. 2006-05-15 14:25:43 +02:00
Alexandre Julliard 959bbf8b75 server: Get rid of alignment requirements in write_process_memory request.
All the alignment handling is now done in the write_process_memory
function inside the server.
2006-04-07 18:41:58 +02:00
Alexandre Julliard 1a4f6e579b user: Launch explorer to manage the desktop window. 2006-03-07 11:42:35 +01:00
Alexandre Julliard 4be3d4c12b server: Return real parent and owner in the create_window request.
Remove computing of parent and owner handles on the client side.
2006-03-06 15:00:37 +01:00
Eric Pouech 6b95c0e4b4 kernel32: ClearCommError.
ClearCommError should only deal with *communication* errors (are being
seen on the serial interface) rather than API errors (which can be
reported to the caller by the API itself).  I then removed all the
stuff related to storing the error status in the server object.
2006-02-27 13:54:43 +01:00
Alexandre Julliard e27358ea5c server: Remove no longer needed fields in the init_process_done request. 2006-02-21 20:08:19 +01:00
Mike McCormack e4faabfa64 server: Track created and removed directories in the tree of inodes for inotify.
Add them to or remove them from existing recursive watches.
2006-02-21 11:13:23 +01:00
Alexandre Julliard e0330145d8 server: Remove the no longer needed exe_file parameter in the
init_process_done request.
2006-02-08 15:25:12 +01:00
Mike McCormack 0790f95589 kernel32: ReadDirectoryChangesW fixes.
ReadDirectoryChangesW remembers whether it's recording changes or not.
Don't initialize overlapped->InternalHigh.
The hEvent is cleared when ReadDirectoryChanges is called.
2006-02-07 16:50:36 +01:00
Mike McCormack 0193211946 server: Fill in NtNotifyChangeDirectoryFile's buffer with change data. 2006-02-06 11:58:55 +01:00
Alexandre Julliard 2a36dd239c server: Remove no longer used create_flags from get_startup_info request. 2006-02-05 12:33:24 +01:00
Mike McCormack 08351071fd server: Fix the file notification interface to use directory handles. 2006-01-27 12:13:56 +01:00
Robert Shearman a40ce39340 user: Fix WM_QUIT message ordering from PostQuitMessage.
Added a new server call as PostQuitMessage should set a flag in the
message queue to return the WM_QUIT message when there are no other
pending messages, rather than posting a message to the thread queue as
it does at the moment.
2006-01-17 13:14:31 +01:00
Alexandre Julliard 2878d99216 ntdll: Add debug registers to the context of all exceptions.
Maintain a local cache of the debug registers to avoid server calls
where possible.
2006-01-13 13:58:14 +01:00
Alexandre Julliard 2654be08d5 ntdll: Handle NtSetContextThread on the client side (as far as
possible) when setting the context of the current thread.
2006-01-11 20:20:32 +01:00
Eric Pouech b7607aebdc ntdll: Correct implementation for atom query functions. 2006-01-03 17:34:43 +01:00
Vitaliy Margolen b05340a523 ntdll: Implement FSCTL_PIPE_WAIT NtFsControlFile ioctl.
Implement FSCTL_PIPE_WAIT NtFsControlFile ioctl.
Modify WaitNamedPipeW to use NtFsControlFile.
Replace struct overlapped with event.
2005-12-14 11:14:02 +01:00
Alexandre Julliard 67505c00af server: Support for opening devices.
Added support for opening devices directly with the server when they
don't correspond to a Unix file.
2005-12-12 14:27:45 +01:00
Alexandre Julliard 03b040c51d server: Added object attributes to a few more requests. 2005-12-09 14:52:04 +01:00
Alexandre Julliard 7b910f40f2 server: Use attributes instead of inherit flag in dup_handle request. 2005-12-09 12:21:35 +01:00
Alexandre Julliard 836d07c369 server: Use attributes instead of inherit flag in token requests.
Also use the specified access rights in the open_token request.
2005-12-09 12:17:19 +01:00
Alexandre Julliard f2d7dd645e server: Use attributes instead of inherit flag in process and thread requests. 2005-12-09 12:13:11 +01:00
Alexandre Julliard f11d0a375f server: Use attributes instead of inherit flag in snapshot requests. 2005-12-09 12:09:44 +01:00
Alexandre Julliard 7a096601e3 server: Use attributes instead of inherit flag in console requests. 2005-12-09 12:05:20 +01:00
Alexandre Julliard 27b1aec925 server: Use attributes instead of inherit flag in file requests. 2005-12-09 12:00:48 +01:00
Alexandre Julliard bc30303c56 server: Use attributes instead of inherit flag in socket requests. 2005-12-09 11:58:55 +01:00
Vitaliy Margolen cf21d4d7ca Move mailslot devices into directory name space. 2005-12-05 13:30:26 +01:00
Vitaliy Margolen babfa79436 Move named pipe objects into directory name space.
Change tests accordingly.
Add small test for WaitNamedPipe.
2005-12-05 13:09:35 +01:00
Vitaliy Margolen 348a3d912b Move mapping (section) objects into directory name space. 2005-12-02 16:13:13 +01:00
Vitaliy Margolen 7c5cb7a229 Move timer objects into directory name space. 2005-12-02 16:05:54 +01:00
Vitaliy Margolen 5daae3dfa9 Move semaphore objects into directory name space. 2005-12-02 16:01:17 +01:00
Vitaliy Margolen f676bc8d85 Move event and mutex objects into directory name space. 2005-12-02 15:55:48 +01:00
Vitaliy Margolen 80444dfe51 Implement symbolic link object in wineserver.
Implement Nt[Create|Open|Query]SymbolicLinkObject.
Change tests accordingly.
2005-11-30 19:22:57 +01:00
Vitaliy Margolen 3c6bdcce53 Implement directory object in wineserver.
Implement Nt[Create|Open]DirectoryObject.
Change tests accordingly.
2005-11-29 17:21:05 +01:00
Alexandre Julliard 86397e1d43 Fixed handling of mailslot read timeout to avoid compiler warnings. 2005-11-21 15:23:49 +00:00
Vitaliy Margolen 83ef91ce2d Replace inherit flag with object attributes in winstation and desktop
create & open. Use OBJ_OPENIF flag to create winstation & desktop.
2005-11-21 12:05:38 +00:00
Alexandre Julliard 73c72390f8 Fixed Get/SetThreadContext to work properly on suspended threads.
Added a test case.
2005-11-02 20:54:12 +00:00
Alexandre Julliard ff7795ef4c Don't send an extra signal when waiting for a debug event, just do a
normal wait.  Return the debug event status directly as return value
of the server call.
2005-11-01 21:47:07 +00:00
Vitaliy Margolen a996000ad5 - Send whole OBJECT_ATTRIBUTES.Attributes to the server not just an
inherit flag.
- Pass DesiredAccess to the server when creating mailslot.
2005-10-27 18:30:37 +00:00
Eric Pouech b09582a890 Implemented kernel32 process affinity handling on top on ntdll. 2005-09-27 10:52:10 +00:00
Eric Pouech e21aa6a184 - now passing access rights when creating a named pipe in NTDLL
- reimplemented Kernel32.CreatePipe purely on top of NTDLL APIs
- anonymous pipe handles should have the SYNCHRONIZE bit set
2005-09-26 11:02:45 +00:00
Ivan Leo Puoti f0db7ab06b Added FSCTL_PIPE_LISTEN support. 2005-09-06 14:09:42 +00:00
Alexandre Julliard f62f6e8fe1 Don't cache file descriptors open on removable devices. 2005-08-24 18:33:50 +00:00
Alexandre Julliard 38502f70eb Added a separate set_handle_cached_fd request instead of abusing
set_handle_info for that.
2005-08-23 18:43:50 +00:00
Alexandre Julliard 964815bc42 Added an unmount_device request that invalidates all file descriptors
open on a given Unix device.
2005-08-08 15:11:03 +00:00
Robert Shearman 91eaea53ae - Change the default user SID to match what was previously returned by
NtQueryInformationToken.
- Implement TokenUser for NtQueryInformationToken.
- Add a function for getting the user's registry path from a SID.
2005-07-18 13:22:55 +00:00
Alexandre Julliard 9ad5628639 Moved the server start time to the init_thread request and got rid of
the init_process request (based on a patch by Felix Nawothnig).
2005-07-14 10:32:46 +00:00
Alexandre Julliard 11ad6a0ac4 Return the startup info size in the init_thread request, and allocate
the process parameters structure in ntdll instead of kernel.
2005-07-13 19:43:35 +00:00
Alexandre Julliard 4391be583e Get rid of the boot_done request. 2005-07-13 14:20:13 +00:00
Alexandre Julliard 0424f38169 Already initialize the process in the first init_thread request
instead of waiting for the init_process request.
2005-07-13 12:12:43 +00:00
Alexandre Julliard 01caa5e645 Moved the fields that depends on startup info from the init_process
request to get_startup_info.
2005-07-12 20:27:09 +00:00
Alexandre Julliard 6aa0cc5e3c Load the HKEY_CURRENT_USER branch at server startup too. 2005-07-11 20:44:59 +00:00
Alexandre Julliard 8c518808b8 Put in place the basic infrastructure to allow supporting multiple
desktop windows.
2005-07-08 11:37:40 +00:00
Dmitry Timoshkov 86af38c8ca Make IsWindowUnicode work in the case when window belongs to another
process.
2005-07-07 12:02:31 +00:00
Robert Shearman 4bba21643c Add support for impersonating a token. 2005-06-20 13:18:38 +00:00
Robert Shearman e51dd36453 Implement overlapped I/O with named pipes. 2005-06-08 19:11:46 +00:00
Alexandre Julliard 1bf96e09a9 Beginnings of support for window stations and desktops. 2005-06-08 18:44:50 +00:00
Alexandre Julliard db412aaf60 Added a from_child parameter to the get_update_region request to allow
restarting the search from a given child, in order to avoid looping
forever on windows that don't repaint correctly.
2005-05-31 13:37:16 +00:00
Robert Shearman 4ad93416a8 Implement NtAccessCheck. 2005-05-24 12:32:18 +00:00
Robert Shearman 7bff35428b - Add new server type "struct security_descriptor".
- Add tracing for this new type.
2005-05-23 16:33:00 +00:00
Alexandre Julliard 9e73cdde39 Allow passing a string to the window property server requests instead
of an atom to avoid redundant server round-trips.
2005-05-11 19:01:10 +00:00
Alexandre Julliard 63342353bc Store a bitmap of active hooks on the client side to try to avoid
server calls for hooks that are not set.
2005-05-11 13:03:15 +00:00
Eric Pouech e6267369b2 - changed ATOM support in wineserver to match NTDLL needs
- adapted accordingly kernel32 atom support
2005-05-10 15:15:50 +00:00
Mike McCormack abe70f7648 Implemented GetLastInputInfo. 2005-04-28 12:04:14 +00:00
Mike McCormack f92fff66a2 Implemented NtSignalAndWaitForSingleObject. 2005-04-24 17:35:52 +00:00
Robert Shearman d2ea92d14e - Clean up well-known privileges.
- Implement checking tokens for privileges in the server.
- Implement NtPrivilegeCheck.
2005-04-22 21:17:15 +00:00
Alexandre Julliard 3e2f2a5265 Allow nested hardware message processing by storing a unique id in
every message and using it to manage the current queue position.
Better filtering of hardware messages to avoid returning messages that
have no chance to match the filter.
2005-04-20 13:03:59 +00:00
Eric Pouech 0a9f98b9bd Removed the no longer user APC_ASYNC kind of APC. 2005-04-18 15:38:44 +00:00
Eric Pouech 5a2591d96d - moved named pipe creation to ntdll
- server now handles the named pipe flags as the NTDLL values (not the
  KERNEL32 ones)
- named pipes in server now use the async IO mechanism for
  connect/wait ops
2005-04-18 14:57:04 +00:00
Alexandre Julliard bc75f2f6c9 Return the coordinates information needed to setup the DC parameters
in the get_visible_region request instead of requiring the client to
compute it again.
2005-03-31 15:36:57 +00:00
Mike McCormack 2ab6a775bd Implement mailslots. 2005-03-30 19:02:15 +00:00
Alexandre Julliard 4d32a475a8 Replace the link_window request by a set_parent request since that is
all link_window is used for at this point.
Get rid of the WIN_LinkWindow/UnlinkWindow functions.
2005-03-25 10:38:56 +00:00
Alexandre Julliard 0bc8377bc2 Create a new server request for accepting hardware messages instead of
abusing reply_message.
Allow passing the determined window for a hardware message back to the
server to have it redispatch the message to the correct thread.
2005-03-23 10:33:17 +00:00
Alexandre Julliard 5054c79880 Try to always keep the server window Z-order in sync with the X11 one
using a heuristic based on mouse and expose events.
2005-03-21 12:37:00 +00:00
Alexandre Julliard f75609087a Make the server know about the visible area of a window, which is the
window rect minus the caption and borders when they are handled by the
window manager.
2005-03-17 19:10:41 +00:00
Alexandre Julliard 4e47afb36f Compute the top clipping window directly on the server side. 2005-03-17 14:02:06 +00:00
Alexandre Julliard 99615021fb Properly cope with get_message being called recursively while
processing a hardware message.
2005-03-10 11:52:25 +00:00
Ulrich Czekalla 5067909587 Create a thread-specific selection window to make sure we receive the
selection events in the correct thread.
2005-03-07 19:31:46 +00:00
Robert Shearman b0f02b28b9 - Implement AdjustTokenPrivileges, DuplicateTokenEx and
GetTokenInformation (for the TokenPrivileges case).
- Return STATUS_NO_TOKEN for OpenThreadToken when there is no token
  set for the thread.
2005-02-11 11:52:06 +00:00
Dmitry Timoshkov 6dba0a7718 Add support for winevent hooks. 2005-02-03 16:40:20 +00:00
Alexandre Julliard ae661da49c Properly compute the client area valid rects and pass them to the
server in set_window_pos to avoid invalidating areas that remain
valid.
2005-02-03 13:40:12 +00:00
Eric Pouech 4634447d6b - got rid of include/async.h
- fixed some overlapped issues in socket handling
- moved kernel32.CancelIo implementation to ntdll
2005-01-14 19:54:38 +00:00
Robert Shearman 7572b125b5 Implement NtQueryTimer. 2004-12-13 21:10:58 +00:00
Alexandre Julliard 5defa49979 Moved update region handling to the server. 2004-12-07 17:31:53 +00:00
Eric Pouech 44158dd690 - moved event, semaphore, mutex implementation from kernel32 to ntdll
- added mutant implementation in ntdll, and use it for mutex
  implementation in kernel32
- added access parameter on event, semaphore, timer creation in
  wineserver (as ntdll interface requires it)
- added missing definitions in include/winternl.h
2004-12-02 18:05:37 +00:00
Alexandre Julliard ff986a5a93 Converted the timer list to use standard list functions.
Allocate a timer id when the window is 0 instead of relying on the
client to do it.
Allow setting timers on windows belonging to other threads (found by
Mike McCormack).
2004-11-29 18:08:18 +00:00
Alexandre Julliard 6a27b48895 Fd type is no longer used, get rid of it. 2004-08-18 00:04:58 +00:00
Eric Pouech 1ffddb4d0c - better support for non-blocking COMM and socket read/writes:
+ added necessary semantics to fd flags
  + no longer uses fd type (but fd flags) read/write semantic behavior
- fixed socket code to use the proper manifest constants
- fixes for kernel32.GetOverlappedResult without hEvent set
- in ntdll.Nt{Read|Write}File
  + always reset the event
  + added support for longlong offsets
  + better object disposal in error handling code paths
2004-08-17 23:37:55 +00:00
Alexandre Julliard 4616dcb9a7 Moved the WindowFromPoint functionality to the server so that we can
properly take into account the window region.
2004-07-20 22:17:38 +00:00
Alexandre Julliard c4ec2108b1 Pass the environment for a child process through the server instead of
relying on the Unix environment.
2004-07-16 03:54:35 +00:00
Alexandre Julliard 618a7e5813 Added support for window regions in the server. 2004-06-29 03:53:25 +00:00
Alexandre Julliard e8d86b7cd4 Moved visible region calculation to the server. 2004-06-23 20:44:58 +00:00
Eric Pouech b0fd2ade62 - Added ProcessBasicInformation class to ntdll.NtQueryInformationProcess.
- Make use of it in kernel32.
2004-06-14 17:02:00 +00:00
Alexandre Julliard 8c29b5f0cc Removed the no longer used SMB file I/O support, we can't do reliable
file I/O in user space anyway.
2004-05-14 22:24:48 +00:00
Alexandre Julliard c07ce0571e Moved loading of the home registry files to the server, there's no
real need to make these configurable.
2004-05-07 04:13:21 +00:00
Alexandre Julliard 72f87b8c06 Use pread/pwrite everywhere to avoid changing the file position while
the client is using it.
Get rid of the no longer used truncate_file request.
2004-05-01 02:50:06 +00:00
Alexandre Julliard 18c08d307a Removed the get_file_info request. 2004-04-08 19:09:04 +00:00
Alexandre Julliard db4517010b Handle the set_file_pointer request on the client side. 2004-04-07 22:02:09 +00:00
Alexandre Julliard 49b2f6d964 Get rid of the removable media handling in the server. 2004-04-06 23:41:01 +00:00
Alexandre Julliard a1fe8b4f24 Use futimes() instead of utime() to implement SetFileTime, so that it
can be done on the client side.
2004-03-27 01:48:52 +00:00
Alexandre Julliard adc0610db7 Make the standard create_file request handle serial ports too, and
remove the create_serial request.
2004-03-18 04:08:48 +00:00
Alexandre Julliard 014099caf5 Changed the create_file server request to take NtCreateFile flags
instead of CreateFileW ones (based on a patch by Eric Pouech).
2004-03-12 01:56:49 +00: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
Uwe Bonnes 9ffce00940 Pass inherit handle flag properly for CreateNamedPipe. 2004-02-24 01:06:30 +00:00
Mike Hearn 43cb03be3a Implemented RegFlushKey and NtFlushKey. 2004-01-03 00:38:30 +00:00
Alexandre Julliard bd13ab8d78 Store a pointer to the client-side class structure in the server and
return it on create_window and destroy_class.
Only create a single instance of the desktop class for the whole
session.
Added some missing locking in the client-side class management.
2003-12-11 05:34:53 +00:00
Alexandre Julliard bfce151ae5 Added window classes in the server, and support for inter-process
GetClassWord/Long (based on a patch by Mike McCormack).
Various fixes to the class instance handling.
2003-12-10 04:08:06 +00:00
Alexandre Julliard ebf1243ec1 Added support for inter-process GetWindowWord.
Do better range checking on the window extra bytes.
2003-12-10 01:34:51 +00:00
Alexandre Julliard 97903d260b Added support for inter-process GetWindowLong on the window extra
bytes.
2003-11-26 22:15:41 +00:00
Alexandre Julliard e55d5937ac Set or clear the BeingDebugged flag in the PEB when a debugger is
attached to or detached from a process.
Don't send exception events to the server unless a debugger is
present.
2003-10-14 01:30:42 +00:00
Alexandre Julliard af192f83b6 Store a "removable" flag instead of the full drive type in the server
file object; this way we don't need to use GetDriveTypeW in the loader
code.
Make sure we always have a valid builtin_load_info pointer.
2003-10-08 00:25:32 +00:00
Alexandre Julliard 8d174d3f47 Store the global shell, progman and taskman windows in the server
(based on a patch by Martin Fuchs).
2003-10-07 03:40:23 +00:00
Alexandre Julliard 841f898663 Converted process creation to Unicode. 2003-10-04 04:09:41 +00:00
Alexandre Julliard c30cefb2d5 Store module names in Unicode in the server. 2003-09-30 01:04:19 +00:00
Eric Pouech 9fd54b2838 - Implemented a few information classes in NtQuerySystemInformation.
- Added handle information to (wineserver) process snapshot.
2003-09-16 01:07:21 +00:00
Alexandre Julliard e0b5270b4a Fixed include statements to match server_protocol.h (spotted by Eric
Pouech).
2003-09-08 19:04:01 +00:00
Mike McCormack 5ac945c021 Implement registry key unloading. 2003-08-19 03:08:17 +00:00
Eric Pouech 449d10fd79 Fixed regression in process creation (std handle inheritance). 2003-08-19 01:05:17 +00:00
Alexandre Julliard 039e13118e Implemented inter-thread SendMessageCallback. 2003-07-26 20:36:43 +00:00
Mike McCormack 36cd6f5dbb Added a security token object in wineserver. 2003-07-24 00:07:00 +00:00
Alexandre Julliard ca3ac8f155 Run WH_KEYBOARD_LL and WH_MOUSE_LL hooks in the context of the thread
that set the hook.
2003-07-11 21:55:58 +00:00
Alexandre Julliard 09029b2878 Implemented the SMTO_ABORTIFHUNG flag of SendMessageTimeout. 2003-07-11 04:09:42 +00:00
Alexandre Julliard 4f196ead13 Implemented the ThreadBasicInformation case for
NtQueryInformationThread.
2003-07-09 02:57:57 +00:00
Eric Pouech f6a70969e1 - start moving a few file related functions from files/file.c to
dlls/kernel subdir (also splitting 16bit APIs in a separate file)
- implemented ntdll.Nt{Lock|Unlock}File, and made use of those for the
  kernel32 equivalent
- implemented a few information classes in NtQueryInformationFile and
  NtSetInformationFile (still lots of missing classes)
- enhanced the get_file_info server request in order to implement
  correctly NtQueryInformationFile (change time & file alloc size)
- rewrote registry loading to comply with latest changes
2003-06-24 02:32:01 +00:00
Ulrich Czekalla b2df5f9f19 - use global atoms for the format ids
- add timeout when calling XCheckTypedWindowEvent
- fix broken IsClipboardFormatAvailable; it tried to do a trick with
  EnumClipboardFormats by making incorrect assumptions
- in X11DRV_IsClipboardFormatAvailable do a quick exit if no one owns
  the selection
- add 1 second *minimum* time lapse between XSelectionOwner calls
- sync clipboard ownership between different wine processes
- prevents apps from getting into wierd state where they thought they
  didn't own the selection but they did and as a result queried
  themselves for available selection data
2003-06-23 23:02:02 +00:00
Eric Pouech a86a289420 In console input record queue, replace semaphore with a manual reset
event, so that we get correct behavior in synchronization handling.
2003-06-23 03:37:14 +00:00
Eric Pouech 412d37f6e6 - adapted kernel32 so that it no longer (directly) manages console
handles as wineserver handles
- console input handle object is no longer waitable (input record
  synchronisation is now implemented as a simple semaphore), and removed
  FD_TYPE_CONSOLE from fd types in wineserver
- console handles now always have their two lower bit set so one can
  distinguish a console handle from a kernel object handle
- implemented some undocumented kernel32 console related APIs
  (CloseConsoleHandle, GetConsoleInputWaitHandle, OpenConsoleW,
  VerifyConsoleIoHandle, DuplicateConsoleHandle)
- allowed a few kernel32 APIs to take console pseudo-handles
  (FlushFileBuffer, GetFileType, WaitFor*Object*)
- simplified the console inheritance at process creation
- in console tests, no longer create a console if one already exists
2003-06-21 02:07:10 +00:00
Alexandre Julliard 693bbd79b6 Make it possible to retrieve an inheritable handle in open_named_pipe
(spotted by Uwe Bonnes).
2003-06-14 01:31:56 +00:00
Eric Pouech c00a4473bd Implement anonymous pipes on top of named pipes. 2003-05-20 04:32:53 +00:00
Eric Pouech 4c591d4ef3 Implemented timer related functions in ntdll and make the kernel32
functions use them.
2003-05-20 04:00:42 +00:00
Mike McCormack ef8b94622a - rewrite of the named pipe code
- allow NtFileFlushBuffers to wait
- allow DisconnectNamedPipe to invalidate client cached fd
- fix the pipe test now that one extra test passes
2003-05-15 04:22:45 +00:00
Alexandre Julliard 088bcf9ca5 Implemented NtQueueApcThread, and changed the server APC interface to
always take 3 parameters.
Implemented a number of other ntdll thread functions, and use them
from the kernel ones.
2003-04-04 22:26:34 +00:00
Alexandre Julliard 462172a3d6 Added abs_time_t structure to the server protocol, and added a dump
routine for it that displays the relative timeout to make timeout
values easier to interpret.
2003-04-02 22:48:59 +00:00
Alexandre Julliard 3e588e3a57 Implemented file change notifications, based on a patch by Mike
McCormack.
2003-03-26 23:41:43 +00:00
Alexandre Julliard a8497bd037 Make a distinction between the thread Unix pid and the process wide
pid for platforms that use both.
2003-03-22 21:00:09 +00:00
Alexandre Julliard b1095da50c Fixed bug that could cause SendMessage to return too early in certain
cases.
2003-03-19 00:12:17 +00:00
Alexandre Julliard ce61349334 Implemented file locking functions (partly based on my old Corel
patch). Added a few regression tests.
2003-03-18 05:04:33 +00:00
Alexandre Julliard 77c8b1dc2b Pass the pid of the new process in the new_process request, don't
depend on the parent pid to find the startup info.
2003-02-24 20:51:50 +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
Eric Pouech fa8b85aa5c Set the edition mode as a specific attribute, not an extension of the
console mode.
2003-01-09 06:01:32 +00:00
Eric Pouech 2359b57574 - no longer depend on toolhelp definitions for generating snapshots
- added get_dll_info request
2003-01-09 00:01:28 +00:00
Alexandre Julliard 8ba666f3a7 Store the keyboard state in the thread input structure on the server
side.
2003-01-08 19:56:31 +00:00
Alexandre Julliard 242e395bbc Store the hardware messages in the thread input structure, not in the
thread queue. Get rid of the cooked messages queue.
2003-01-08 00:27:58 +00:00
Mike McCormack 11f4b44451 Implemented registry change notifications. 2002-11-25 02:47:32 +00:00
Ryan Cumming 24f4eced42 Partially implement GetThreadTimes. 2002-11-25 01:33:38 +00:00
Alexandre Julliard b31af31cbf Removed the WINE_NO_STRICT support. 2002-11-23 01:09:57 +00:00
Alexandre Julliard 14e68ba7fe Added support for system-wide hooks. 2002-11-20 19:54:32 +00:00
Alexandre Julliard 0286135de3 Rewrote hook support to store the hook chain in the server.
Split off 16-bit hook functions and re-implemented them on top of the
32-bit ones; system-wide 16-bit hooks are no longer supported at this
point.
2002-10-29 00:41:42 +00:00
Alexandre Julliard b1df392f02 Fixed the WINE_NO_STRICT #ifdefs to do the right thing if STRICT is
defined (spotted by Michael Stefaniuc).
2002-10-21 23:43:04 +00:00
Alexandre Julliard 23bb3715f7 Added support for building certain dlls with -DSTRICT.
Added -DWINE_NO_STRICT flag to dlls that don't support STRICT yet.
2002-10-18 23:46:28 +00:00
Alexandre Julliard 11e3523949 Rewrote caret implementation to store the information in the server. 2002-10-17 01:24:33 +00:00
Alexandre Julliard a9e8f59c95 Moved mouse capture handling into the server. 2002-10-12 01:24:37 +00:00
Alexandre Julliard 5030bda77c Reimplemented Get/SetActiveWindow, Get/SetFocus and
Get/SetForegroundWindow by storing the information in the
server. Implemented correct inter-process window activation.
2002-10-11 23:41:06 +00:00
Alexandre Julliard ab5063b217 Added server-side infrastructure for the thread input structure.
Reimplemented AttachThreadInput() and added GetGUIThreadInfo().
2002-10-11 18:50:15 +00:00
Alexandre Julliard 54f228733a Added process_id_t and thread_it_t types to the server interface
instead of using void*, and removed a number of type casts.
2002-10-03 19:54:57 +00:00
Alexandre Julliard 7dafa61700 Fixed a number of bugs in the handling of window parent and owner and
added a regression test (based on the work of Bill Medland).
2002-09-25 00:21:56 +00:00
Alexandre Julliard 341b7dceb4 Implemented the ntdll virtual memory functions, and made the kernel
functions use them.
2002-09-17 18:54:42 +00:00
Eric Pouech 93bfa0d6b1 Implementation for console control events (includes process groups
support).
2002-06-02 21:22:22 +00:00
Alexandre Julliard 5188574984 Renamed handle_t to obj_handle_t to avoid conflict with rpcdce.h. 2002-05-30 20:12:58 +00:00
Alexandre Julliard 9d80215254 A few optimizations in the process startup requests now that Winelib
apps are started differently from Unix ones.
2002-05-24 21:20:27 +00:00
Martin Wilck 9ca4285a9f Fixed ReadFile() semantics when reading asynchronously on sockets.
Provide more accurate status codes than STATUS_UNSUCCESSFUL.
2002-04-25 22:58:59 +00:00
Martin Wilck bff7e69981 Implemented server framework for asynchronous IO on sockets. 2002-04-25 21:31:11 +00:00
Martin Wilck d15bf1c0fe Fixed handling of deferred connections in WSAAccept(). 2002-04-23 22:03:42 +00:00
Martin Wilck 2b47fb3cee - separate cleanly between async scheduling and file IO related issues.
- make the API compatible with other types of async requests (e.g. for
  sockets).
- remove exports of async IO related functions for DLL separation.
2002-04-05 22:53:57 +00:00
Chris Morgan 417296c4af Implement OpenThread() winapi call.
Implement a few pthreads functions.
2002-04-02 00:49:05 +00:00
Alexandre Julliard 6543a6522a Transfer the full process startup info as well as the command-line
through the server.
2002-03-29 18:28:56 +00:00
Alexandre Julliard 81f2a7307b Send message for WSAAsyncSelect sockets directly from the server,
instead of using the service thread. Finished separation of ws2_32.
2002-03-23 20:43:52 +00:00
Alexandre Julliard aeb566052f Correctly fill parent pid, module size and module name in process and
module snapshots. Based on patches by Eric Pouech and Andreas Mohr.
2002-03-22 00:21:23 +00:00
Mike McCormack fc93261150 Begin to make wine an SMB client. 2002-03-12 19:24:04 +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
Alexandre Julliard 3c4538c8db Reimplemented DebugBreakProcess. 2002-02-27 01:55:02 +00:00
Eric Pouech fbccb38e18 New XP debugging APIs: implemented DebugActiveProcessStop,
DebugSetProcessKillOnExit, DebugBreakProcess.
2002-02-27 01:28:30 +00:00
Martin Wilck aa47705809 Added support for socket flags. 2002-01-09 21:16:24 +00:00
Martin Wilck 88cd32b2d1 More general approach to file descriptor types and flags. 2002-01-09 20:30:51 +00:00
Alexandre Julliard 8ae5761dd0 Fixed string type in named pipe requests. 2001-12-31 22:26: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
Eric Pouech 0b83d4cbc6 New console code based on Win32 windows. 2001-11-23 23:04:58 +00:00
Alexandre Julliard 805bdc53e8 Store the window caption text in the server.
Maintain a paint count separately for each window.
2001-11-13 22:23:48 +00:00
Mike McCormack 309ed4e1f1 Make ConnectNamedPipe work in overlapped mode. 2001-11-07 20:14:45 +00:00
Ove Kaaven 708a846a88 Save a disk file's drive type in the server object. 2001-10-24 00:23:25 +00:00
Alexandre Julliard ddc3317b7a Store in the server all the window information accessible with
Get/SetWindowLong.
2001-10-22 19:08:33 +00:00
Alexandre Julliard 0d50965a13 Added requests to store window rectangles in the server. 2001-10-16 21:55:37 +00:00
Alexandre Julliard 7a2017dd65 Store window properties in the server. Moved property.c to dlls/user. 2001-10-12 19:10:26 +00:00
Alexandre Julliard d8a8c1131d Added atom_t type for atoms to make sure we use the same type
everywhere. Handle MIN_STR_ATOM offset in the server.
2001-10-12 18:45:29 +00:00
Alexandre Julliard 003f02b733 Removed the cleanup_window_queue request. 2001-10-11 20:50:10 +00:00
Alexandre Julliard 844ceb98ba Store window class atom in the server.
Keep unlinked windows on a separate list.
Implemented inter-process FindWindow().
2001-10-09 23:26:40 +00:00
Mike McCormack 568c67e173 Make serial fd blocking mode depend on FILE_FLAG_OVERLAPPED. 2001-10-08 20:40:57 +00:00
Mike McCormack ff58be5c7f Fetch a handle type in FILE_GetUnixHandle. 2001-10-04 16:18:15 +00:00
Alexandre Julliard 7695d69046 A couple of optimizations to avoid some server calls in WIN_FindWndPtr
and related functions.
2001-09-24 01:19:59 +00:00
Alexandre Julliard a09da0cbbd Added proper support for storing window parents in the server.
Added a few requests to query the window hierarchy.
2001-09-21 21:08:40 +00:00
Alexandre Julliard 1a66d226eb Added global management of user handles in the server.
Very preliminary support for shared window handles.
2001-08-28 18:44:52 +00:00
Mike McCormack f2e7ce7f6a Implemented GetNamedPipeInfo. 2001-08-27 19:03:42 +00:00
Mike McCormack bf55457f24 Implement WaitNamedPipe and DisconnectNamedPipe.
Add a state for each pipe handle in the server.
Create a socket on when the pipe is opened, not before.
2001-08-23 23:29:20 +00:00
Alexandre Julliard d253c58b1b Rewrote most of SendMessage/PeekMessage.
Implemented inter-process messaging.
Moved most message routines to dlls/user, and split off 16-bit
routines to a separate file.
2001-08-07 19:19:08 +00:00
Alexandre Julliard 37ec927536 Use the new protocol.def file to build the request structures.
Define protocol structures in a separate server_protocol.h file.
Removed __WINE_SERVER__ checks now that all includes are in the right
directory.
2001-07-19 00:35:37 +00:00