Partager via


Fonction PcGetDeviceProperty (portcls.h)

La fonction PcGetDeviceProperty retourne la propriété d’appareil demandée à partir du Registre.

Syntaxe

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

Paramètres

[in] DeviceObject

Pointeur vers l’objet d’appareil pour l’appareil. Ce paramètre pointe vers une structure système DEVICE_OBJECT , mais est casté en type PVOID.

[in] DeviceProperty

Spécifie la propriété d’appareil Plug-and-Play demandée. Pour obtenir la liste des valeurs du spécificateur de propriété, consultez la section Remarques suivante.

[in] BufferLength

Spécifie la longueur en octets de la mémoire tampon qui doit recevoir les données de propriété demandées.

[out] PropertyBuffer

Pointeur vers une mémoire tampon allouée à l’appelant dans laquelle la méthode consiste à écrire les données de propriété demandées. La mémoire tampon doit être suffisamment grande pour contenir le nombre d’octets spécifié dans BufferLength.

[out] ResultLength

Pointeur vers une variable allouée par l’appelant dans laquelle la méthode génère un nombre spécifiant le nombre d’octets réellement écrits dans la mémoire tampon. Si la taille de mémoire tampon spécifiée dans BufferLength est trop petite pour contenir les données de propriété, la méthode génère plutôt le nombre d’octets requis pour les données de propriété et retourne STATUS_BUFFER_TOO_SMALL.

Valeur retournée

PcGetDeviceProperty retourne STATUS_SUCCESS si l’appel a réussi. Sinon, il retourne un code d’erreur approprié. La routine retourne STATUS_BUFFER_TOO_SMALL si la taille de la mémoire tampon spécifiée dans BufferLength n’était pas suffisamment grande pour contenir les données de propriété demandées.

Remarques

Définissez le paramètre DeviceProperty sur l’une des valeurs d’énumération DEVICE_REGISTRY_PROPERTY suivantes à partir du fichier d’en-tête wdm.h :

DevicePropertyAddress

DevicePropertyBootConfiguration

DevicePropertyBootConfigurationTranslated

DevicePropertyBusNumber

DevicePropertyBusTypeGuid

DevicePropertyClassGuid

DevicePropertyClassName

DevicePropertyCompatibleIDs

DevicePropertyDetachability

DevicePropertyDeviceDescription

DevicePropertyDriverKeyName

DevicePropertyEnumeratorName

DevicePropertyFriendlyName

DevicePropertyHardwareID

DevicePropertyInstallState

DevicePropertyLegacyBusType

DevicePropertyLocationInformation

DevicePropertyManufacturer

DevicePropertyPhysicalDeviceObjectName

DevicePropertyUINumber

Pour obtenir une description des valeurs DevicePropertyXxx précédentes, consultez IoGetDeviceProperty.

Deux appels à PcGetDeviceProperty peuvent être nécessaires pour déterminer le bufferLength requis. Dans le premier appel, BufferLength peut être égal à zéro ou à une estimation de la taille de mémoire tampon requise. Si le status de retour est STATUS_BUFFER_TOO_SMALL, cela signifie que l’appelant doit allouer une mémoire tampon de la taille qui a été sortie via ResultLength et appeler à nouveau PcGetDeviceProperty.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Le pilote système PortCls implémente la fonction PcGetDeviceProperty dans Microsoft Windows 98/Me et dans les systèmes d’exploitation Windows 2000 et ultérieurs.
Plateforme cible Universal
En-tête portcls.h (include Portcls.h)
Bibliothèque Portcls.lib
IRQL PASSIVE_LEVEL

Voir aussi

DEVICE_OBJECT

IoGetDeviceProperty