Commit graph

23246 commits

Author SHA1 Message Date
Alex Ionescu
c39989df1b - Fix SleepEx.
- Put volatile statements in EX_RUNDOWN_REF, IRP, DEVICE_OBJECT, ERESOURCE, FILE_OBJECT, IO_REMOVE_LOCK, WORK_QUEUE_ITEM where required (thanks to Microsoft's changes in the WDK to mark the fields properly).
- Update FILE_OBJECT definition.
- Add some asserts to some I/O functions.
- Add stub support for File Objects created by XP+ Drivers which have File Object Extensions.
- Add some fixes to IopDeleteFile, including proper reference counting for the DO and VPB, as well as cleanup when the file is closed without a handle.
- Fix a bug in IopSecurityFile.
- Queue and unqueue IRPs in all I/O functions.
- Fully support IRP cancellation now.
- Fix critical bugs in NtDeviceIoControlFile and NtDeviceFsControlFile which were causing double queueing of IRPs and freeing of invalid memory, as well as invalid paramter checking for user-mode buffers.
- Add exhaustive validation checks to IoCreateFile, add more failure cases, and validate the EA buffer. Also support IO_ATTACH_DEVICE_API flag.
- Implement IoCreateStreamFileObjectEx and IoCreateStreamFileObjectLite and fix several bugs in the original implementation of IoCreateStreamFileObject.
- Fix a bug in RtlRaiseException.
- Update Io*ShareAccess routines to support XP+ style semantics related to special File Object flags which disable their use.
- Add validation to all Query/Set routines so that information clasess, lengths, buffers and alignment are properly checked.
- Also add an array for the proper acess rights that each query/set operation requires.
- Check backup/restore privileges during I/O File operations.
- Check traverse access during I/O File Operations.
- Check access privileges to the device during I/O file operations.
- Rename IopReferenceDeviceObject and also verify if an exclusive DO is trying to be invalidly opened.
- Support various extra security checks during I/O File/Device Parse Routine.
- Fix a bug during IopCleanupIrp so that we don't dereference the File OBject if this was a create operation.
- Fix some bogus asserts in IofCompleteRequest, and save the IRP Flags before signalling it's event, since the driver might've freed it behind our back.
- Fix a large bug in ObInsertObject which affected the insert of unnamed objects with forced security options (Such as process/threads).
- Fix the creation of the Process/Thread/Job Obejct Types to that security information is forced.
- Remove "Fix PS!!!" messages since the bug is now fixed and these objects now get proper security descriptors.
- Fix another bug in ObInsertObjet which wasn't properly validating user-mode objects and always assumed kernel mode.
- Silence multiple trace/checkpoint messages that have accumulated throughout time for various debugging purposes.

svn path=/trunk/; revision=25118
2006-12-10 18:40:30 +00:00
Magnus Olsen
2ae5e0b1ff commit the patch from bug 1874 even it does not use the RDMSR and WRMSR measure methood, we need use the RDMSR and WRMSR for dual core and CPU support it see Intel documentations AP-485, who u should do it. The patch is from HTO Bugfix detections of RTSC support for single and dual core by me, adding check if the CPU support RDMSR and WRMSR and send a true or false value to GetCpuSpeed, so we known which method we should use. HTO patch should be use when it is false. other wise we should use the RDMSR and WRMSR measure method
See issue #1874 for more details.

svn path=/trunk/; revision=25117
2006-12-10 17:39:01 +00:00
Andrew Greenwood
d14487acdf Stubbing of Kernel Streaming DRM module
svn path=/trunk/; revision=25115
2006-12-10 15:12:12 +00:00
Andrew Greenwood
c7765a6c6c Further stubbing of Kernel Streaming APIs:
KS.SYS PORTCLS.SYS


svn path=/trunk/; revision=25114
2006-12-10 15:09:46 +00:00
Magnus Olsen
0fe6b951ac Fixed all hack in createsurface, we still have some bugs and do not create surface as we should.
but we lest create a single primary surface. 

svn path=/trunk/; revision=25113
2006-12-10 13:32:35 +00:00
Magnus Olsen
33ba72260b fixed some check in createsurface so user can not easy crash it.
svn path=/trunk/; revision=25112
2006-12-10 10:44:39 +00:00
Magnus Olsen
41059dabf4 Remove more of createsurface hack for primary surface.
svn path=/trunk/; revision=25111
2006-12-10 08:11:08 +00:00
Magnus Olsen
da0a71a8bc small optimzing of drawing line by George Veskov (jkxxster at gmail dot com) irc nick jkxx
svn path=/trunk/; revision=25110
2006-12-10 07:39:20 +00:00
Peter Ward
5ad7b6a0c9 - Revert 25108, requested by silverblade.
svn path=/trunk/; revision=25109
2006-12-10 05:43:49 +00:00
Andrew Greenwood
26fa983af4 Further stubbing of Kernel Streaming APIs
(corrective path fix to follow...)


svn path=/trunk/; revision=25108
2006-12-10 04:16:35 +00:00
Andrew Greenwood
275e3ef97e These files aren't complete yet, but this will put them at least in
their right place...


svn path=/trunk/; revision=25107
2006-12-10 04:04:03 +00:00
Magnus Olsen
b06bb7eb7e remove most of the hack in createsurface
svn path=/trunk/; revision=25105
2006-12-09 21:41:42 +00:00
Magnus Olsen
465b3d78e8 Test code to create surface. it is a big hack to create a primare surface.
but we success create a primary surface. with this hack. 

svn path=/trunk/; revision=25104
2006-12-09 18:31:31 +00:00
Eric Kohl
9360360cb5 Don't show a wallpapers file extension.
svn path=/trunk/; revision=25102
2006-12-09 15:31:06 +00:00
Johannes Anderwald
71d16876ff - only control panel applet should be started with rundll32.exe, other modules can be started w/o it
svn path=/trunk/; revision=25101
2006-12-09 14:43:02 +00:00
Christoph von Wittich
cc41125c21 fix version information display when using yasm
svn path=/trunk/; revision=25100
2006-12-09 13:47:38 +00:00
Magnus Olsen
94ca1acc37 revert the 25082 it cause unknown regress.
I did not notice it becose I did have a crashed dx hal interface.


svn path=/trunk/; revision=25099
2006-12-09 12:11:09 +00:00
Johannes Anderwald
659dc2230c - various msvc fixes
* inline -> __inline
 * use msvc generated interface name
 * fix duplicate definition of ElfrRegisterEventSourceA -> ElfrRegisterEventSourceW
 * fix memory leak in ElfrOpenELA 

svn path=/trunk/; revision=25097
2006-12-09 09:07:15 +00:00
Christoph von Wittich
880ee116c3 -display version information for compiler, binutils and nasm
svn path=/trunk/; revision=25092
2006-12-08 18:41:20 +00:00
Johannes Anderwald
3e7c9ccd65 - generated client header/source files get _c postfix
- generated server header/source files get _s postfix
- only generate code for the required module
Note: due to an bug in VS2005 build tool lib tool does only get part of generated object filename i.e. pnp_c.obj becomes pnp.obj. As a result the lib tool cannot link. However we need to generate unique obj files so that client / server project always compiles the requires source files

svn path=/trunk/; revision=25091
2006-12-08 12:47:58 +00:00
Johannes Anderwald
9813d8a0b7 - silence output
svn path=/trunk/; revision=25090
2006-12-08 12:24:40 +00:00
Johannes Anderwald
bc5080e521 - include path to generated idl files for dependant projects
svn path=/trunk/; revision=25089
2006-12-08 11:50:56 +00:00
Christoph von Wittich
adfd78e1b8 fix unused variable warning in release build
svn path=/trunk/; revision=25088
2006-12-08 11:15:48 +00:00
Johannes Anderwald
e731b55f87 - add missing source header
svn path=/trunk/; revision=25087
2006-12-08 10:53:14 +00:00
Christoph von Wittich
6bf437add2 updated buslogic driver to version 1.2.0.4
See issue #1891 for more details.

svn path=/trunk/; revision=25086
2006-12-08 02:01:34 +00:00
Christoph von Wittich
ae69669470 fix a typo in ObFindObject patch by hto
See issue #1861 for more details.

svn path=/trunk/; revision=25085
2006-12-08 01:06:10 +00:00
Christoph von Wittich
ceff92df91 -new german language file
-some fixed for the english language file
patch by Colin Finck
See issue #1900 for more details.

svn path=/trunk/; revision=25084
2006-12-08 01:00:51 +00:00
Christoph von Wittich
7ead042aa6 fix gcc 4.1.2 build patch by Coviti
See issue #1897 for more details.

svn path=/trunk/; revision=25083
2006-12-08 00:50:58 +00:00
Magnus Olsen
66bf6c2606 Adding more setup infromations for createsurface. (does not working yet)
svn path=/trunk/; revision=25082
2006-12-07 20:48:00 +00:00
Magnus Olsen
78eacb0873 start config up createsurface right to create surface but we are not setting all value right yet.
svn path=/trunk/; revision=25081
2006-12-07 18:27:16 +00:00
Magnus Olsen
f2f6e89dc0 start writing on the createsurface code, current does not setup the interface right yet so we do not doing the callbacks yet
svn path=/trunk/; revision=25080
2006-12-07 16:46:33 +00:00
Peter Ward
ab5143ea78 - Fix for "pice.sys gets loaded unexpectedly".
- Patch by Usurp.
- See bug http://www.reactos.org/bugzilla/show_bug.cgi?id=1898.

svn path=/trunk/; revision=25079
2006-12-07 16:43:30 +00:00
Johannes Anderwald
3315995e54 - fix a few warnings
- make it compilable with msvc and gcc4.1.1

svn path=/trunk/; revision=25078
2006-12-07 08:54:16 +00:00
Aleksey Bragin
87084dffa3 Add KdChangeOption() stub
svn path=/trunk/; revision=25077
2006-12-06 20:55:42 +00:00
Magnus Olsen
78e6f55307 did forget to exlucde the ddraw.rbuild. sorry I did break the build
svn path=/trunk/; revision=25076
2006-12-06 19:54:53 +00:00
Magnus Olsen
4e309b0917 fixed a pointer I forget setup. the This->lcl->lpDDCB was not set. and that mean we did not use any interface. we are using This->lcl->lpDDCB in the iface calls
svn path=/trunk/; revision=25075
2006-12-06 19:53:43 +00:00
Christoph von Wittich
e6219a7ac8 set minimum req. gcc version to 3.4.2
svn path=/trunk/; revision=25074
2006-12-06 16:22:32 +00:00
Aleksey Bragin
45f26cb114 - vfat now checks what CcCopyRead() returned, and return that value to the caller in case of failure
- Added a check for successful call to ReadCacheSegmentChain() in CC
See issue #1855 for more details.

svn path=/trunk/; revision=25073
2006-12-06 13:29:21 +00:00
Alex Ionescu
9dbd8d4fbe - Revert 25070: NO.
- Please look what I did inside FreeLdr. I called this function perfectly without needing to modify how it works. It's what the AdditionalBias parameter is there for...

svn path=/trunk/; revision=25071
2006-12-05 18:33:03 +00:00
Aleksey Bragin
35d9339017 A necessary hack for PE relocation within physical address space (in FreeLdr).
Using it removes code duplication from FreeLdr / winldr.

To get rid of this hack, either freeldr should be fully switched to virtual paged mode (which is not good) or code must be duplicated inside freeldr.

svn path=/trunk/; revision=25070
2006-12-05 18:28:08 +00:00
Johannes Anderwald
4ecce0d21b - fix build with gcc 4.1.0
svn path=/trunk/; revision=25069
2006-12-05 11:27:45 +00:00
Christoph von Wittich
94d2fce55a -revert janderwalds change until because it breaks the gcc 4.x build
svn path=/trunk/; revision=25065
2006-12-04 16:46:52 +00:00
Christoph von Wittich
6fb82c4caf fix ks.rbuild
svn path=/trunk/; revision=25064
2006-12-04 16:34:26 +00:00
Michael Steil
ef4a67dd52 ReactOS Intel Mac compatibility commits, part 2/2
== LBA Functionality BIOS Bug ==
When the BIOS is asked whether it supports INT 13 extensions, it will answer yes if the device is a hard disk, but it will pretend that even the function to ask about this functionality is unsupported if asked about a CD drive. This is similar to what is documented in the code already: Some BIOSes return "doesn't support INT 13 extensions" for CDs.
Code has been added to use INT 13 extensions (and therefore LBA read as opposed to CHS) even if the BIOS claims this is unsupported, if the device is a CD-ROM. The check for the drive type is done by comparing with 0x90: If the device number is 0x90 or above, it's a CD drive. (On Insyde's BIOS, it's 0x90, on most others, it's 0x9F).

(Ironically, Insyde's BIOS cannot even do CHS on CDs, so if the bootloader correctly asks for LBA support, it will get a "no" and will fail when trying to do CHS: When querying the max. CHS values, the BIOS returns 0 sectors per track, which will make conversions from LBA to CHS impossible.)

== LBA Read BIOS Bug ==
When trying to read from CD using the LBA function INT 13/42, the BIOS function will return as it is supposed to, with CF and AH cleared, but with an unchanged buffer. This is because freeldr passes a "disk address packets" that structure contains an extra 64 bit value at the end and is therefore 24 bytes long instead of 16. This is perfectly fine, and a BIOS should ignore any extra data in the structure, but Insyde's BIOS, which doesn't support the extra field (and thus the EDD-3.0 standard) just ignores the complete task and returns in this case.
The extra field has been removed from the structure in freeldr, as it is not used anyway. The structure is now 16 bytes long.

svn path=/trunk/; revision=25063
2006-12-04 15:33:06 +00:00
Michael Steil
eb565e3840 ReactOS Intel Mac compatibility commits, part 1/2, by Michael Steil.
== A20 Gate and the Keyboard Controller ==
In order to turn on the A20 gate, the keyboard controller has to be emptied. This is done in freeldr by reading bytes until the keyboard controller signals it's empty. Intel Macs don't have PS/2 keyboard controller and the status register always reads back 0xFF, so the "there is data" bit will never be cleared. (The same problem has been in GRUB as well as in Darwin's BIOS loader.)
Added code that doesn't bother to clear the keyboard buffer if the status port reads back 0xFF.

== Serial Port BIOS Bug ==
Insyde's BIOS reports that there is a COM1 serial port at 0x3F8 (as stored in 0040:0000 in memory), but there is none in Intel Macs, so freeldr spins infinitely while trying to empty the serial port's buffer.
Added code that makes sure the loop only gets executed up to 200 times

svn path=/trunk/; revision=25062
2006-12-04 15:00:11 +00:00
Peter Ward
f790496bd4 - Small compilation fix for roshttpd.
svn path=/trunk/; revision=25060
2006-12-04 01:50:47 +00:00
Johannes Anderwald
369fa23f46 - give roshttpd a rbuild file
- include it in build
- fix building with msvc

svn path=/trunk/; revision=25059
2006-12-03 23:35:02 +00:00
Johannes Anderwald
231c494a6f -fix compiling with msvc
svn path=/trunk/; revision=25058
2006-12-03 22:43:22 +00:00
Johannes Anderwald
9595935d9f - fix compiling with msvc
- replace getopt with simple parse routine

svn path=/trunk/; revision=25057
2006-12-03 22:29:07 +00:00
Johannes Anderwald
4c44ec895f - fix some warnings when compiling with msvc
svn path=/trunk/; revision=25056
2006-12-03 21:51:50 +00:00