Commit Graph

243 Commits

Author SHA1 Message Date
Martin Wilck af16c98f71 Implemented overlapped WSARecvFrom(), WSASendTo(), and
WSAGetOverlappedResult().
Fixed shutdown() to work correctly for overlapped sockets (do not
actually do a shutdown() system call as long as there are pending
overlapped requests).
Also added correct error reporting when trying to read or write on a
shut down connection, also for ReadFile()/WriteFile() calls.
2002-04-25 21:34:24 +00:00
Martin Wilck ef79c38e76 Avoid segfault with overlapped WriteFile() calls. 2002-04-23 19:27:51 +00:00
Martin Wilck e0587d4a64 GetOverlappedResult: Return ERROR_IO_INCOMPLETE if IO still pending.
ReadFile / WriteFile: Use GetOverlappedResult() to check for immediate
completion.
2002-04-17 16:46:06 +00:00
Martin Wilck 08867f7149 - Need a "cleanup" method.
- calling the "call_completion" method unconditionally in finish_async
  (introduced by me) was wrong, because the thread may never be in an
  alertable wait state -> call it only if user completion function is present.
- We need two constant "ops" objects, one with and one without call_completion
  method (the event field may NOT be used to determine whether the completion
  must be called or not).
2002-04-14 19:34:57 +00:00
Stefan Leichter f25efa0660 Compile fixes for gcc 2.7.2.3. 2002-04-11 17:34:46 +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
Francois Gouget 34372dcbf0 Fix SetFileAttributes to honor the umask (rather than making files
world-writable).
2002-03-29 18:17:35 +00:00
Alexandre Julliard 8d1550d1c6 Export the FILE_GetUnixHandle functionality from ntdll. 2002-03-23 18:48:12 +00:00
Mike McCormack fc93261150 Begin to make wine an SMB client. 2002-03-12 19:24:04 +00:00
Mike McCormack 4a6b990ce8 Set an overlapped hEvent before calling any APCs. 2002-03-11 01:19:29 +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
Gerhard W. Gruber 814a3fa2a1 MoveFileEx now enters the files in the registry when the boot delay
flag is set.
2002-02-22 21:30:22 +00:00
Alexandre Julliard 45342a35fe Fixed function prototype that confused winapi_extract. 2002-01-21 17:37:24 +00:00
Eric Pouech 5cc6105b39 Changed the Wine internal cdrom interface to the NT model. 2002-01-13 01:44:00 +00:00
Martin Wilck 88cd32b2d1 More general approach to file descriptor types and flags. 2002-01-09 20:30:51 +00:00
Martin Wilck 718b1b711b Add server side support for async IO on files.
Use pread/pwrite to read/write from the offset specified in the
overlapped structure.
2002-01-07 21:02:15 +00:00
Mike McCormack 99a5cfea91 - Attempt write before going overlapped in Writefile.
- Fix return codes in WriteFileEx.
2002-01-07 18:11:28 +00:00
Mike McCormack de339f3021 Implement CancelIo properly. 2002-01-07 18:06:59 +00:00
Mike McCormack 9119543795 Set an overlapped's hEvent for ReadFile/WriteFile in an overlapped
completion function, not in ReadFileEx or WriteFileEx.
2002-01-01 01:11:32 +00:00
Mike McCormack 5d754fc958 Don't return from overlapped ReadFile on EAGAIN and other non-fatal
errors.
2001-12-21 19:16:33 +00:00
Mike McCormack 6f011c0847 - move async activation into the server
- implement async queues
2001-12-20 00:07:05 +00:00
Mike McCormack 27cf4a41c2 Implemented timed-out non-overlapped ReadFile. 2001-12-19 18:48:29 +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
Ove Kaaven 708a846a88 Save a disk file's drive type in the server object. 2001-10-24 00:23:25 +00:00
Francois Gouget 3bb9a36ee0 Spelling, grammar and a bit of comment formatting fixes. 2001-10-22 19:04:32 +00:00
Mike McCormack ea4f32c4eb Separate code to overlapped timeouts into FILE_GetTimeout. 2001-10-17 17:45:11 +00:00
Eric Pouech 3bbeb72d3f Pass security attributes for DOSFS creation. 2001-10-14 16:08:45 +00:00
Mike McCormack 9e1fc62651 Do overlapped reads if and only if the file was opened with
FILE_FLAG_OVERLAPPED.
2001-10-10 20:26:58 +00:00
Eric Pouech c73316db5b - fixed copy&paste bug (GENERIC_WRITE instead of GENERIC_READ)
- when getting the type of a handle, it has to be done even if no fd
  is attached to it (console for example)
2001-10-08 20:57:12 +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
Uwe Bonnes ef3d022c62 Check for NULL path argument in DeleteFile. 2001-10-02 17:40:33 +00:00
Ove Kaaven 72f404421c Make MoveFileEx fail with ERROR_INVALID_PARAMETER (better than
crashing) when the source file operand is NULL.
2001-10-01 20:52:00 +00:00
Ove Kaaven 7efa8e258e A failure to open a pipe should return INVALID_HANDLE_VALUE. 2001-09-25 22:37:32 +00:00
Mike McCormack b473a0f0b9 Added stub for CancelIo. 2001-08-22 18:02:39 +00:00
Mike McCormack 6f030e8d13 Read data immediately in overlapped ReadFile if possible. 2001-08-20 18:01:17 +00:00
Bernhard Rosenkraenzer 5dda1f7e2c Set executable permissions when creating .exe/.com files. 2001-07-23 18:09:41 +00:00
Alexandre Julliard 37e9503ae8 Moved server.h to include/wine. 2001-07-19 00:39:09 +00:00
Mike McCormack e61ad3a9f3 Implement overlapped completion routines.
Don't use lpOverlapped->OffsetHigh to store bytes to transfer.
2001-07-12 22:29:41 +00:00
Mike McCormack de7c3003e2 Start implementing named pipes. 2001-07-10 19:16:49 +00:00
Mike McCormack a38e5e5771 Implement ReadFileEx and WriteFileEx (lpOverlappedCompletion routine
is not supported yet...)
2001-07-08 20:29:26 +00:00
Patrik Stridvall 01d5e5b071 Documentation fixes. 2001-07-02 19:59:40 +00:00
Mike McCormack 838a3614f6 Declare stubs for ReadFileEx, WriteFileEx. 2001-07-02 18:56:01 +00:00
Patrik Stridvall 3ca9823941 Documentation ordinal fixes. 2001-06-20 23:03:14 +00:00
Patrik Stridvall dae8de69e2 Documentation ordinal fixes (using winapi_fixup). 2001-06-13 20:13:18 +00:00
Marcus Meissner 6bb990f7fd Drop any file64 functions, try to use system supplied 64-bit mode by
using proper defines.
2001-05-29 20:55:21 +00:00
Marcus Meissner 3f1ed52d8b Implemented 64bit file size handling.
Removed several unneeded sys/stat.h includes.
2001-05-14 20:09:37 +00:00
Michael McCormack 1c32a46d5a Use poll() on the client-side during server waits to implement
overlapped I/O.
2001-03-22 20:09:34 +00:00
Andreas Mohr 12bf7f1dde GetFileInformationByHandle() fails for pipe handles according to
MSDN, and also for serial handles (FILE_TYPE_CHAR in general ?).
2001-03-05 19:30:52 +00:00
Alexandre Julliard 8859d77279 Create the server pipes on the client side and transfer them to the
server on thread creation.
Use a single per-process socket instead of one per thread for
transferring file handles between client and server.
2001-03-01 22:13:49 +00:00
Alexandre Julliard f52424055f New mechanism to transfer file descriptors from client to server. 2001-02-28 21:45:23 +00:00
Alexandre Julliard 67a749999a New set of macros for server calls; makes requests without variable
part somewhat faster.
2001-02-27 02:09:16 +00:00
Gerard Patel d52e1c4be9 Gives back the ERROR_FILE_NOT_FOUND to GetFileAttributes. 2001-02-16 19:05:42 +00:00
Jon Griffiths 0cfa278b02 SetLastError() for GetFileAttributesA. 2001-02-14 00:26:46 +00:00
Patrik Stridvall bca4a8dce0 Documentation argument fixes. 2001-02-12 03:49:57 +00:00
Andreas Mohr c9cf70d448 Some more cleanups. 2001-01-26 20:40:50 +00:00
Alexandre Julliard 7d5bc5c3f9 Removed some direct accesses to the 16-bit task structure. 2001-01-15 20:09:09 +00:00
Mike McCormack eb3e38eb73 Swap lpOverlapped parameters in ReadFile and WriteFile.
The InternalHigh member should contain the number of
bytes transferred.
2001-01-12 19:57:38 +00:00
Mike McCormack f21aac0e0c Implemented asynchronous ReadFile and WriteFile. 2001-01-10 22:45:03 +00:00
François Gouget 4b4f69ad38 The last parameter of CreateFile should be 0 (aka NULL), not -1.
CreateFile returns INVALID_HANDLE_VALUE when it fails, not
HFILE_ERROR.
Added comments.
2001-01-09 20:51:19 +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
Mike McCormack ad72e71fda Implemented GetOverlappedResult. 2000-12-29 19:44:18 +00:00
Alexandre Julliard d549f6909e Use a separate FIFO pair for server requests that don't need to pass a
file descriptor.
Associate file descriptors with handles on the server side so that we
don't need to pass the fd every time the client wants to use it.
2000-12-22 02:04:15 +00:00
Alexandre Julliard 5801723b50 Replaced WIN16_GlobalLock16 by "official" function K32WOWGlobalLock16. 2000-12-22 01:09:26 +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 982a223f36 Replaced PTR_SEG_TO_LIN macro by exported MapSL function.
Fixed a few ptr/segptr mismatches.
Moved CONV_RECT/POINT macros to wingdi16.h.
2000-12-13 20:20:09 +00:00
Aric Stewart e4d09327ef Added ASCII-only version of toupper, tolower, strcasecmp and the like
for file and module I/O.
2000-12-03 03:14:29 +00:00
Alexandre Julliard 27bb311d70 Added implementation of lstat to port.c. 2000-11-29 17:48:06 +00:00
Alexandre Julliard 24a62ab9b0 Got rid of the Wine internal lstrcpy* functions and of winestring.h. 2000-11-28 22:40:56 +00:00
Alexandre Julliard 5ce902b0b9 Implemented DosFileHandleToWin32Handle, Win32HandleToDosFileHandle and
DisposeLZ32Handle and use them to replace file.c internal functions.
Renamed WOW* functions into K32WOW*.
2000-11-27 21:59:08 +00:00
Dimitrie O. Paun 864dc5981c Use variable argument macros when compiling with gcc. 2000-11-10 23:31:06 +00:00
Dimitrie O. Paun dbb61c0f3e Use debugging API instead of outputing to stderr directly. 2000-11-04 02:55:54 +00:00
Andreas Mohr 220312e993 Skip directory symlinks in DOSFS_FindNextEx. 2000-10-19 20:38:38 +00:00
Alexandre Julliard 27952ef0ee Added a few more large integer functions. 2000-10-13 20:26:03 +00:00
Alexandre Julliard 83f52d11c1 Moved all Win16 definitions out of the standard Windows headers. 2000-09-26 22:20:14 +00:00
Alexandre Julliard 6dbf67e566 Moved FILE_dommap() to memory/virtual.c (and renamed it VIRTUAL_mmap). 2000-09-18 01:44:08 +00:00
Andreas Mohr 20cd9356a8 - fixes debugger output
- get rid of wrong comments
- fix comments
- .spec spelling fix
- improve warning message
2000-09-12 23:40:40 +00:00
Alexandre Julliard 92643003cf Converted a lot of server requests to the new exception handling
mechanism.
2000-08-31 01:59:51 +00:00
Alexandre Julliard 9c2370bd75 Added exception handling wrapper to a number of server requests.
Changed a few requests to use the new vararg mechanism.
2000-08-30 00:00:48 +00:00
Marcus Meissner 242d23e9a3 (from IBM TopPage patch) return correct error for already existing
file.
2000-08-21 03:18:32 +00:00
Alexandre Julliard e101f6db3b Cleaned up a few inter-dll dependencies. Added a few imports. 2000-08-14 14:42:41 +00:00
Alexandre Julliard 231674d824 Removed the DOS handles table from the PDB and made it a static
variable.
2000-08-09 22:30:18 +00:00
Alexandre Julliard a007f3364a Moved a few non-standard headers into their respective dlls. 2000-08-09 00:54:58 +00:00
Alexandre Julliard cb10fdab99 Replaced lstrlen/lstrcmp by libc equivalents everywhere we don't need
to trap exceptions.
2000-08-06 02:41:16 +00:00
Hidenori Takeshima 66791afa8f Fix for 64-bit negative seek value. 2000-07-31 23:26:50 +00:00
Andreas Mohr 2caee712a2 Spelling fixes. 2000-07-16 15:44:22 +00:00
Stas Sergeev feb71a6950 mmap() fails with ENODEV on NTFS under Linux. 2000-06-07 03:16:01 +00:00
Gerard Patel f69c1501a8 Revert the test for Virtual_HandleFault in ReadFile/WriteFile. 2000-05-07 18:26:19 +00:00
Alexandre Julliard 045d81f16c Added ENOEXEC error code. 2000-05-01 16:20:23 +00:00
Andreas Mohr af7e1ae5c5 FILE_CreateFile()'s read/write-check was broken due to checking of
ERROR_xxx instead of STATUS_xxx.
2000-04-13 15:58:30 +00:00
Alexandre Julliard fbace6eefe Added a per-drive FailReadOnly flag, and removed the global
--failreadonly option.
2000-04-04 20:35:45 +00:00
Alexandre Julliard 8a971bfec0 Fixed file descriptor leaks. 2000-04-04 19:57:23 +00:00
Patrik Stridvall 2d6457c11a Added/fixed some documentation reported by winapi_check. 2000-03-28 20:22:59 +00:00
Francois Gouget 6d77d3a1df Use min/max instead of MIN/MAX. 2000-03-25 21:44:35 +00:00
Matthew Cline 8bfd825fbe Added WARN messages on open errors. 2000-02-18 19:05:11 +00:00
Alexandre Julliard 90476d6b4a Moved SystemHeap allocations to the process heap. 2000-02-16 22:47:24 +00:00
Alexandre Julliard 383da68cf9 Optimized debugging API to reduce code size. 2000-02-10 22:15:21 +00:00
Marcus Meissner dd7523d518 Handle \\.\<dosdevice> like <dosdevice> in CreateFile. Tested with
help of James Feeney <james@nurealm.net>.
2000-01-23 02:18:27 +00:00
Peter Ganten f6c4388e61 Return an error if lpOverlapped is provided to ReadFile / WriteFile. 1999-12-11 23:08:00 +00:00