This chapter explores the Internet Protocol Helper (IPHelper) library. The IPHelper APIs provide you with several functions that enable your application to programmatically interact with the various layers of the TCP/IP protocol stack (described in Chapter 1). You can use IPHelper to reconfigure your network connections, query various protocol statistics, manage individual network adapters, and modify the current network route tables. In addition, the IPHelper event notification APIs are used to signal your application when certain network configuration properties change on the device. Bottom line: IPHelper is a great tool if you want to explore the nitty-gritty details of what's going on with any part of TCP/IP on your device.
Looking at Figure 3.1, you can see how IPHelper communicates with the various levels of the TCP/IP stack to provide information about the current network configuration, network adapters, and various protocol statistics.
Figure 3.1. The IPHelper library and TCP/IP OSI layers
To use the IPHelper library with your application, you need to include the iphlpapi.h and iptypes.h header files and link with the iphlpapi.lib library.