SharpCAT/VirtualSerial2/README.md

65 lines
2.4 KiB
Markdown
Raw Normal View History

---
page_type: sample
urlFragment: virtual-serial-driver-sample-v2
description: "Demonstrates UMDF version 2 serial drivers and includes a simple virtual serial driver (ComPort) and a controller-less modem driver (FakeModem)."
languages:
- cpp
products:
- windows
- windows-wdk
---
# Virtual serial driver sample (V2)
This sample demonstrates these two serial drivers:
- A simple virtual serial driver (ComPort)
- A controller-less modem driver (FakeModem).This driver supports sending and receiving AT commands using the ReadFile and WriteFile calls or via a TAPI interface using an application such as, HyperTerminal.
This sample driver is a minimal driver meant to demonstrate the usage of the User-Mode Driver Framework. It is not intended for use in a production environment.
For more information, see the [Serial Controller Driver Design Guide](https://docs.microsoft.com/windows-hardware/drivers/serports/).
## Code tour
### comsup.cpp and comsup.h
- COM Support code - specifically base classes which provide implementations for the standard COM interfaces **IUnknown** and **IClassFactory** which are used throughout the sample.
- The implementation of **IClassFactory** is designed to create instances of the CMyDriver class. If you should change the name of your base driver class, you would also need to modify this file.
### dllsup.cpp
- DLL Support code - provides the DLL's entry point as well as the single required export (**DllGetClassObject**).
- These depend on comsup.cpp to perform the necessary class creation.
### exports.def
- This file lists the functions that the driver DLL exports.
### internal.h
- This is the main header file for the sample driver.
### driver.cpp and driver.h
- Definition and implementation of the driver callback class (CMyDriver) for the sample. This includes **DriverEntry** and events on the framework driver object.
### device.cpp and driver.h
- Definition and implementation of the device callback class (CMyDriver) for the sample. This includes events on the framework device object.
### queue.cpp and queue.h
- Definition and implementation of the base queue callback class (CMyQueue). This includes events on the framework I/O queue object.
### VirtualSerial.rc /FakeModem.rc
- This file defines resource information for the sample driver.
### VirtualSerial.inf / FakeModem.inf
- INF file that contains installation information for this driver.