; Copyright (c) Microsoft Corporation.  All rights reserved.

[Version]
Signature="$Windows NT$"
Class=Camera
ClassGuid={ca3e7ab9-b4c3-4ae6-8251-579ef933890f}
Provider=%Msft%
DriverVer = 06/21/2006,10.0.22621.3672
PnpLockdown=1

[ControlFlags]
ExcludeFromSelect=*

[SourceDisksNames]
3426=windows cd

[SourceDisksFiles]
usbvideo.sys 		= 3426

SecureUSBVideo.dll      = 3426


[DestinationDirs]
USBVideo.CopyList=12

SecureUSBVideo.CopyList=12,UMDF


[Manufacturer]
%Msft%=Microsoft,NTamd64

[Microsoft.NTamd64]
%USBVideo.DeviceDesc%=USBVideo,USB\CLASS_0E

[USBVideo.NT]
Include=ks.inf, kscaptur.inf
Needs=KS.Registration, KSCAPTUR.Registration.NT
CopyFiles=USBVideo.CopyList

CopyFiles=SecureUSBVideo.CopyList

AddReg=USBVideo.AddReg, USBVideo.TopologyNodeRegistration, DVCR.Plugins
AddProperty=USBVideo.AddProp
; expose non-generic device name
PreferDeviceInfo=1

[USBVideo.NT.HW]
Include=pci.inf
Needs=PciD3ColdSupported.HW

AddReg=SecureUSBVideo.AddReg.HW


[SecureUSBVideo.AddReg.HW]
HKR,,"LowerFilters",0x00010000,"WdmCompanionFilter"


[USBVideo.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbvideo.sys

[USBVideo.AddProp]
GenericDriverInstalled,,,,1

[USBVideo.TopologyNodeRegistration]
HKLM,%MediaCategories%\%GUID.VideoStreaming%,Name,,%Node.VideoStreaming%
HKLM,%MediaCategories%\%GUID.VideoStreaming%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%GUID.VideoInputTerminal%,Name,,%Node.VideoInputTerminal%
HKLM,%MediaCategories%\%GUID.VideoInputTerminal%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%GUID.VideoOutputTerminal%,Name,,%Node.VideoOutputTerminal%
HKLM,%MediaCategories%\%GUID.VideoOutputTerminal%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%GUID.VideoSelector%,Name,,%Node.VideoSelector%
HKLM,%MediaCategories%\%GUID.VideoSelector%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%GUID.VideoProcessing%,Name,,%Node.VideoProcessing%
HKLM,%MediaCategories%\%GUID.VideoProcessing%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%GUID.VideoCameraTerminal%,Name,,%Node.VideoCameraTerminal%
HKLM,%MediaCategories%\%GUID.VideoCameraTerminal%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%GUID.VideoInputMTT%,Name,,%Node.VideoInputMTT%
HKLM,%MediaCategories%\%GUID.VideoInputMTT%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%GUID.VideoOutputMTT%,Name,,%Node.VideoOutputMTT%
HKLM,%MediaCategories%\%GUID.VideoOutputMTT%,Display,1,00,00,00,00

[DVCR.PlugIns]
; This IID is aggregated for the filter given the CLSID of the property set
HKLM,System\CurrentControlSet\Control\MediaInterfaces\{B5730A90-1A2C-11cf-8C23-00AA006B6814},,,%PlugIn_IAMExtDevice%
HKLM,System\CurrentControlSet\Control\MediaInterfaces\{B5730A90-1A2C-11cf-8C23-00AA006B6814},IID,1,90,0A,73,B5,2C,1A,cf,11,8C,23,00,AA,00,6B,68,14

; This IID is aggregated for the filter given the CLSID of the property set
HKLM,System\CurrentControlSet\Control\MediaInterfaces\{A03CD5F0-3045-11cf-8C44-00AA006B6814},,,%PlugIn_IAMExtTransport%
HKLM,System\CurrentControlSet\Control\MediaInterfaces\{A03CD5F0-3045-11cf-8C44-00AA006B6814},IID,1,F0,D5,3C,A0,45,30,cf,11,8C,44,00,AA,00,6B,68,14

; This IID is aggregated for the filter given the CLSID of the property set
HKLM,System\CurrentControlSet\Control\MediaInterfaces\{9B496CE1-811B-11cf-8C77-00AA006B6814},,,%PlugIn_IAMTimecodeReader%
HKLM,System\CurrentControlSet\Control\MediaInterfaces\{9B496CE1-811B-11cf-8C77-00AA006B6814},IID,1,E1,6C,49,9B,1B,81,cf,11,8C,77,00,AA,00,6B,68,14

;
; Property Pages
;

;
; Associate the property set with the above property page
;
; IAMExtDevice, IAMExttransport and IAMTimecodeReader interfaces
; all use the same property pages.
;
HKLM,System\CurrentControlSet\Control\MediaSets\{B5730A90-1A2C-11cf-8C23-00AA006B6814}\PropertyPages\{81e9dd62-78d5-11d2-b47e-006097b3391b},,,%PropPage_DVcrControl%
HKLM,System\CurrentControlSet\Control\MediaSets\{A03CD5F0-3045-11cf-8C44-00AA006B6814}\PropertyPages\{81e9dd62-78d5-11d2-b47e-006097b3391b},,,%PropPage_DVcrControl%
HKLM,System\CurrentControlSet\Control\MediaSets\{9B496CE1-811B-11cf-8C77-00AA006B6814}\PropertyPages\{81e9dd62-78d5-11d2-b47e-006097b3391b},,,%PropPage_DVcrControl%

[USBVideo.NT.Interfaces]
AddInterface=%KSCATEGORY_CAPTURE%,GLOBAL,USBVideo.Interface
AddInterface=%KSCATEGORY_RENDER%,GLOBAL,USBVideo.Interface
AddInterface=%KSCATEGORY_VIDEO%,GLOBAL,USBVideo.Interface
AddInterface=%KSCATEGORY_RENDER_EXT%,GLOBAL,USBVideo.Interface
AddInterface=%KSCATEGORY_VIDEO_CAMERA%,GLOBAL,USBVideo.Interface

[USBVideo.Interface]
AddReg=USBVideo.Interface.AddReg
         
[USBVideo.Interface.AddReg]
HKR,,CLSID,,%ProxyVCap.CLSID%
HKR,,FriendlyName,,%USBVideo.DeviceDesc%
HKR,,RTCFlags,0x00010001,0x00000010
HKR,,CameraPostProcessingPluginCLSID,0x00000004
HKR,,CameraDeviceMftClsid,0x00000004
HKR,,CameraDeviceMftClsidChain,0x00000004
HKR,,CustomCaptureSourceClsid,0x00000004

[USBVideo.NT.Services]
AddService = usbvideo,0x00000002,USBVideo.ServiceInstall, USBVideo_EventLog_Inst

[USBVideo.ServiceInstall]
DisplayName   = %USBVideo.SvcDesc%
ServiceType   = %SERVICE_KERNEL_DRIVER%
StartType     = %SERVICE_DEMAND_START%
ErrorControl  = %SERVICE_ERROR_NORMAL%
ServiceBinary = %10%\System32\Drivers\usbvideo.sys

[USBVideo_EventLog_Inst]
AddReg=USBVideo_ETW.AddReg

[USBVideo_ETW.AddReg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-USBVideo/Analytic","OwningPublisher",0x0,"{da1d1dbd-3186-4fa2-bc2d-075efd9e43e2}"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-USBVideo/Analytic","Enabled",0x00010001,1
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-USBVideo/Analytic","Isolation",0x00010001,1
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-USBVideo/Analytic","ChannelAccess",0x0,"O:BAG:SYD:(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x3;;;BO)(A;;0x5;;;SO)(A;;0x1;;;IU)(A;;0x3;;;SU)(A;;0x1;;;S-1-5-3)(A;;0x2;;;S-1-5-33)(A;;0x1;;;S-1-5-32-573)"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-USBVideo/Analytic","Type",0x00010001,2
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{da1d1dbd-3186-4fa2-bc2d-075efd9e43e2}",,0x0,"Microsoft-Windows-USBVideo"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{da1d1dbd-3186-4fa2-bc2d-075efd9e43e2}","ResourceFileName",0x00020000,"%%SystemRoot%%\system32\drivers\usbvideo.sys"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{da1d1dbd-3186-4fa2-bc2d-075efd9e43e2}","MessageFileName",0x00020000,"%%SystemRoot%%\system32\drivers\usbvideo.sys"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{da1d1dbd-3186-4fa2-bc2d-075efd9e43e2}\ChannelReferences\0",,0x0,"Microsoft-Windows-USBVideo/Analytic"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{da1d1dbd-3186-4fa2-bc2d-075efd9e43e2}\ChannelReferences\0","Id",0x00010001,16
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{da1d1dbd-3186-4fa2-bc2d-075efd9e43e2}\ChannelReferences\0","Flags",0x00010001,0
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{da1d1dbd-3186-4fa2-bc2d-075efd9e43e2}\ChannelReferences",Count,0x00010001,1

; Install the UMDF service that represents the KMDF driver's (secure) companion
; For this device, associate 'WdmCompanionFilter' with the companion service 'DriverCompanion'
[USBVideo.NT.Wdf]
KmdfService=WdmCompanionFilter, WdmCompanionFilter_KmdfSvcSect
UmdfService = SecureUSBVideo, SecureUSBVideo_UmdfSvcSect
CompanionConfiguration = WdmCompanionFilter, WdmCompanionFilter_CompanionSect

[WdmCompanionFilter_CompanionSect]
CompanionServices = SecureUSBVideo

[WdmCompanionFilter_KmdfSvcSect]
KmdfLibraryVersion = %KMDF_VERSION%

[SecureUSBVideo_UmdfSvcSect]
UmdfLibraryVersion = %UMDF_VERSION%
ServiceBinary = %12%\UMDF\SecureUSBVideo.dll
ServiceType = SecureCompanion ; allowed options are: Driver (default), SecureCompanion, NonSecureCompanion
TrustletIdentity = 4096          ; required if it is SecureCompanion


[USBVideo.CopyList]
usbvideo.sys,,,0x0100


[SecureUSBVideo.CopyList]
SecureUSBVideo.dll,,,0x0100


[Strings]

;-----------------
; Non-Localizable
;-----------------
ProxyVCap.CLSID="{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
KSCATEGORY_RENDER="{65E8773E-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_CAPTURE="{65E8773D-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_VIDEO="{6994AD05-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_RENDER_EXT="{CC7BFB41-F175-11D1-A392-00E0291F3959}"
KSCATEGORY_VIDEO_CAMERA="{E5323777-F976-4f5b-9B55-B94699C46E44}"
SERVICE_KERNEL_DRIVER=1
SERVICE_DEMAND_START=3
SERVICE_ERROR_NORMAL=1

KMDF_VERSION=1.23.0
UMDF_VERSION=2.23.0

MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories"
GUID.VideoStreaming="{DFF229E1-F70F-11D0-B917-00A0C9223196}"
GUID.VideoInputTerminal="{DFF229E2-F70F-11D0-B917-00A0C9223196}"
GUID.VideoOutputTerminal="{DFF229E3-F70F-11D0-B917-00A0C9223196}"
GUID.VideoSelector="{DFF229E4-F70F-11D0-B917-00A0C9223196}"
GUID.VideoProcessing="{DFF229E5-F70F-11D0-B917-00A0C9223196}"
GUID.VideoCameraTerminal="{DFF229E6-F70F-11D0-B917-00A0C9223196}"
GUID.VideoInputMTT="{DFF229E7-F70F-11D0-B917-00A0C9223196}"
GUID.VideoOutputMTT="{DFF229E8-F70F-11D0-B917-00A0C9223196}"

;------------
;Localizable
;------------
Msft="Microsoft"
USBVideo.DeviceDesc="USB Video Device"
USBVideoStreaming.DeviceDesc="USB Video Device (VS Interface)"
USBVideo.SvcDesc="USB Video Device (WDM)"

Node.VideoStreaming="Video Streaming"
Node.VideoInputTerminal="Video Input Terminal"
Node.VideoOutputTerminal="Video Output Terminal"
Node.VideoSelector="Video Selector"
Node.VideoProcessing="Video Processing"
Node.VideoCameraTerminal="Video Camera Terminal"
Node.VideoInputMTT="Video Input Media Transport Terminal"
Node.VideoOutputMTT="Video Output Media Transport Terminal"

;
; PlugIns Descriptions
;
PlugIn_IAMExtDevice="WDM Streaming IAMExtDevice Interface Handler"
PlugIn_IAMExtTransport="WDM Streaming IAMExtTransport Interface Handler"
PlugIn_IAMTimecodeReader="WDM Streaming IAMTimecodeReader Interface Handler"
Plugin_IExtTransport="WDM Streaming IExtTransport Interface Handler"
PropPage_DVcrControl="DVcrControl Property Page"
Plugin_IKsTopologyInfo="WDM Streaming IKsTopologyInfo Interface Handler"
Plugin_ICameraControl="WDM Streaming ICameraControl Interface Handler"
Plugin_IVideoProcAmp="WDM Streaming IVideoProcAmp Interface Handler"
Plugin_ISelector="WDM Streaming ISelector Interface Handler"
Plugin_PropertyObject="Node Interface Aggregation Handler"
