System Console FAQ

What is an extension?
How do I load/unload extension?

How do I stop the execution of a command?
How can I find out what protection mode is applied for a certain virtual memory area?
What is a System Console Stream?
Is it possible to transfer a System Console stream output to a file?
Is the System Console a command line software only?
What is a GUI extension?
I have been only using GUI extension(s) lately. Can I hide core window on the start?
What do I need to do in order to save stream output into a disk file?
Can I get access to a particular area in the process context address space?
How do I start/stop the GUI component of a System Console extension?

How do I load/unload extension?

To load an extension please use the LDE command and specify the name of the extension to be loaded. Note that the System Console Core will find the extension using the same algorithm as the LoadLibrary function (see Win32 SDK help). If you want to load an extension from a specific folder, you need to either specify the full path to the extension or change the current active folder of stream by the “CD folder name” command and then specify just the name of the extension. To unload an extension please use the ULDE command.

How do I stop the execution of a command?

Generally, it depends on the implementation of the command. Some commands (e.g., ULS) accept ESC key, and you need pay attention to the core window status bar. In any case, you can stop the execution of any command with the CTRL+C key combination.

How can I find out what protection mode is applied for a certain virtual memory area?

The MMAP command displays information about each memory region allocated in a particular process. The column "PROTECTION" shows the current protection mode where R stands for Read, W for Write, C for Copy-on-write, and E for Execute.

What is an extension?

An extension is an executable module that can be loaded into the System Console context with the LDE command.  This executable module must include special macros and headers  to be considered by the System Console Core as an extension. There are two types of extensions: command line extensions and GUI extensions. After loading a command line extension, the System Console will add new commands into its own command list. Every added command will provide an additional functionality provided by the extension. In the case of a GUI extension, all of the above is valid plus the extension has its own GUI with menu dialogs and any other graphic interface elements. Any extension can be unloaded at any time by the ULDE command.

What is a System Console Stream?

The stream is the System Console's output subsystem with its own window. All outputs of the System Console Core (e.g., created with the CslPrintf API function) are reflected as active streams.  An active stream can be set by CTRL+Fn keys (n - number of the stream). A new stream can be created with the help of the STREAM command. The System Console Core supports up to 12 independent streams (hence 12 switchable windows) at the same time.

Is it possible to transfer a System Console stream output to a file?

By default all output goes to an active stream. For example, if the user enters the PROC command, the result of the operation will be displayed in the System Console Core window that represents the currently active stream (only one stream can be active at the same time). Another way to see results of a command’s operation is to direct them to a disk file. To do that, just add   ">>" to the end of the command followed by a file name. For example: PROC >> c:\resullts.txt will redirect data from the current stream to the file results.txt on the C: drive. In this case you will not be able to see results of the PROC command in the System Console Core Window.  The user can save all the stream contents in a disk file by entering the STREAM command with the -v switch. In this case, all the data from the active stream will be saved in a file.

Is the System Console a command line software only?

No, but the System Console Core is. It is in fact possible to create GUI extensions. Moreover, you can hide the System Console Core Window. In this case the System Console GUI extension will look like a regular Windows GUI application. Of course, you can have access to the System Console Core Window at any time.

What is a GUI extension?

A GUI extension is an additional System Console executable module with a Graphic User Interface. It can be loaded into the System Console process context by LDE or STARTG commands. Therefore, a SC GUI extension looks like a regular Windows stand alone application, but is able to use powerful System Console Core API.

I have been only using GUI extension(s) lately. Can I hide core window on the start?

Yes. To do that, please use the SHCW command. This command allows hiding of the System Console Core window on the start. In your case, only your GUI extension(s) window will appear when you run the System Console, so it will look like a standard Windows GUI application(s).

What do I need to do in order to save stream output into a disk file?

The STREAM command can save all output into a disk file. Please use –v switch and specify the text file name you want to save. If you need to save a single command output into a text file, please use “>> filename” postfix at the end of the command. You can save all open streams’ contents on exit. To do that, please specify –s switch in the BYE command. On the next start you will get back all the streams’ contents.

Can I get access to a particular area in the process context address space?

Yes, but the System Console Core only provides a viewing memory dump functionality. To get a full access to the memory area you need to use the Memory Juggler extension. To get information about a particular memory space area, please use the MMAP command. It will give you comprehensive information about the allocation of virtual memory in a particular process.

How do I start/stop the GUI component of a System Console extension?

To start the GUI part of any System Console extension, please use the STARTG command. If the extension has a GUI component it will force the core to start it. If not, you will get an error message. If the extension was not loaded by the LDE command before, the STARTG command will load it first and then start the GUI component of the loaded extension. To stop the GUI part, just click on the “Close” button in the window caption or type the “STOPG extension name” command. Note that both methods of closing will not unload the extension itself (it only stops its GUI part), so all the commands of this extension (if it is a dual type extension) will still be available.