IEEE 1394 Virtual VCR Driver Architecture (Windows CE 5.0)
The virtual VCR driver depends on having some permanent plugs allocated for it at startup. The IEEE 1394 virtual VCR driver uses the optional IOCTL_UNIT_PROCESS_REGISTRY_PLUGS functionality to extract plug definitions from the registry. The sample definitions, as listed in Common.reg, are shown in the following registry example.
[HKEY_LOCAL_MACHINE\WDMDrivers\{A7F514FB-8FF1-442f-9547-F5CCDA55EAE0}\0000\Plugs\0]
; MPEG, Output Plug, 26Mpbs peak
"MediaType"=dword:0
"Direction"=dword:2
"SubunitPlugID"=dword:0
"MaximumThroughput"=dword:18cba80
[HKEY_LOCAL_MACHINE\WDMDrivers\{A7F514FB-8FF1-442f-9547-F5CCDA55EAE0}\0000\Plugs\1]
; MPEG, Input Plug
"MediaType"=dword:0
"SubunitPlugID"=dword:0
"Direction"=dword:1
The {A7F514FB-8FF1-442f-9547-F5CCDA55EAE0} name refers to the GUID assigned to the virtual VCR device in Avc_vvcr.h. The 0000 name refers to the WDM instance of that driver. For virtual subunits, you rarely want more than a single instance, so this is typically just 0000. The actual entries below this point follow to the definitions described in IEEE 1394 Unit Filter Drivers.
A virtual subunit is not required to have permanent plugs defined. If the virtual subunit is not required to be compatible with some legacy hardware, for example, hardware that either presumes serial bus plug 0 or only looks for plugs when it recognizes the virtual subunit, typically following a IEEE 1394 bus reset, then the virtual subunit can effectively depend on receiving callbacks from the unit filter driver when external devices ask for subunit plug and serial bus plug associations.
Send Feedback on this topic to the authors