I am setting up some windows 7 workstations on XenServer 5.6 and needed to present 4 vCPUs to the OS. This requirement was set by the software vender. By default XenServer presents each vCPU as 1 core per socket so 4 vCPUs would appear as a 4 socket system. Windows 7 can only use 2 sockets. Within XenServer you can set the number of cores to present in a socket. This setting is applyed on a per guest level. With this setting you can tell XenServer to present the vCPUs as a 4 core socket.
The directions are in Citrix KB article CTX126524.
The keys are:
Set the platform cores per socket.
xe vm-param-set platform:cores-per-socket=4 uuid=
Set the startup cores.
xe vm-param-set VCPUs-at-startup=4 uuid=
Set the MAX cores.
xe vm-param-set VCPUs-max=4 uuid=