Compartilhar via


Função PcGetDeviceProperty (portcls.h)

A função PcGetDeviceProperty retorna a propriedade de dispositivo solicitada do registro.

Sintaxe

PORTCLASSAPI NTSTATUS PcGetDeviceProperty(
  [in]  PVOID                    DeviceObject,
  [in]  DEVICE_REGISTRY_PROPERTY DeviceProperty,
  [in]  ULONG                    BufferLength,
  [out] PVOID                    PropertyBuffer,
  [out] PULONG                   ResultLength
);

Parâmetros

[in] DeviceObject

Ponteiro para o objeto do dispositivo para o dispositivo. Esse parâmetro aponta para uma estrutura do sistema DEVICE_OBJECT , mas é convertido no tipo PVOID.

[in] DeviceProperty

Especifica a propriedade do dispositivo Plug and Play solicitada. Para obter uma lista de valores do especificador de propriedade, consulte a seção Comentários a seguir.

[in] BufferLength

Especifica o comprimento em bytes do buffer que deve receber os dados de propriedade solicitados.

[out] PropertyBuffer

Ponteiro para um buffer alocado pelo chamador no qual o método deve gravar os dados de propriedade solicitados. O buffer deve ser grande o suficiente para conter o número de bytes especificados em BufferLength.

[out] ResultLength

Ponteiro para uma variável alocada pelo chamador na qual o método gera uma contagem especificando o número de bytes realmente gravados no buffer. Se o tamanho do buffer especificado em BufferLength for muito pequeno para armazenar os dados da propriedade, o método gerará o número de bytes necessários para os dados da propriedade e retornará STATUS_BUFFER_TOO_SMALL.

Retornar valor

PcGetDeviceProperty retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida. Caso contrário, ele retornará um código de erro apropriado. A rotina retornará STATUS_BUFFER_TOO_SMALL se o tamanho do buffer especificado em BufferLength não for grande o suficiente para conter os dados de propriedade solicitados.

Comentários

Defina o parâmetro DeviceProperty como um dos seguintes valores de enumeração DEVICE_REGISTRY_PROPERTY do arquivo de cabeçalho wdm.h:

DevicePropertyAddress

DevicePropertyBootConfiguration

DevicePropertyBootConfigurationTranslated

DevicePropertyBusNumber

DevicePropertyBusTypeGuid

DevicePropertyClassGuid

DevicePropertyClassName

DevicePropertyCompatibleIDs

DevicePropertyDetachability

DevicePropertyDeviceDescription

DevicePropertyDriverKeyName

DevicePropertyEnumeratorName

DevicePropertyFriendlyName

DevicePropertyHardwareID

DevicePropertyInstallState

DevicePropertyLegacyBusType

DevicePropertyLocationInformation

DevicePropertyManufacturer

DevicePropertyPhysicalDeviceObjectName

DevicePropertyUINumber

Para obter uma descrição dos valores anteriores de DevicePropertyXxx , consulte IoGetDeviceProperty.

Duas chamadas para PcGetDeviceProperty podem ser necessárias para determinar o BufferLength necessário. Na primeira chamada, BufferLength pode ser zero ou uma estimativa de melhor estimativa do tamanho do buffer necessário. Se a status de retorno for STATUS_BUFFER_TOO_SMALL, isso significa que o chamador deve alocar um buffer do tamanho que foi gerado por meio de ResultLength e chamar PcGetDeviceProperty novamente.

Requisitos

Requisito Valor
Cliente mínimo com suporte O driver do sistema PortCls implementa a função PcGetDeviceProperty no Microsoft Windows 98/Me e nos sistemas operacionais Windows 2000 e posteriores.
Plataforma de Destino Universal
Cabeçalho portcls.h (inclua Portcls.h)
Biblioteca Portcls.lib
IRQL PASSIVE_LEVEL

Confira também

DEVICE_OBJECT

IoGetDeviceProperty