다음을 통해 공유


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