Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
[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 DEVICE_REGISTRY_PROPERTY-typée qui identifie la propriété de l’appareil à récupérer.
[in] PoolType
Valeur d’énumérateur POOL_TYPE-typée qui spécifie le type de mémoire à allouer.
[in, optional] PropertyMemoryAttributes
Pointeur vers une structure WDF_OBJECT_ATTRIBUTES allouée par l’appelant qui décrit les attributs d’objet pour l’objet mémoire qui WdfFdoInitAllocAndQueryProperty allouera. Ce paramètre est facultatif et peut être WDF_NO_OBJECT_ATTRIBUTES.
[out] PropertyMemory
Pointeur vers un emplacement typé WDFMEMORY qui reçoit un handle vers un objet mémoire de framework.
Valeur de retour
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 EvtDriverDeviceAdd fonction de rappel. |
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 WdfDeviceCreate, consultez Création d’un objet d’appareil Framework.
Après avoir appelé WdfDeviceCreate, un pilote peut obtenir des informations de propriété d’appareil en appelant WdfDeviceAllocAndQueryProperty.
Pour plus d’informations sur la méthode WdfFdoInitAllocAndQueryProper tyProperty, consultez Création d’objets d’appareil dans un pilote de fonction.
Vous pouvez également utiliser WdfFdoInitAllocAndQueryPropertyEx pour accéder aux propriétés d’appareil exposées via le modèle de propriété unifié.
Exemples
L’exemple de code suivant appelle WdfFdoInitAllocAndQueryProperty pour obtenir un handle vers un objet mémoire de framework 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 classe de configuration.
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
);
}
Spécifications
| Besoin | Valeur |
|---|---|
| plateforme cible | Universel |
| version minimale de KMDF | 1.0 |
| version minimale de UMDF | 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) |