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 포함)

추가 정보

DEVPROP_TYPE_STRING