You know, all day long talking about the CIH virus using the VxD technology, mastered the VxD programming, is tantamount to breaking the CIH virus myth, complete removal of CIH virus. Study this article carefully.
VXD introduction
This article introduces the role of VxD. If the standard VxD provided by Windows 95 does not provide 100% compatible support for your hardware or software, you will need to create a VxD for your hardware or software (including 16-bit and 32-bit software). If you want Windows users to use some of the new features of your hardware or software, you can also create a VxD. This article describes how to write a VxD, describes the structure, procedures, and calls needed to create a VxD, and gives you the steps to create and test a VxD. VXD can be static or dynamically loaded, and the following is mainly about static VxD, but both the format and functionality are applicable.
What is a VxD
A VxD is a 32-bit executable that manages system resources such as hardware devices or installed software, enabling several applications to use these resources at the same time. Windows allows windows-based applications to multitask by using a VxD. A VxD handles interrupts in connection with Windows and performs I/O operations for applications that require I/O operations and does not affect the execution of other applications. Most VXD management hardware devices, there are also some VxD to manage or replace related software, such as the normal ROM BIOS. A VxD can contain device-related code that must be executed on the appropriate device, or it can rely on other software to perform these operations on the device. In any case, the VxD retains a record of the device status for each application, ensuring that the device is in the correct state whenever an application continues to execute it. Some VXD only manages installed software, such as MS-DOS device drivers or TSR programs, which typically contain code that simulates the software or protects the data used by the software for the running application. VXD is also sometimes used to improve the performance of installed software, and the Intel compliant CPU performs a 32-bit VxD that is more efficient than performing 16-bit MS-DOS device drivers or TSR programs.
Standard VxD
Windows includes a variety of VxD to support common hardware devices and installable software. In some cases, you may need to modify the VxD to provide new features or to support non-standard hardware. Windows provides many VxD that are not intended to be modified, but that can assist in supporting other VxD. For example, many VxD use the features provided by the V86 memory Manager (V86MMGR) and virtual programmable Interrupt Controller device (VPICD) to save V86 mode memory and allow hardware interrupt requests. To get help with developing a VxD, the Windows 95 device Driver Development Kit (DDK) includes the source code for a large number of available device drivers.
Create a VxD
You can create a VxD by modifying the VxD example program or by learning to write yourself. You can write VxD in assembly language, or you can write a section of VxD in a high-level language (such as the C language). To create a VxD, you need the following steps:
1. Read the chapters in the hardware manual about how to describe this type of hardware VxD.
2, write out the required control process, VxD service and API functions.
3. Establish a module definition file for VxD to indicate the appropriate module name, and draw out the necessary device description block.
4, the Assembly connection VxD.
5, with the debug version of Windows 95 test VxD, for more information on debugging VxD, please refer to the relevant information (you can use Soft-ice debugging-translator note).
6. Create installation files (INF files) for VxD and related files, install VxD by modifying registration information and copying files to Windows system directory and related directories.
7, establish the final release package. Raised? Window Cang? Xd.