Ad-Hoc connections are certainly possible between XP and Vista. However, since you have a router, you're not doing Ad-Hoc networking.
Do this and see where it gets you.
For the Vista machine.
TCP/IP stack repair options for use with Windows Vista.
Start, Programs\Accessories and right click on Command Prompt, select "Run as Administrator" to open a command prompt.
Reset WINSOCK entries to installation defaults:
netsh winsock reset catalog
Reset IPv4 TCP/IP stack to installation defaults.
netsh int ipv4 reset reset.log
Reset IPv6 TCP/IP stack to installation defaults.
netsh int ipv6 reset reset.log
Reboot the machine.
For the XP machine.
TCP/IP stack repair options for use with Windows XP with SP2.
Start,
Run,
CMD to open a command prompt:
Reset TCP/IP stack to installation defaults.
netsh int ip reset reset.log
Reset WINSOCK entries to installation defaults:
netsh winsock reset catalog
Reboot the machine.
In addition, for the Vista machine, there are other changes that may help with networking.
Changes that may help to increase the compatibility of Vista with older networking devices:
Disable the IP Helper service:
1. Go to Start and type in "services.msc" (without the quotes) and press Enter
2. Scroll down to the IP Helper service, right click on it and select Properties
3. In the dropdown box that says "Automatic" or "Manual", set it to Disabled and then click on "Apply"
4. Then click on "Stop" to stop the service from running in the current session
5. Click OK to exit the dialog
Disable IPv6:
1. Go to Start and type in "ncpa.cpl" (without the quotes) and press Enter
2. Right click on each network connection and select "Properties"
3. Remove the checkmark from the box next to "Internet Protocol Version 6 (TCP/IPv6)
4. Click OK to exit the dialog
NOTE: You should do this for each network connection.
Disable the DHCP Broadcast Flag:
Link:
http://support.microsoft.com/default.aspx/kb/928233
- Go to Start and type in regedit and press Enter.
- Locate and then click the following registry subkey:
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}
- In this registry path, click the (GUID) subkey to be updated.
- If the key DhcpConnForceBroadcastFlag does not exist, use the Edit menu, point to New, and then click DWORD (32-bit) Value. In the New Value #1 box, type DhcpConnForceBroadcastFlag, and then press ENTER. If the key exists, skip this step.
- Right-click DhcpConnForceBroadcastFlag, and then click Modify.
- In the Value data box, type 0, and then click OK.
- Close Registry Editor.
NOTE: You should do this for each and every GUID subkey.
The only program I'm aware of that currently relies on IPv6 is the new Windows Meeting Space. The first 2 changes will cause that program not to work - but will leave all of your normal (IPv4) connections unaffected. If it causes problems that you can't overcome, simply revert back to the original settings.