Partilhar via


Função WdfPdoInitAddHardwareID (wdfpdo.h)

[Aplica-se somente ao KMDF]

O método WdfPdoInitAddHardwareID adiciona uma ID de hardware à lista de IDs de hardware para um dispositivo filho.

Sintaxe

NTSTATUS WdfPdoInitAddHardwareID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING HardwareID
);

Parâmetros

[in] DeviceInit

Um ponteiro para uma estrutura WDFDEVICE_INIT.

[in] HardwareID

Um ponteiro para uma estrutura UNICODE_STRING que contém uma cadeia de caracteres de ID de hardware. O driver pode alocar o buffer da cadeia de caracteres do pool de páginas.

Valor de retorno

Se a operação for bem-sucedida, o método retornará STATUS_SUCCESS. Os valores de retorno adicionais incluem:

Código de retorno Descrição
STATUS_INVALID_DEVICE_REQUEST
O driver está inicializando um FDO em vez de um PDO.
STATUS_INSUFFICIENT_RESOURCES
O driver não pôde alocar espaço para armazenar a cadeia de caracteres de ID de hardware.
 

O método também pode retornar outros valores NTSTATUS .

Observações

O driver pode adicionar uma ou mais IDs de hardware para um dispositivo. Eles devem ser adicionados na ordem da melhor partida para a pior partida. A estrutura entregará as IDs ao gerenciador PnP na ordem em que foram adicionadas. Para obter mais informações sobre IDs de hardware, consulte cadeias de caracteres de identificação do dispositivo e Como a instalação seleciona drivers.

O driver deve chamar WdfPdoInitAddHardwareID antes de chamar WdfDeviceCreate. Para obter mais informações sobre como chamar WdfDeviceCreate, consulte Criando um objeto de dispositivo framework.

Exemplos

O exemplo de código a seguir relata uma ID de hardware usada pelo KbFiltr driver de exemplo.

#define  KBFILTR_DEVICE_ID L"{A65C87F9-BE02-4ed9-92EC-012D416169FA}\\KeyboardFilter\0"
DECLARE_CONST_UNICODE_STRING(hardwareId, KBFILTR_DEVICE_ID);

status = WdfPdoInitAddHardwareID(
                                 pDeviceInit,
                                 &hardwareId
                                 );

Requisitos

Requisito Valor
da Plataforma de Destino Universal
versão mínima do KMDF 1.0
cabeçalho wdfpdo.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (consulte o Controle de Versão da Biblioteca da Estrutura.)
IRQL PASSIVE_LEVEL
regras de conformidade de DDI ChildDeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf),InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(km, KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI (kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)

Consulte também

WdfPdoInitAddCompatibleID

WdfPdoInitAssignDeviceID

WdfPdoInitAssignInstanceID