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


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

Перечислитель DEVICE_REGISTRY_PROPERTYтипа, определяющий свойство устройства, которое требуется извлечь.

[in] BufferLength

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

[out] PropertyBuffer

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

[out] ResultLength

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

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

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

Замечания

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

Требования

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

См. также

DEVICE_OBJECT

IoGetDeviceProperty