- Do not hardcode the test file name, but instead take it from the command line (and add a Usage() function);
- Do not use a too large fixed-size buffer to read & print the file, but instead use a correctly-size buffer, get the file size, and then do a loop to read data from the file by chunks & send it to the printer.
svn path=/trunk/; revision=73047
Finally merge my branch "colins-printing-for-freedom", giving us an initial implementation of a Win32-compatible Printing Stack (localmon, localspl, spoolss, spoolsv, winspool)
You can now send raw data to parallel port printers using documented Win32 API. An example application is in my "winspool_print" commandline tool merged to rosapps.
ReactOS folks, thanks for your support during the development of this, making my bachelor's thesis a reality! :)
Documentation/Thesis: https://svn.reactos.org/reactos/trunk/documentation/articles/Printing%20Stack%20Thesis/thesis.pdf
Video: https://www.youtube.com/watch?v=cNzePucTOLY
CORE-10489
svn path=/trunk/; revision=73039
The buildno #defines KERNEL_RELEASE_STR, KERNEL_RELEASE_RC (introduced in r756 17 years ago), and REACTOS_DLL_RELEASE_STR, REACTOS_DLL_RELEASE_RC (introduced in r11297 12 years ago) are things that never really caught out in our project. They were actually eclipsed in favour of the more common KERNEL_VERSION_STR and co. in our code.
I therefore remove the very last remains of the old KERNEL_RELEASE_xxx defines and replace them with KERNEL_VERSION_xxx ones.
svn path=/trunk/; revision=71478
Let's add hacks to glue hacks together:
In case rosvboxmgmt is started with its current directory not being the directory where it is along with hackssign_client.exe, then autoassign fails finding the hackssign client executable and thus, fails assigning drive letter.
This is what happens when you starts rosvboxmgmt on boot with shell.
So, when using autoassign, first look for the location of rosvboxmgmt and set our current directory there.
This fixes rosvboxmgmt autoassign not working on boot.
CORE-10032
ROSAPPS-303
svn path=/trunk/; revision=70578
- Implement retrieving export names from forwarders
- Add error() function to print errors
- Refactor image/symbol loading
- Fix some bugs and add some hacks, so that it compiles in out tree
- Add to build
svn path=/trunk/; revision=70569
Small utility to auto-create spec files. Uses MS symbol server to evaluate data not available in the export table. Features:
- Parse export table for export names and forwarders
- Find function name for nameless exports
- Recognize calling convention / data exports
- Analyze function parameters
svn path=/trunk/; revision=70559
Introduce another automagic thing. Instead of creating shortlinks once shared folders have been enumerated, just assign them a drive letter!
See it in action: https://twitter.com/HeisSpiter/status/685229912748371968
Choose the one you prefer for 0.4.0 :-)
CORE-10032
ROSAPPS-303
svn path=/trunk/; revision=70536
Improve the bootvid font generator of Colin (see r70507) in many ways:
- Allow the user to specify the font name (optional), and optionally a font size and x- and y-offset so that (s)he doesn't have to recompile the generator each time (s)he wants to test a new font.
- The default settings (in case the user doesn't specify all or part of the font definition) are those of Windows' bootvid font (i.e. "Lucida Console", font size 10, x_offset = y_offset = 0).
- Create only once the DC and the font handle (to be used for all the generated characters) instead of each time a character is being generated. I still keep the recreation of the HBITMAP for each character (I don't know if we can also improve there by creating it once and zeroing it out before generating each character).
svn path=/trunk/; revision=70512
Change the Blue Screen Font hardcoded into bootvid.dll to the Open Source "Anonymous Pro" font, which makes a nice 8x13 font.
Blue Screens now look like this: http://fs5.directupload.net/images/160106/ehv6245t.png
[BOOTVID_FONT_GENERATOR]
In case you find an even better font, you now have a nice little tool to test that font and generate the corresponding FontData array for bootvid.
svn path=/trunk/; revision=70507
Add a new feature to the tool:
Let it auto start VBox Shared folders and to browse all the available shares in order to create shell links on desktop.
The purpose is to workaround the missing network shares discovery feature in ReactOS while keeping the VBox shared folders usage 'user-friendly'.
It has been designed specifically for the coming 0.4.0 release: just put it on autostart for the default user. If there are shares (even new ones), it will create links, if there are no shares, no guest additions, no VBox, it will just exit.
See it in action: https://twitter.com/HeisSpiter/status/684506579555741696
CORE-10032
ROSAPPS-303
svn path=/trunk/; revision=70500
Implement an arping tool. Some portions of code are just plain copy/paste from ping tool code (booh, it's bad!).
It was designed and tested on W2K3.
It's in RosApps for two major reasons: such a tool doesn't exist by default in Windows 2K3.
And it doesn't work in ReactOS.
svn path=/trunk/; revision=70212
Simplify the hackssign application usage.
You don't need anymore to specify which VM type you use. The client will attempt to discover it by looking at available shared folders providers.
If it recognizes one, it will perform the assignation.
No Guest Additions/Tools installed will make the tool refuse to assign a drive letter (obviously).
So basically, you just need to issue some: hackssign assign z ReactOS (for example)
svn path=/trunk/; revision=68802
Stack hacks!
Let's introduce hackssign. This application (and its associated driver) are here to allow
users to assign drive letter to their VMware/VBox shared folders.
It relies on two components: a client to communicate the instructions and a driver to execute such instructions.
Do not execute this application nor its driver outside ReactOS. There are barely no security checks nor sanety checks.
You could do substantial damages.
So, let's go back to shared folders state in ReactOS nowadays...
VMware
------
Configure your shared folders
Install VMware Tools
Reboot
From here, you can access your share from cmd or explorer with UNC path (for instance: \\vmware-host\Shared Folders\ReactOS)
Go to C:\ReactOS\bin (or whatever, depending on your setup)
Execute hackssign assign z ReactOS vmware (for instance)
z is the letter you want to give, and ReactOS is the name of your share (you gave it in VMware configuration)
You're done, you can access your share with the Z drive letter
VirtualBox
----------
Configure your shared folders
Install VBox Guest Additions
Reboot
Go to C:\ReactOS\bin (or whatever, depending on your setup)
Execute rosvboxmgmt start
From here, you can access your share from cmd or explorer with UNC path (for instance: \\vboxsvr\ReactOS)
Execute hackssign assign z ReactOS virtualbox (for instance)
z is the letter you want to give, and ReactOS is the name of your share (you gave it in VMware configuration)
You're done, you can access your share with the Z drive letter
Note that you can delete an assignement by performing a hackssign delete z (or whatever drive you want to remove).
In such case, the share remains available with its UNC path.
svn path=/trunk/; revision=68794
Add the "rosvboxmgmt" tool.
It's purpose is to allow to interact with the VBoxSF driver as we don't have working MPR yet.
In order to have UNC path available, all you need to do so far is rosvboxmgmt start. All the rest isn't mandatory.
svn path=/trunk/; revision=68778
Time to free some Sysinternals tool: ntfsinfo.
To make it short, this tool dumps various information about a NTFS volume and its reserved meta-data files
Our version comes with three advantages compared to the Russinovich's tool:
- It's FLOSS
- It works properly on NT5+ (developed with W2K3 & W7) whereas R's cannot display meta-data files information
- It will open a volume by default if none provided
One issue so far: it doesn't work properly on ReactOS!
CORE-8725
svn path=/trunk/; revision=68326