dhcpCreateBCSkt creates a socket for local address INADDR_ANY.
DHCPGetOptionInfo on the other hand is populating into the DHCP Inform payload based upon dhcpGetAddressInfo for the address returned by gethostbyname for the name returned by gethostname.
On a multi-homed host this can result in the DHCP Inform having data corresponding to interface "A" whilst the actual transmission of the DHCP Inform happens over interface "B".
(Depending on whether the address Winsock/TCPIP concluded was appropriate for INADDR_ANY based on the destination address of INADDR_BROADCAST happened to be the same as the address returned by gethostbyname for gethostname.)
The result when this happens can be that the DHCP server will discard the DHCP Inform request, if the mis-addressed DHCP Inform payload doesn't represent an address from a scope the receiving DHCP server supports.
Such as in the attached LAN trace, where it can be seen that the IP and MAC address within the inform do not match the IP or MAC of the workstation interface over which its being sent. The DHCP server in this case rightfully dropped the request, because the DHCP server did serve 192.168.3.x but did not serve 192.168.1.x.
Observed on 2.0.0 04JAN2007 Win32 x86 build on Windows Vista 6.0.6000 x86.
OpenSLP multi-homed DHCP Inform request