Although the Orchid sample capture driver uses the associated VxD merely to interract with the plug and play subsystem, you can optionally move portions of your capture functionality out of the Ring3 DLL and into the VxD. The actual vertical sync interrupt service routine is an obvious candiate for migration.
The VxD portion of the driver is loaded on system boot and receives configuration messages through the AVVXP500_Config_Handler entry point. When the Ring3 DLL is loaded on demand by a capture application, it first obtains the entry point to the VxD by calling the GetVxDEntry function. Next it requests the current resources via the GetVxDInfo function. When this function returns, the Ring3 DLL has a list of IRQ, and port resources previously acquired by the VxD.