summaryrefslogtreecommitdiff
path: root/serial/VirtualSerial/README.md
blob: 05c1f385032d6fbaa018d8bbea9448885ac50228 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
---
page_type: sample
description: "Demonstrates a simple virtual serial driver (ComPort) and a controller-less modem driver (FakeModem)."
languages:
- cpp
products:
- windows
- windows-wdk
---


<!---
    name: Virtual serial driver sample
    platform: UMDF1
    language: cpp
    category: Serial
    description: Demonstrates a simple virtual serial driver (ComPort) and a controller-less modem driver (FakeModem).
    samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617963
--->

# Virtual serial driver sample

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 [Serial Controller and Device Drivers](http://msdn.microsoft.com/en-us/library/windows/hardware/ff546939) in the WDK documentation.

## Code tour

### comsup.cpp & 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 & 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 & driver.h

- Definition and implementation of the device callback class (CMyDriver) for the sample. This includes events on the framework device object.

### queue.cpp & 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.