Función PcGetDeviceProperty (portcls.h)
La función PcGetDeviceProperty devuelve la propiedad de dispositivo solicitada del registro.
Sintaxis
PORTCLASSAPI NTSTATUS PcGetDeviceProperty(
[in] PVOID DeviceObject,
[in] DEVICE_REGISTRY_PROPERTY DeviceProperty,
[in] ULONG BufferLength,
[out] PVOID PropertyBuffer,
[out] PULONG ResultLength
);
Parámetros
[in] DeviceObject
Puntero al objeto de dispositivo para el dispositivo. Este parámetro apunta a una estructura del sistema DEVICE_OBJECT , pero se convierte al tipo PVOID.
[in] DeviceProperty
Especifica la propiedad de dispositivo Plug and Play que se solicita. Para obtener una lista de los valores del especificador de propiedades, vea la siguiente sección Comentarios.
[in] BufferLength
Especifica la longitud en bytes del búfer que va a recibir los datos de propiedad solicitados.
[out] PropertyBuffer
Puntero a un búfer asignado por el autor de la llamada en el que el método es escribir los datos de propiedad solicitados. El búfer debe ser lo suficientemente grande como para contener el número de bytes especificados en BufferLength.
[out] ResultLength
Puntero a una variable asignada por el autor de la llamada en la que el método genera un recuento que especifica el número de bytes escritos realmente en el búfer. Si el tamaño del búfer especificado en BufferLength es demasiado pequeño para contener los datos de propiedad, el método genera el número de bytes necesarios para los datos de propiedad y devuelve STATUS_BUFFER_TOO_SMALL.
Valor devuelto
PcGetDeviceProperty devuelve STATUS_SUCCESS si la llamada se realizó correctamente. De lo contrario, devuelve un código de error adecuado. La rutina devuelve STATUS_BUFFER_TOO_SMALL si el tamaño del búfer especificado en BufferLength no era lo suficientemente grande como para contener los datos de propiedad solicitados.
Comentarios
Establezca el parámetro DeviceProperty en uno de los siguientes valores de enumeración DEVICE_REGISTRY_PROPERTY del archivo de encabezado wdm.h:
DevicePropertyAddress
DevicePropertyBootConfiguration
DevicePropertyBootConfigurationTranslated
DevicePropertyBusNumber
DevicePropertyBusTypeGuid
DevicePropertyClassGuid
DevicePropertyClassName
DevicePropertyCompatibleIDs
DevicePropertyDetachability
DevicePropertyDeviceDescription
DevicePropertyDriverKeyName
DevicePropertyEnumeratorName
DevicePropertyFriendlyName
DevicePropertyHardwareID
DevicePropertyInstallState
DevicePropertyLegacyBusType
DevicePropertyLocationInformation
DevicePropertyManufacturer
DevicePropertyPhysicalDeviceObjectName
DevicePropertyUINumber
Para obtener una descripción de los valores de DevicePropertyXxx anteriores, consulte IoGetDeviceProperty.
Es posible que sea necesario realizar dos llamadas a PcGetDeviceProperty para determinar el bufferLength necesario. En la primera llamada, BufferLength puede ser cero o una estimación aproximada del tamaño de búfer necesario. Si el estado devuelto es STATUS_BUFFER_TOO_SMALL, esto significa que el autor de la llamada debe asignar un búfer del tamaño que se ha generado a través de ResultLength y llamar a PcGetDeviceProperty de nuevo.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | El controlador del sistema PortCls implementa la función PcGetDeviceProperty en Microsoft Windows 98/Me y en los sistemas operativos Windows 2000 y versiones posteriores. |
Plataforma de destino | Universal |
Encabezado | portcls.h (incluya Portcls.h) |
Library | Portcls.lib |
IRQL | PASSIVE_LEVEL |