Функция 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 |