DEVPROP_TYPE_STRING_INDIRECT
DEVPROP_TYPE_STRING_INDIRECT 식별자는 간접 문자열 참조를 포함하는 NULL로 종료된 유니코드 문자열의 기본 데이터 형식 식별자를 나타냅니다.
설명
간접 문자열 참조는 실제 문자열을 포함하는 문자열 리소스를 설명합니다. 간접 문자열 참조는 다음 형식 중 하나로 나타날 수 있습니다.
@[path\] FileName,-ResourceID
Windows는 경로 및 FileName 항목으로 지정된 모듈에서 문자열을 추출하고, 문자열의 리소스 식별자는 ResourceID 항목(필수 빼기 기호 제외)에서 제공됩니다. 문자열 리소스는 호출자의 기본 설정 UI 언어 중 하나와 가장 일치하는 모듈 리소스 섹션에서 로드됩니다.
경로 항목은 선택 사항입니다.
경로 항목을 지정하는 경우 모듈은 시스템 정의 검색 경로에 있는 디렉터리에 있어야 합니다.
@
InfName,%strkey%
Windows는 InfName 항목에서 이름이 제공된 %SystemRoot%\inf 디렉터리에 있는 INF 파일의 INF 문자열 섹션에서 문자열을 추출합니다.
strkey 토큰 식별자는 호출자의 기본 설정 UI 언어 중 하나와 가장 일치하는 문자열 섹션의 줄 키와 일치해야 합니다. 언어별 문자열 섹션이 없는 경우 Windows는 기본 문자열 섹션을 사용합니다.
DEVPROP_TYPE_STRING_INDIRECT 속성 데이터 형식 한정자와 결합할 수 없습니다.
이 형식의 속성 설정
기본 데이터 형식이 DEVPROP_TYPE_STRING_INDIRECT 속성을 설정하려면 해당 SetupDiSetXxx 속성 함수를 호출하고 함수 입력 매개 변수를 다음과 같이 설정합니다.
PropertyType 매개 변수를 DEVPROP_TYPE_STRING_INDIRECT 설정합니다.
PropertyBuffer 매개 변수를 간접 문자열 참조를 제공하는 NULL로 끝나는 문자열이 포함된 버퍼에 대한 포인터로 설정합니다.
PropertyBufferSize 매개 변수를 문자열의 크기(바이트)로 설정합니다.
나머지 함수 매개 변수를 적절하게 설정하여 속성을 설정합니다.
이 속성 형식의 값 검색
애플리케이션이 SetupDiGetXxx 속성 함수를 호출하여 이 기본 데이터 형식의 속성 값을 검색하는 경우 Windows는 속성이 참조하는 실제 문자열을 찾으려고 시도합니다. Windows에서 실제 문자열을 검색할 수 있는 경우 호출자에게 실제 문자열을 반환하고 검색된 속성의 기본 데이터 형식을 DEVPROP_TYPE_STRING 식별합니다. 그렇지 않으면 Windows는 간접 문자열 참조를 반환하고 검색된 속성의 기본 데이터 형식을 DEVPROP_TYPE_STRING_INDIRECT 식별합니다.
정적 텍스트 지역화
Windows Vista부터 정적 텍스트 속성 형식을 DEVPROP_TYPE_STRING_INDIRECT 설정하여 PE 이미지의 문자열 또는 리소스 테이블의 리소스를 사용하여 사용자 지정 및 표준 문자열 형식 PnP 정적 텍스트 속성을 지역화할 수 있습니다. 정적 텍스트에 서식을 지정할 수 있는 지역화되지 않은 대체 문자열 데이터를 추가할 수도 있습니다.
PE 이미지의 STRINGTABLE 리소스에 있는 문자열(일반적으로 LoadString에서 수행)은 다음 형식을 사용해야 합니다.
"@"System32\mydll.dll,-21[; 대체" 문자열]"
"@System32\mydll.dll,-21[; %1, %2, ...를 사용하여 대체 문자열 %n[;(Arg1,Arg2,...,ArgN)]]"
PE 이미지의 메시지 테이블 리소스에 있는 문자열(일반적으로 RtlFindMessage에서 수행하며 드라이버에서 더 일반적으로 사용됨)은 다음 형식을 사용해야 합니다.
"@System32\drivers\mydriver.sys,#21[; 대체 문자열]"
"@System32\drivers\mydriver.sys,#21[; %1, %2, ...를 사용하여 대체 문자열 %n[;(Arg1,Arg2,...,ArgN)]]"
"대체 문자열"은 선택 사항이지만 리소스를 찾거나 로드할 수 없는 경우 반환할 수 있으므로 유용합니다. 대체 문자열은 사용자를 가장하지 않는 비대화형 시스템 프로세스에도 반환되므로 사용자에게 지역화된 텍스트를 표시할 수 없습니다.
이 기술을 사용하면 호출자의 로캘과 가장 일치하는 문자열 또는 메시지 테이블 리소스에서 가져온 정적 텍스트를 지역화할 수 있습니다.
Windows는 RtlFormatMessage와 동일한 방식으로 각 리소스 테이블에서 검색될 때 후행 인수의 형식을 문자열(또는 대체 문자열)로 지정합니다.
사용자 지정 및 표준 문자열 형식 PnP 정적 텍스트는 일반적으로 시스템 수준 구성 요소에 대한 시스템 기본 로캘에서 발생하는 설정 작업을 수행하는 구성 요소에서 리소스를 로드하여 속성을 설정할 때 지역화됩니다.
참고: PE 이미지는 리소스 테이블 유형(STRINGTABLE 리소스 또는 메시지 테이블 리소스)을 사용할 수 있습니다.
요구 사항
Version |
Windows Vista 이상 버전의 Windows. |
헤더 |
Devpropdef.h(Devpropdef.h 포함) |