Compartilhar via


Função WdfPdoInitAssignInstanceID (wdfpdo.h)

[Aplica-se somente ao KMDF]

O método WdfPdoInitAssignInstanceID atualiza a ID da instância de um dispositivo filho.

Sintaxe

NTSTATUS WdfPdoInitAssignInstanceID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING InstanceID
);

Parâmetros

[in] DeviceInit

Um ponteiro para uma estrutura WDFDEVICE_INIT .

[in] InstanceID

Um ponteiro para uma estrutura UNICODE_STRING que contém uma cadeia de caracteres de ID de instância . O driver pode alocar o buffer da cadeia de caracteres do pool paginado.

Retornar valor

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 da instância.
 

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

Comentários

Para obter mais informações sobre IDs de instância, consulte Cadeias de caracteres de identificação do dispositivo.

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

Exemplos

O exemplo de código a seguir converte o número de série de um dispositivo em uma cadeia de caracteres Unicode e registra a cadeia de caracteres Unicode como a ID da instância do dispositivo.

DECLARE_UNICODE_STRING_SIZE(instanceID, INSTANCEID_LENGTH);

status =  RtlIntegerToUnicodeString(
                                    SerialNo,
                                    BASE_DEC,
                                    &instanceID
                                    );
status = WdfPdoInitAssignInstanceID(
                                    pDeviceInit,
                                    &instanceID
                                    );

Requisitos

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

Confira também

RtlIntegerToUnicodeString

WdfPdoInitAddCompatibleID

WdfPdoInitAddHardwareID

WdfPdoInitAssignDeviceID