INF 파일에서 리플렉터 지정
Windows 11 커널 모드 디바이스 스택에 리플렉터(WUDFRd.sys)를 추가하는 권장 방법은 UMDF 드라이버의 INF 파일에서 시스템 제공 WudfRd.inf 파일을 참조하는 것입니다.
참고
WudfRd.inf는 Windows 11 이상에만 포함됩니다.
Windows 10 및 이전 버전에서 리플렉터(WUDFRd.sys)를 추가하려면 UMDF 드라이버의 INF 파일에 INF DDInstall.Services 섹션에 AddService 지시문과 service-install-section이 포함되어야 합니다. 이 메서드는 여전히 Windows 11 이상에서 작동하지만 권장되지 않습니다.
두 방법 모두에서 리플렉터 는 사용자 모드 스택의 구성에 따라 상위 필터, 하위 필터 또는 디바이스에 대한 서비스일 수 있습니다.
WudfRd.inf 참조(Windows 11 이상)
echoum.inx에서 이 기술을 사용하는 샘플 INF를 찾을 수 있습니다. 또는 다음 코드 조각 중 하나를 사용합니다.
WudfRd 서비스를 디바이스의 함수 드라이버로 설치하려면 다음을 수행합니다.
[DDInstall]
Include=WUDFRD.inf
Needs=WUDFRD.NT
; also include any existing DDInstall directives
[DDInstall.HW]
Include=WUDFRD.inf
Needs=WUDFRD.NT.HW
; also include any existing DDInstall.HW directives
[DDInstall.Services]
Include=WUDFRD.inf
Needs=WUDFRD.NT.Services
; also include any existing any DDInstall.Services directives
WudfRd 서비스를 상위 필터 드라이버로 설치하려면 다음을 수행합니다.
[DDInstall]
Include=WUDFRD.inf
Needs=WUDFRD_UpperFilter.NT
; also include any existing DDInstall directives
[DDInstall.HW]
Include=WUDFRD.inf
Needs=WUDFRD_UpperFilter.NT.HW
; also include any existing DDInstall.HW directives
[DDInstall.Services]
Include=WUDFRD.inf
Needs=WUDFRD_UpperFilter.NT.Services
; also include any existing any DDInstall.Services directives
[DDInstall.Filters]
Include=WUDFRD.inf
Needs=WUDFRD_UpperFilter.NT.Filters
WudfRd 서비스를 하위 필터 드라이버로 설치하려면 다음을 수행합니다.
[DDInstall]
Include=WUDFRD.inf
Needs=WUDFRD_LowerFilter.NT
; also include any existing DDInstall directives
[DDInstall.HW]
Include=WUDFRD.inf
Needs=WUDFRD_LowerFilter.NT.HW
; also include any existing DDInstall.HW directives
[DDInstall.Services]
Include=WUDFRD.inf
Needs=WUDFRD_LowerFilter.NT.Services
; also include any existing any DDInstall.Services directives
[DDInstall.Filters]
Include=WUDFRD.inf
Needs=WUDFRD_LowerFilter.NT.Filters
AddService 지시문 사용(Windows 10 이하)
다음 코드 예제에서는 UMDF 함수 드라이버에 대한 INF 파일이 리플렉터를 추가하는 방법을 보여 줍니다.
[Skeleton_Install.Services]
AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall
이 예제에서 드라이버는 리플렉터를 커널 모드 디바이스 스택의 함수 드라이버로 할당하기 위해 0x2(SPSVCINST_ASSOCSERVICE) 플래그(위의 flags 매개 변수에 ORed)를 지정합니다.
또한 AddService 지시문은 서비스에 대한 기존 구성을 덮어쓰지 않도록 0x000001f8 플래그를 설정합니다. 이러한 플래그에 대한 자세한 내용은 AddService 지시문의 flags 매개 변수를 참조하세요.
WUDFVhidmini 샘플에서 가져온 다음 코드 예제는 UMDF 필터 드라이버에 대한 AddService 지시문을 보여 줍니다.
[hidumdf.win8.NT.Services]
AddService=WUDFRd,0x000001f8,WUDFRD_ServiceInstall
AddService=mshidumdf, 0x000001fa, mshidumdf.AddService
[WudfVhidmini_AddReg]
HKR,,"LowerFilters",0x00010008,"WUDFRd" ; FLG_ADDREG_TYPE_MULTI_SZ | FLG_ADDREG_APPEND
이 경우 mshidumdf 서비스는 디바이스 스택에 대한 FDO와 연결되고 리플렉터의 필터는 더 낮습니다.
service-install-section 제공
AddService 지시문은 다음 코드 예제와 유사한 service-install-section을 참조합니다. ServiceType 항목은 INF가 하나 이상의 디바이스에 대한 지원을 설치한다는 것을 나타내는 1 또는 0x00000001 지정합니다. StartType 항목은 드라이버를 시작할 시기를 지정합니다. ErrorControl 항목은 드라이버에서 제공하는 오류 제어 수준을 지정합니다. ServiceBinary 항목은 서비스의 이진 파일(리플렉터)에 대한 경로를 지정합니다.
[WUDFRD_ServiceInstall]
DisplayName = "Windows Driver Frameworks - User-mode Driver Framework Reflector"
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\WUDFRd.sys