IRP_MN_QUERY_DEVICE_TEXT

PnP 관리자는 이 IRP를 사용하여 디바이스의 설명 또는 위치 정보를 가져옵니다.

버스가 이 정보를 지원하는 경우 버스 드라이버는 자식 디바이스에 대해 이 요청을 처리해야 합니다. 함수 및 필터 드라이버는 이 IRP를 처리하지 않습니다.

0x0C

주 코드

IRP_MJ_PNP

보낸 경우

PnP 관리자는 디바이스가 열거될 때 이러한 IRP 중 두 개를 보냅니다. 하나는 디바이스 설명을 쿼리하고 다른 하나는 위치 정보를 쿼리합니다.

PnP 관리자는 임의 스레드 컨텍스트에서 IRQL PASSIVE_LEVEL 이 IRP를 보냅니다.

입력 매개 변수

IO_STACK_LOCATION 구조체의 Parameters.QueryDeviceText.DeviceTextType 멤버는 요청되는 문자열을 지정하는 DEVICE_TEXT_TYPE 값입니다. DEVICE_TEXT_TYPE 가능한 값에는 DeviceTextDescriptionDeviceTextLocationInformation이 포함됩니다.

Parameters.QueryDeviceText.LocaleId 는 요청된 텍스트에 대한 로캘을 지정하는 LCID입니다.

출력 매개 변수

I/O 상태 블록에 반환됩니다.

I/O 상태 블록

드라이버는 Irp-IoStatus.Status>를 STATUS_SUCCESS 또는 적절한 오류 상태 설정합니다.

성공하면 버스 드라이버는 요청된 정보가 포함된 WCHAR 버퍼를 포함하는 드라이버 할당 메모리 블록에 대한 포인터로 Irp-IoStatus.Information>를 설정합니다. 오류 발생 시 버스 드라이버는 Irp-IoStatus.Information>을 0으로 설정합니다.

작업

버스 드라이버는 자식 디바이스에 대한 디바이스 설명을 반환하는 것이 좋습니다. 이 문자열은 디바이스에 대한 INF 일치 항목이 없으면 새 하드웨어 검색 팝업 창에 표시됩니다.

또한 버스 드라이버는 자식 디바이스에 대해 LocationInformation 을 반환하는 것이 좋지만 이 정보는 선택 사항입니다. 이 문자열의 형식은 버스에 따라 달라집니다. 디바이스 관리자는 디바이스의 일반 속성 탭에 이 문자열을 표시합니다. 공급업체는 사용자 및 지원 담당자에게 유용한 정보를 전달하는 문자열을 선택해야 합니다. 예를 들어 PCI의 경우 문자열에는 버스, 디바이스 및 함수가 포함됩니다. PC 카드의 경우 문자열에 슬롯이 포함됩니다.

버스 드라이버가 이 IRP에 대한 응답으로 정보를 반환하는 경우 페이징된 메모리에서 NULL로 종료된 유니코드 문자열을 할당합니다. PnP 관리자는 더 이상 필요하지 않은 문자열을 해제합니다.

디바이스가 설명 또는 위치 정보를 제공하지 않는 경우 디바이스의 부모 버스 드라이버는 Irp-IoStatus.Status 또는 Irp-IoStatus.Information>>를 수정하지 않고 IRP(IoCompleteRequest)를 완료합니다.

함수 및 필터 드라이버는 이 IRP를 처리하지 않습니다. Irp-IoStatus>를 변경하지 않고 다음 하위 드라이버에 전달합니다.

다른 로캘에 대해 서로 다른 텍스트 문자열을 지원하는 버스의 드라이버는 디바이스에서 명시적으로 지원되지 않는 언어에 대한 요청을 처리할 수 있어야 합니다. 이러한 상황에서 버스 드라이버는 로캘에 가장 가까운 일치 항목을 반환하거나 대체하고 지원되는 적절한 로캘 문자열을 반환해야 합니다.

플러그 앤 플레이 사소한 IRP를 처리하기 위한 일반 규칙은 플러그 앤 플레이 참조하세요.

이 IRP 보내기

시스템에서 사용하도록 예약되었습니다. 드라이버는 이 IRP를 보내지 않아야 합니다.

요구 사항

헤더

Wdm.h(Wdm.h, Ntddk.h 또는 Ntifs.h 포함)