Поделиться через


Функция PcGetDeviceProperty (portcls.h)

Функция PcGetDeviceProperty возвращает запрошенное свойство устройства из реестра.

Синтаксис

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

Параметры

[in] DeviceObject

Указатель на объект устройства. Этот параметр указывает на DEVICE_OBJECT системную структуру, но приводится к типу PVOID.

[in] DeviceProperty

Указывает запрашиваемое свойство устройства Plug and Play. Список значений описателя свойств см. в следующем разделе Примечания.

[in] BufferLength

Задает длину буфера, который получает запрошенные данные свойства в байтах.

[out] PropertyBuffer

Указатель на буфер, выделенный вызывающим объектом, в который метод записывает запрошенные данные свойства. Буфер должен быть достаточно большим, чтобы содержать количество байтов, указанное в BufferLength.

[out] ResultLength

Указатель на переменную, выделенную вызывающим объектом, в которую метод выводит число байтов, записанных в буфер. Если размер буфера, указанный в BufferLength , слишком мал для хранения данных свойства, метод вместо этого выводит количество байтов, необходимых для данных свойства, и возвращает STATUS_BUFFER_TOO_SMALL.

Возвращаемое значение

PcGetDeviceProperty возвращает STATUS_SUCCESS, если вызов был выполнен успешно. В противном случае возвращается соответствующий код ошибки. Подпрограмма возвращает STATUS_BUFFER_TOO_SMALL, если размер буфера, указанный в BufferLength, не был достаточным для хранения запрошенных данных свойства.

Комментарии

Задайте для параметра DeviceProperty одно из следующих DEVICE_REGISTRY_PROPERTY значений перечисления из файла заголовка wdm.h:

DevicePropertyAddress

DevicePropertyBootConfiguration

DevicePropertyBootConfigurationTranslated

DevicePropertyBusNumber

DevicePropertyBusTypeGuid

DevicePropertyClassGuid

DevicePropertyClassName

DevicePropertyCompatibleIDs

DevicePropertyDetachability

DevicePropertyDeviceDescription

DevicePropertyDriverKeyName

DevicePropertyEnumeratorName

DevicePropertyFriendlyName

DevicePropertyHardwareID

DevicePropertyInstallState

DevicePropertyLegacyBusType

DevicePropertyLocationInformation

DevicePropertyManufacturer

DevicePropertyPhysicalDeviceObjectName

DevicePropertyUINumber

Описание предыдущих значений DevicePropertyXxx см. в разделе IoGetDeviceProperty.

Для определения требуемого bufferLength может потребоваться два вызова PcGetDeviceProperty. В первом вызове BufferLength может быть равен нулю или оптимальной оценке требуемого размера буфера. Если состояние возврата STATUS_BUFFER_TOO_SMALL, это означает, что вызывающий объект должен выделить буфер размера, который был выведен через ResultLength , и снова вызвать PcGetDeviceProperty .

Требования

Требование Значение
Минимальная версия клиента Системный драйвер PortCls реализует функцию PcGetDeviceProperty в Microsoft Windows 98/Me, а также в операционных системах Windows 2000 и более поздних версий.
Целевая платформа Универсальное
Верхняя часть portcls.h (включая Portcls.h)
Библиотека Portcls.lib
IRQL PASSIVE_LEVEL

См. также раздел

DEVICE_OBJECT

IoGetDeviceProperty