Partilhar via


IRP_MN_QUERY_DEVICE_TEXT

O gerenciador PnP usa esse IRP para obter a descrição ou as informações de localização de um dispositivo.

Os motoristas de ônibus devem lidar com essa solicitação para seus dispositivos filho se o ônibus der suporte a essas informações. Os drivers de função e filtro não lidam com esse IRP.

Valor

0x0C

Código principal

IRP_MJ_PNP

Quando enviado

O gerenciador PnP envia dois desses IRPs quando um dispositivo é enumerado: um para consultar a descrição do dispositivo e outro para consultar as informações de localização.

O gerenciador de PnP envia esse IRP no PASSIVE_LEVEL IRQL em um contexto de thread arbitrário.

Parâmetros de Entrada

O membro Parameters.QueryDeviceText.DeviceTextType da estrutura IO_STACK_LOCATION é um valor DEVICE_TEXT_TYPE que especifica qual cadeia de caracteres é solicitada. Os valores possíveis para DEVICE_TEXT_TYPE incluem DeviceTextDescription e DeviceTextLocationInformation.

Parameters.QueryDeviceText.LocaleId é um LCID que especifica a localidade do texto solicitado.

Parâmetros de saída

Retornado no bloco status de E/S.

Bloco de Status de E/S

Um driver define Irp-IoStatus.Status> como STATUS_SUCCESS ou como um erro apropriado status.

Em caso de êxito, um motorista de ônibus define Irp-IoStatus.Information> como um ponteiro para um bloco de memória alocado pelo driver que contém um buffer WCHAR com as informações solicitadas. Em um erro, o motorista do ônibus define Irp-IoStatus.Information> como zero.

Operação

Os motoristas de ônibus são fortemente incentivados a retornar descrições de dispositivo para seus dispositivos filho. Essa cadeia de caracteres será exibida na janela pop-up Novo Hardware Encontrado se nenhuma correspondência INF for encontrada para o dispositivo.

Os motoristas de ônibus também são incentivados a retornar LocationInformation para seus dispositivos filho, mas essas informações são opcionais. O formato dessa cadeia de caracteres depende do barramento. O Gerenciador de dispositivos exibe essa cadeia de caracteres na guia de propriedades gerais do dispositivo. Os fornecedores devem escolher uma cadeia de caracteres que transmita informações úteis aos usuários e à equipe de suporte. Por exemplo, para PCI, a cadeia de caracteres contém o barramento, o dispositivo e a função . Para Cartão de Computador, a cadeia de caracteres contém o slot.

Se um driver de barramento retornar informações em resposta a esse IRP, ele alocará uma cadeia de caracteres Unicode terminada em NULL da memória paginada. O gerenciador PnP libera a cadeia de caracteres quando ela não é mais necessária.

Se um dispositivo não fornecer informações de descrição ou localização, o driver de barramento pai do dispositivo concluirá o IRP (IoCompleteRequest) sem modificar Irp-IoStatus.Status> ou Irp-IoStatus.Information>.

Os drivers de função e filtro não lidam com esse IRP; eles passam para o próximo driver inferior sem alterações em Irp-IoStatus>.

Os drivers para barramentos que dão suporte a cadeias de caracteres de texto diferentes para localidades diferentes devem ser capazes de lidar com uma solicitação de um idioma que não é explicitamente compatível com o dispositivo. Nessa situação, o motorista do ônibus deve retornar a correspondência mais próxima para a localidade ou deve fazer fallback e retornar alguma cadeia de caracteres de localidade apropriada com suporte.

Consulte Plug and Play para obter as regras gerais para lidar com Plug and Play IRPs menores.

Enviando este IRP

Reservado para uso do sistema. Os drivers não devem enviar este IRP.

Requisitos

parâmetro

Wdm.h (inclua Wdm.h, Ntddk.h ou Ntifs.h)