Partilhar via


Função WdfIoTargetAllocAndQueryTargetProperty (wdfiotarget.h)

[Aplica-se somente ao KMDF]

O método WdfIoTargetAllocAndQueryTargetProperty aloca um buffer e recupera uma propriedade de dispositivo especificada para um destino de E/S especificado.

Sintaxe

NTSTATUS WdfIoTargetAllocAndQueryTargetProperty(
  [in]           WDFIOTARGET              IoTarget,
  [in]           DEVICE_REGISTRY_PROPERTY DeviceProperty,
  [in]           POOL_TYPE                PoolType,
  [in, optional] PWDF_OBJECT_ATTRIBUTES   PropertyMemoryAttributes,
  [out]          WDFMEMORY                *PropertyMemory
);

Parâmetros

[in] IoTarget

Um identificador para um objeto de destino de E/S local ou remoto obtido de uma chamada anterior para WdfDeviceGetIoTarget ou WdfIoTargetCreate ou de um método que um destino de E/S especializado fornece.

[in] DeviceProperty

Um valor DEVICE_REGISTRY_PROPERTYdigitado que identifica a propriedade do dispositivo a ser recuperada.

[in] PoolType

Um valor POOL_TYPEdigitado que especifica o tipo de memória a ser alocada.

[in, optional] PropertyMemoryAttributes

Um ponteiro para uma estrutura de WDF_OBJECT_ATTRIBUTES alocada pelo chamador que descreve atributos de objeto para o objeto de memória que a função alocará. Esse parâmetro é opcional e pode ser WDF_NO_OBJECT_ATTRIBUTES.

[out] PropertyMemory

Um ponteiro para um local do tipo WDFMEMORY que recebe um identificador para um objeto de memória da estrutura.

Valor de retorno

WdfIoTargetAllocAndQueryTargetProperty retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá retornar um dos seguintes valores:

Código de retorno Descrição
STATUS_INVALID_PARAMETER ou STATUS_INVALID_PARAMETER_2
O valor que o parâmetro DeviceProperty especificado era inválido.
STATUS_INVALID_DEVICE_REQUEST
Os drivers do dispositivo ainda não relataram as propriedades do dispositivo.
 

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

Uma verificação de bug ocorre se o driver fornece um identificador de objeto inválido.

Observações

O método WdfIoTargetAllocAndQueryTargetProperty determina a quantidade de memória necessária para manter a propriedade do dispositivo solicitada. Esse método aloca memória suficiente para armazenar os dados e retorna um identificador para um objeto de memória de estrutura que descreve a memória alocada. Para acessar os dados, o driver pode chamar WdfMemoryGetBuffer.

Para obter mais informações sobre WdfIoTargetAllocAndQueryTargetProperty, consulte Obtendo informações sobre umde destino de E/S geral.

Para obter mais informações sobre destinos de E/S, consulte Usando destinos de E/S.

Exemplos

O exemplo de código a seguir chama WdfIoTargetAllocAndQueryTargetProperty para obter a propriedade DevicePropertyFriendlyName. Depois que wdfIoTargetAllocAndQueryTargetProperty retorna, o driver pode chamar WdfMemoryGetBuffer para obter um ponteiro para o buffer que contém a cadeia de caracteres de nome.

WDFMEMORY  targetName;
NTSTATUS  status;

status = WdfIoTargetAllocAndQueryTargetProperty(
                                                Target,
                                                DevicePropertyFriendlyName,
                                                NonPagedPool,
                                                WDF_NO_OBJECT_ATTRIBUTES,
                                                &targetName
                                                );

Requisitos

Requisito Valor
da Plataforma de Destino Universal
versão mínima do KMDF 1.0
cabeçalho wdfiotarget.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 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte também

DEVICE_REGISTRY_PROPERTY

POOL_TYPE

WDF_OBJECT_ATTRIBUTES

WdfDeviceAllocAndQueryProperty

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetQueryTargetProperty

WdfMemoryGetBuffer