Packet.dll is a dynamic link library that offers a set of low level functions to:

- install, start and stop the NPF device driver
- Receive packets from the NPF driver
- send packets to the NPF driver
- obtain the list of the available network adapters
- retrieve various information about an adapter, like the description and the list of addresses and netmasks
- query and set various low-level parameters of an adapter

There are two versions of packet.dll: the first one runs under Windows 95/98/ME, the second one is for Windows NT/2000/XP.

Packet.dll was created to provide a layer to access the low level functionalities of WinPcap in a system independent way. This library handles all the system-dependent details (like managing the devices, interacting with the OS to manage the adapters, looking for the information in the registry and so on), and exports an API that is uniform across all Windows OSes. In this way, applications or libraries based on it can run without being recompiled under any Windows operating system.

However, not all of the packet.dll API is totally portable: some advanced features, like kernel-mode dump, are present only in the WinNTx version of WinPcap, while packet.dll for Win9x does not provide them. On the other side, the NTx version is a superset of the 9x one, in other words all the function present in the Win9x version are present in WinNTx too.

The other important feature of this library is its ability to handle NPF driver. Packet.dll transparently installs and starts the driver when an application attempts to access an adapter. This avoids the manual installation of the driver through the control panel.

## Important note, read carefully!

The source code of Packet.dll is freely available and completely documented. However, packet.dll should be considered an internal API, because its purpose inside WinPcap is to be a building block for the real public API: wpcap.dll.

As a consequence, since the normal and suggested way for an application to use WinPcap is through wpcap.dll, we don't guarantee that the packet.dll API will not be changed in future releases of winpcap, and we don't provide support for this API. For the same reason, this manual doesn't contain any more the Doxygen-generated documentation of Packet.dll: the user will have to run Doxygen on his own to create it, or read the comments in the source code.