WdfFdoInitAllocAndQueryProperty, fonction (wdffdo.h)
[S’applique à KMDF et UMDF]
La méthode WdfFdoInitAllocAndQueryProperty alloue une mémoire tampon et récupère une propriété d’appareil spécifiée.
Syntaxe
NTSTATUS WdfFdoInitAllocAndQueryProperty(
[in] PWDFDEVICE_INIT DeviceInit,
[in] DEVICE_REGISTRY_PROPERTY DeviceProperty,
[in] POOL_TYPE PoolType,
[in, optional] PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes,
[out] WDFMEMORY *PropertyMemory
);
Paramètres
[in] DeviceInit
Pointeur vers une structure WDFDEVICE_INIT que le pilote a obtenue à partir de sa fonction de rappel EvtDriverDeviceAdd .
[in] DeviceProperty
Valeur d’énumérateur de type DEVICE_REGISTRY_PROPERTY qui identifie la propriété d’appareil à récupérer.
[in] PoolType
Valeur d’énumérateur de type POOL_TYPE qui spécifie le type de mémoire à allouer.
[in, optional] PropertyMemoryAttributes
Pointeur vers une structure de WDF_OBJECT_ATTRIBUTES allouée par l’appelant qui décrit les attributs d’objet pour l’objet mémoire que WdfFdoInitAllocAndQueryProperty allouera. Ce paramètre est facultatif et peut être WDF_NO_OBJECT_ATTRIBUTES.
[out] PropertyMemory
Pointeur vers un emplacement de type WDFMEMORY qui reçoit un handle vers un objet mémoire d’infrastructure.
Valeur retournée
Si l’opération réussit, la méthode retourne STATUS_SUCCESS. Les valeurs de retour supplémentaires sont les suivantes :
Code de retour | Description |
---|---|
|
La valeur DeviceProperty spécifiée n’est pas valide. |
|
La structure WDFDEVICE_INIT n’a pas été obtenue à partir de la fonction de rappel EvtDriverDeviceAdd du pilote. |
La méthode peut également retourner d’autres valeurs NTSTATUS.
Remarques
Le pilote doit appeler WdfFdoInitAllocAndQueryProperty avant d’appeler WdfDeviceCreate. Pour plus d’informations sur l’appel de WdfDeviceCreate, consultez Création d’un objet d’appareil framework.
Après avoir appelé WdfDeviceCreate, un pilote peut obtenir des informations de propriété de périphérique en appelant WdfDeviceAllocAndQueryProperty.
Pour plus d’informations sur la méthode WdfFdoInitAllocAndQueryProperty , consultez Création d’objets d’appareil dans un pilote de fonction.
Vous pouvez également utiliser WdfFdoInitAllocAndQueryPropertyEx pour accéder aux propriétés de l’appareil exposées via le modèle de propriété unifié.
Exemples
L’exemple de code suivant appelle WdfFdoInitAllocAndQueryProperty pour obtenir un handle pour un objet de mémoire d’infrastructure qui contient le nom de la classe d’installation d’un appareil. Ensuite, l’exemple appelle WdfMemoryGetBuffer pour obtenir un pointeur vers la mémoire tampon qui contient la chaîne Unicode du nom de la classe d’installation.
NTSTATUS status = STATUS_SUCCESS;
PVOID pMemoryBuffer = NULL;
WDFMEMORY memory = NULL;
status = WdfFdoInitAllocAndQueryProperty(
DeviceInit,
DevicePropertyClassName,
NonPagedPool,
WDF_NO_OBJECT_ATTRIBUTES,
&memory
);
if(NT_SUCCESS(status)){
pMemoryBuffer = WdfMemoryGetBuffer(
memory,
NULL
);
}
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdffdo.h (include Wdf.h) |
Bibliothèque | Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | DeviceInitAPI(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |