The issue stems from having your printer hosted on a USB port by a 32-bit x86 version of WinXP and trying to get to it from a 64-bit x64 version of Windows 7. It could also be reversed, with your printer hosted on a USB port on a machine running a 64-bit version of Windows 7 and wanting to share the printer with a 32-bit machine (either another Windows 7 machine or a WinXP machine).
This solution is to properly install the other version of the print
driver as a "second driver", and this is typically done on the host machine... if possible. Otherwise, you can install the printer on the non-host machine pointing to the shared printer on the network, by installing the driver on the non-host machine. The printer object itself on the non-host machine will be designated as a "local printer, USB001 virtual USB port" during the installation process on the non-host machine, but will actually be that shared printer locally USB-attached on the host machine.
Again... there are two ways to install that second driver, depending on what's possible. Either two
drivers on the 64-bit host system (one 64-bit and the other 32-bit), or you can install the necessary drivers on the non-host machine but point to the shared printer on the host machine as "local printer, USB001 virtual USB".
For example, on my own 64-bit Windows 7 machine which has an HP 2605dn laserjet printer attached via USB, I SHARE that printer with a second Windows 7/XP machine on my network (it can be booted to either 64-bit Windows 7 or 32-bit WinXP). The way to make that happen is by (a) "sharing" it on the host Windows 7 system, thus making it available to other machines on the network, and (b) having BOTH 32-bit and 64-bit drivers installed for it on the host machine. This is possible both on Windows 7 and WinXP... you can install a SECOND printer driver for a printer, as I've done myself (right-click on the printer, select printer properties, select the "sharing" tab, push the "Additional drivers" button. Then follow the dialog process for the addition of the second driver to the single printer object (which will be much like the original driver install). When you're finished you'll have TWO drivers installed (one for 64-bit clients and a second for 32-bit clients), as the following shows:
In your own case (where the host for the USB-attached printer is not your 64-bit Windows 7 system, but rather your 32-bit WinXP system):
1. Install the downloaded universal print driver for the P2015 on your Windows 7 system (presumably 64-bit, which is why you have a problem sharing the printer with a host 32-bit WinXP system)
from the 64-bit driver link I provided above. When you run it it will self-expand and then start, and it will kick off the dialog for installing a new P2015 printer for the 64-bit machine on which this universal print driver installer is running.
Or, you can right-click on the downloaded self-extracting EXE installer file and use WinZIP/WinRAR to expand it into a folder. You can then navigate into that folder and run the INSTALL.EXE program.
2. Begin the printer installation. Choose "traditional mode", not "dynamic mode". Push the Install button.
3. Select "Add Local printer", not "add network printer".
4. In the "choose a printer port" dialog, specify "use an existing port". Click on the drop-down listbox arrow and select the "USB001 virtual printer port for USB" item. Click next button.
5. In the new window which appears select the network route of the printer. In my case it's something like \\MDR\HP Laserjet 2605dn PCL6. In your case it will be the location of that P2015 printer on your XP machine.
6. If the route was correct, then it will ask you for the drivers. Click on "use disk" and browse to the folder in which the Universal PCL6 driver has unzipped itself. Don't forget to check the box that indicates "search sub-folders". Otherwise, you can navigate yourself down a few folder levels to where the INF files are located and then use that folder, but the installer can do that automatically if you let it "search sub-folders" in the "use disk" process.
7. Continue and click Finish.
8. Wait for a while while the 64-bit printer driver is installed on your Windows 7 machine, pointing to the shared printer on your XP machine. You'll now have a new P2015 printer object on the 64-bit Windows 7 system, with 64-bit driver installed on the Windows 7 system using the USB001 virtual USB port, pointing to a "shared" P2015 printer USB-attached and hosted by the 32-bit WinXP system.
Should work.
(again, on a 64-bit Windows 7 system you can install both 64-bit and 32-bit printer drivers, which will be used to share the printer with any non-host client machine on the network that wants to use the shared printer. So you don't need to actually install a printer driver on the non-host machines. But in your case, with a 32-bit host which thus has a 32-bit primary driver installed to support the locally USB-attached P2015, you can just install the second required 64-bit version of the P2015 driver on the non-host 64-bit Windows 7 system itself, and just point to the USB001 location of the shared printer on the XP machine, as a "local printer", during the driver install process on that 64-bit Windows 7 system.)