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 |