A lot of developers programming in the Windows environment often come across the problem that they cannot access hardware resources. As soon as an application tries to access the i/o port of some device, an exception occurs and the application is terminated with an error. The situation is not better concerning accessing physical memory addresses: due to the mechanisms of memory protection and page translation, you will never be able to access the physical memory of your computer. The only way out in this situation is to write your own kernel-mode driver that will be performing all privileged operations. Taking into account the fact that drivers for different operating systems from the Windows family have different architecture, this task will likely to cause considerable expenses in developers' efforts and time.
Active Port Pro is an ActiveX control used for controlling and managing any types of hardware devices via i/o ports, as well as for accessing the physical memory of a computer. Active Port Pro has been initially developed to make programming hardware devices in the Windows environment as easy as possible. With Active Port Pro, a lot of complex operations that usually take much time and become a headache for developers are performed completely imperceptibly and often even without a single line of code. At present, Active Port Pro is compatible with all commonly used programming languages (including .NET languages) and with all operating systems of the Windows family (including Windows 2003).
What Active Port Pro is used for:
1. Fast direct access to the i/o ports of various hardware devices.
As you know, operating systems based on Windows NT (Windows NT/2000/XP/2003) forbid accessing the i/o ports of hardware from user applications. This restriction is due to the fact that by default i/o operations from user applications are forbidden in a special internal operating system table called an I/O Permission Map. Thus, an exception occurs and your application gets terminated each time it tries to access some i/o port. With Active Port Pro, you can correct this I/O Permission Map in such a way that your application will get the same privileges while working with i/o ports as the kernel of the operating system. Moreover, you can do it with a few mouse clicks without a single line of code!
2. Fast direct access to physical memory addresses.
Very often software developers face the problem of accessing the physical memory of a computer. There are typical situations when direct access to physical memory is necessary: controlling ISA or PCI devices, reading configuration information from the BIOS data area, etc. As any up-to-date operating system, Windows uses memory protection and page translation making it completely impossible for a user application to access physical (not virtual) computer memory. With Active Port Pro, accessing the physical memory of a computer is as simple as writing one line of code!
3. Solving the problem of compatibility for applications working with hardware in various operating systems.
Any software developer has probably encountered the situation when some program working with hardware runs perfectly on Windows 95/98/Me and is terminated with an error when being launched on Windows NT/2000/XP/2003. Active Port Pro is compatible absolutely with all operating systems from the Windows family (including early versions of Windows 95). All you have to do to overcome the application incompatibility effect is to drag Active Port Pro onto the form of your application. And you do not have to write any additional code!
4. Solving the problem of i/o ports virtualization.
Quite a few developers think that they have full access to i/o ports in operating systems based on Windows 9x (Windows 95/98/Me). Actually, it's not so. In these operating systems, I/O Permission Map also forbids all operations with ports for user applications, as it is the case with operating systems based on Windows NT. When your application tries to access some i/o port, there also occurs an exception. But the application is not terminated because this exception is intercepted either by the operating system kernel or by one of its low-level drivers. Then the driver (or the OS kernel) can do anything with the request of your application: it can perform the operation, it can delay it, or it can do whatever it finds necessary. It is called i/o ports virtualization. Using Active Port Pro, you can easily get around the problem of ports virtualization and get genuinely direct access to hardware!
5. Managing any types of hardware devices easily.
Apart from standard features used for accessing i/o ports and physical memory, Active Port Pro has a number of additional features making it easier to work with hardware devices. For example, such features include getting the base addresses of COM and LPT ports and managing CMOS memory.