The typical full NIC driver consists of a number of entry point functions and action functions that interact with a filter library. For more information about these functions, see Section A.1.2.6. Many of the driver functions can operate either synchronously or asynchronously. The code described in this book is based on a media-access control driver, but you can apply it to any type of NIC driver. The DDK provides a sample driver you can tailor to your needs. For more information about the sample driver, see Section A.1.2.3.