You can get the official Plug-and-Play documentation from an archive of the Microsoft FTP site (The original has been down since late 2015):
These documents are self-extracting MS-Word files describing the industry (MS) specifications for PNP on BIOS, SCSI, Peripherals, etc...
You can combine that with the links on this page from Microsoft circa 2003: https://web.archive.org/web/20030207142304/http://www.microsoft.com:80/hwdev/tech/PnP/default.asp
Craig Hart has a good page on PNP programming at http://web.archive.org/web/20080829130750/http://members.datafast.net.au/dft0802 (archive of http://members.datafast.net.au/dft0802/)
You could also check out http://linux-sxs.org/programming/interfac.html