다음을 통해 공유


PGET_LOCATION_STRING 콜백 함수(ntddk.h)

PnpGetLocationString 루틴은 디바이스 SPDRP_LOCATION_PATHS 속성의 디바이스별 부분을 제공합니다.

구문

PGET_LOCATION_STRING PgetLocationString;

NTSTATUS PgetLocationString(
  [in, out] PVOID Context,
  [out]     PZZWSTR *LocationStrings
)
{...}

매개 변수

[in, out] Context

인터페이스별 컨텍스트 정보에 대한 포인터입니다. 호출자는 PNP_LOCATION_INTERFACE 구조체의 Context 멤버로 전달되는 값을 전달합니다.

[out] LocationStrings

다른 0으로 종료되는 null로 끝나는 유니코드 문자열 시퀀스에 대한 포인터입니다. 각 문자열은 디바이스의 위치 문자열로 사용됩니다. 드라이버는 일반적으로 단일 문자열을 반환합니다.

반환 값

루틴은 작업의 상태 나타내는 NTSTATUS 값을 반환합니다.

설명

PNP_LOCATION_INTERFACE 구조체는 PnpGetLocationString 루틴에 대한 포인터를 제공합니다.

PnpGetLocationString 루틴은 디바이스에 대한 위치 문자열의 디바이스별 부분을 제공합니다. PnP(플러그 앤 플레이) 관리자는 디바이스의 드라이버, 디바이스의 버스 및 부모 버스를 쿼리하고 제공된 문자열을 함께 연결하여 디바이스의 위치 문자열을 어셈블합니다.

루틴은 버스에 상대적인 디바이스에 고유한 문자열을 반환해야 합니다. 문자열은 모든 버전의 운영 체제에서 디바이스에 대해 동일해야 합니다. 이 용도로 문자열을 선택한 후에는 문자열을 변경하지 않아야 합니다.

규칙에 따라 위치 문자열은 ServiceName(BusSpecificLocation) 형식을 사용합니다. 예를 들어 PCI 디바이스는 PCI(XXYY)를 사용합니다. 여기서 XX 는 디바이스 번호이고 YY 는 함수 번호입니다.

PnpGetLocationString 루틴은 ExAllocatePoolWithTag와 같은 루틴을 호출하여 위치 문자열에 대한 메모리를 할당합니다. 호출자는 위치 문자열이 더 이상 필요하지 않을 때 LocationStrings가 가리키는 메모리를 해제하기 위해 ExFreePool 루틴을 호출합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Server 2003부터 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 ntddk.h(Ntddk.h, Ntifs.h 포함)
IRQL <= PASSIVE_LEVEL

추가 정보

ExAllocatePoolWithTag

ExFreePool

PNP_LOCATION_INTERFACE