**_Project goal
_**
The goal of this project is provide a COM compoment to detect the attachment of PNP devices and beinig able to conditinally allow or deny attachment. Furthermore on attachment the component should decide wether to let the Windows PNP device manager install the driver or not. The native PNP driver installation should be disabled at all.
The component will be used from a local service running in the LocalSystem context.
_**Detailed Requirements**_
1) Detect the attachment of any PNP device
2) Ability to suppress the native windows driver installation, even it he COM server is not running
3) Ability to suppress device attachment at all, even it he COM server is not running
4) provide extensive information about the device being attached (Type, Serial number, etc.) to be able to decide if attachment is allowed or not.
5) Ability to invoke the original PNP driver installation on demand for a specific device.
_**Usage scenarios
**_
I added two common usage scenarios for the component.
A: The user plugs in an USB printer. A driver is not installed.
Expeceted behaviour:
1) The component generates an event to the existing service application (Not part of this project). The service application checks some internal stuff and decides about driver installation.
2) The component will now initiate the original Windows PNP driver installation or do nothing more at all depending on the result above.
B: The user plugs in an USB memory stick. A driver is already installed
Expeceted behaviour:
1) The component generates an event to the existing service application (Not part of this project). The service application checks some internal stuff and decides against attachment.
2) The component will deny the attachment of the device now. There is no way for the user to gain access to the device.
**_Object code_
**The work has to be delivered as a fully selfcontained in-process COM Server DLL with no external dependencies.
## Deliverables
1) Complete and fully-functional working program(s) in executable form (COM DLL) including a working sample application as well as complete source code of all work done and extensive documentation.
2) Deliverables must be in ready-to-use condition
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Windows 2000/XP/2003 Server required, Windows NT if possible