Introduction - If you have any usage issues, please Google them yourself
Welcome to the fifth installment of the driver development series. The title of this article is a little bit misleading. Yes, we will be writing a TDI Client for demonstration purposes however that is not the main goal of this tutorial. The main goal of this tutorial is to further explore how to handle and interact with IRPs. This tutorial will explore how to queue and handle the canceling of IRPs. The real title of this article should be "Introduction to IRP Handling" however it s not as catchy a title! Also, it s not a complete fib we will be doing this while demonstration implementing a TDI Client driver. So, I actually have to explain how that part is implemented as well. The supplied example is a very simple client/server chat program which we will be using to explore how to handle IRPs.
Packet : 55593391driverdev_src5.zip filelist
driverdev_src5/
driverdev_src5/Programming/
driverdev_src5/Programming/development/
driverdev_src5/Programming/development/private/
driverdev_src5/Programming/development/private/src/
driverdev_src5/Programming/development/private/src/drivers/
driverdev_src5/Programming/development/private/src/drivers/network/
driverdev_src5/Programming/development/private/src/drivers/network/chatclient/
driverdev_src5/Programming/development/private/src/drivers/network/chatclientnet/
driverdev_src5/Programming/development/private/src/drivers/network/chatclientnet/CLIENT.C
driverdev_src5/Programming/development/private/src/drivers/network/chatclientnet/makefile
driverdev_src5/Programming/development/private/src/drivers/network/chatclient/CLIENT.C
driverdev_src5/Programming/development/private/src/drivers/network/chatclient/makefile
driverdev_src5/Programming/development/private/src/drivers/network/chatserver/
driverdev_src5/Programming/development/private/src/drivers/network/chatserver/makefile
driverdev_src5/Programming/development/private/src/drivers/network/chatserver/SERV.C
driverdev_src5/Programming/development/private/src/drivers/network/drvload/
driverdev_src5/Programming/development/private/src/drivers/network/drvload/load.c
driverdev_src5/Programming/development/private/src/drivers/network/drvload/makefile
driverdev_src5/Programming/development/private/src/drivers/network/inc/
driverdev_src5/Programming/development/private/src/drivers/network/inc/lightbulb.h
driverdev_src5/Programming/development/private/src/drivers/network/inc/NETDRV.H
driverdev_src5/Programming/development/private/src/drivers/network/makefile
driverdev_src5/Programming/development/private/src/drivers/network/netdrv/
driverdev_src5/Programming/development/private/src/drivers/network/netdrv/entry.c
driverdev_src5/Programming/development/private/src/drivers/network/netdrv/functions.c
driverdev_src5/Programming/development/private/src/drivers/network/netdrv/HandleIrp.c
driverdev_src5/Programming/development/private/src/drivers/network/netdrv/handleirp.h
driverdev_src5/Programming/development/private/src/drivers/network/netdrv/kmem.c
driverdev_src5/Programming/development/private/src/drivers/network/netdrv/kmem.h
driverdev_src5/Programming/development/private/src/drivers/network/netdrv/makefile
driverdev_src5/Programming/development/private/src/drivers/network/netdrv/tdiexample.h
driverdev_src5/Programming/development/private/src/drivers/network/netdrv/tdifuncs.c
driverdev_src5/Programming/development/private/src/drivers/network/netdrv/tdifuncs.h
driverdev_src5/Programming/development/private/src/drivers/network/netlib/
driverdev_src5/Programming/development/private/src/drivers/network/netlib/makefile
driverdev_src5/Programming/development/private/src/drivers/network/netlib/netlib.c