INF DDInstall.Interfaces 섹션
각 모델별 DDInstall_. 인터페이스 섹션에는 특정 디바이스/드라이버가 지원하는 디바이스 인터페이스 수에 따라 하나 이상의 AddInterface 지시문이 있을 수 있습니다.
[install-section-name.Interfaces] |
[install-section-name.nt.Interfaces] |
[install-section-name.ntx86.Interfaces] |
[install-section-name.ntia64.Interfaces] | (Windows XP and later versions of Windows)
[install-section-name.ntamd64.Interfaces] | (Windows XP and later versions of Windows)
[install-section-name.ntarm.Interfaces] | (Windows 8 and later versions of Windows)
[install-section-name.ntarm64.Interfaces] (Windows 10 version 1709 and later versions of Windows)
AddInterface={InterfaceClassGUID} [, [reference string] [,[add-interface-section] [,flags]]] ...
[Include=filename.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...]
시스템의 미리 정의된 커널 스트리밍 인터페이스와 같은 기존 디바이스 인터페이스를 지원하려면 이 섹션에서 적절한 InterfaceClassGUID 값을 지정합니다.
새 디바이스 인터페이스 클래스를 내보내는 클래스 드라이버와 같은 구성 요소를 설치하려면 INF에 INF InterfaceInstall32 섹션도 있어야 합니다.
디바이스 인터페이스에 대한 자세한 내용은 디바이스 인터페이스 클래스를 참조하세요.
항목
AddInterface={InterfaceClassGUID} [,[reference string] [,[add-interface-section] [,,flags_]]]...
이 지시문은 드라이버가 상위 수준 구성 요소로 내보내는 지정된 InterfaceClassGUID 값으로 지정된 디바이스 인터페이스 클래스에 대한 지원을 설치합니다. 일반적으로 INF 파일의 다른 위치에서 INF-writer 정의 추가 인터페이스 섹션 도 참조합니다. 이 지시문을 지정하는 방법에 대한 자세한 내용은 INF AddInterface 지시문을 참조하세요.
Include=,filename. inf[,filename2.inf]...
이 선택적 항목은 이 디바이스/드라이버에서 지원하는 인터페이스 클래스를 등록하는 데 필요한 섹션을 포함하는 하나 이상의 추가 시스템 제공 INF 파일을 지정합니다. 이 항목을 지정하는 경우 일반적으로 필요 항목도 마찬가지입니다.
Needs=,inf-section-name[,inf-section-name]...
이 선택적 항목은 이 디바이스를 설치하는 동안 처리해야 하는 특정 섹션을 지정합니다. 일반적으로 이러한 명명된 섹션은 ,DDInstall_. Include 항목에 나열된 시스템 제공 INF 파일 내의 인터페이스 섹션입니다. 그러나 이러한 ,DDInstall_ 내에서 참조되는 모든 섹션일 수 있습니다. 포함된 INF의 인터페이스 섹션입니다.
설명
DDInstall 섹션 이름은 INF 파일의 제조업체별 모델 섹션에 있는 디바이스/모델별 항목에서 참조해야 합니다. 플랫폼 간 INF 파일에서 시스템 정의 .nt, .ntx86, .ntia64, .ntamd64, .ntarm 및 .ntarm64 확장을 사용하는 방법에 대한 자세한 내용은 여러 플랫폼 및 운영 체제용 INF 파일 만들기를 참조하세요.
지정된 {,InterfaceClassGUID_} 이(가) 아직 설치되어 있지 않으면 운영 체제의 설치 코드에서 해당 디바이스 인터페이스 클래스를 시스템에 설치합니다. INF 파일이 하나 이상의 새 디바이스 인터페이스 클래스를 설치하는 경우 새 클래스의 GUID를 식별하는 [InterfaceInstall32] 섹션이 있을 수도 있습니다.
GUID를 만드는 방법에 대한 자세한 내용은 드라이버에서 GUID 사용을 참조하세요. 시스템 정의 인터페이스 클래스 GUID의 경우 커널 스트리밍 인터페이스 클래스 GUIDS에 대한 Ks.h 와 같은 적절한 시스템 제공 헤더를 참조하세요.
드라이버가 로드되면 디바이스 인터페이스에 대한 전체 SymbolicLinkName을 가져오기 위해 AddInterface 지시문에서 사용되는 동일한 {,InterfaceClassGUID_} 및 참조 문자열을 사용하여 IoRegisterDeviceInterface를 호출해야 합니다. INF의 ,DDInstall_ 각 디바이스 인터페이스에 대해 이 작업을 수행해야 합니다. 드라이버가 기본 디바이스에서 지원하는 인터페이스 섹션입니다. 각 SymbolicLinkName에 대해 드라이버는 IoSetDeviceInterfaceState 를 호출하여 디바이스 인터페이스를 사용하도록 설정해야 합니다. 일반적으로 PnP 함수 또는 필터 드라이버는 AddDevice 루틴에서 이러한 호출을 수행합니다.
예제
이 예제에서는 DDInstall을 보여줍니다. Nt. 시스템에서 제공하는 WDM 오디오 디바이스/드라이버에 대한 INF 파일의 인터페이스 섹션입니다.
;
; following AddInterface= are all single lines (without
; backslash line continuators) in the system-supplied INF file
;
[WDMPNPB003_Device.NT.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,\
WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,\
WDM_SB16.Interface.Topology
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_UART%,\
WDM_SB16.Interface.UART
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_FMSynth%,\
WDM_SB16.Interface.FMSynth
; ...
[Strings] ; only immediately preceding %strkey% tokens shown here
%KSCATEGORY_AUDIO% = "{6994ad04-93ef-11d0-a3cc-00a0c9223196}"
KSNAME_Wave = "Wave"
KSNAME_UART = "UART"
KSNAME_FMSynth = "FMSynth"
KSNAME_Topology = "Topology"
; ...