WdfMemoryCreateFromLookaside, fonction (wdfmemory.h)
[S’applique uniquement à KMDF]
La méthode WdfMemoryCreateFromLookaside crée un objet mémoire framework et obtient une mémoire tampon à partir d’une liste de recherche spécifiée.
Syntaxe
NTSTATUS WdfMemoryCreateFromLookaside(
[in] WDFLOOKASIDE Lookaside,
[out] WDFMEMORY *Memory
);
Paramètres
[in] Lookaside
Handle d’un objet lookaside-list de framework obtenu en appelant WdfLookasideListCreate.
[out] Memory
Pointeur vers un emplacement qui reçoit un handle vers le nouvel objet de mémoire framework.
Valeur retournée
WdfMemoryCreateFromLookaside retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode retourne l’une des valeurs suivantes :
Code de retour | Description |
---|---|
|
Un paramètre non valide a été détecté. |
|
La mémoire était insuffisante. |
Cette méthode peut également retourner d’autres valeurs NTSTATUS.
Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.
Remarques
Une fois que votre pilote a appelé WdfLookasideListCreate pour créer un objet lookaside-list, le pilote peut appeler WdfMemoryCreateFromLookaside pour obtenir une mémoire tampon à partir de la liste de lookaside.
L’infrastructure fournit un handle à un objet mémoire qui représente la mémoire tampon. Lorsque l’infrastructure crée l’objet mémoire, elle utilise les attributs d’objet que le pilote a fournis lorsqu’il a appelé WdfMemoryCreateFromLookaside.
Lorsque votre pilote a terminé d’utiliser un objet de mémoire qu’il a obtenu à partir d’une liste de recherche, le pilote doit appeler WdfObjectDelete pour renvoyer l’objet mémoire à la liste de recherche.
Pour plus d’informations sur les objets de mémoire du framework et les listes de recherche, consultez Utilisation de mémoire tampons.
Si des mémoires tampons de liste de recherche sont allouées à partir du pool de mémoire paginable, la méthode WdfMemoryCreateFromLookaside doit être appelée à l’adresse IRQL <= APC_LEVEL. Sinon, la méthode peut être appelée à l’adresse IRQL <= DISPATCH_LEVEL.
Exemples
L’exemple de code suivant crée une liste de lookaside et stocke le handle de la liste dans l’espace contextuel de l’objet d’appareil défini par le pilote. Ensuite, le pilote obtient une mémoire tampon à partir de la liste de recherche.
PDRIVER_CONTEXT driverContext;
WDFMEMORY memHandle;
driverContext = GetDriverContext(driver);
status = WdfLookasideListCreate(
WDF_NO_OBJECT_ATTRIBUTES,
sizeof(MY_LOOKASIDE_BUFFER),
NonPagedPool,
WDF_NO_OBJECT_ATTRIBUTES,
MY_POOL_TAG,
&driverContext->LookasideListHandle
);
...
status = WdfMemoryCreateFromLookaside(
driverContext->LookasideListHandle,
&memHandle
);
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
En-tête | wdfmemory.h (include Wdf.h) |
Bibliothèque | Wdf01000.sys (consultez Gestion de version de la bibliothèque d’infrastructure.) |
IRQL | Consultez la section Notes. |
Règles de conformité DDI | DriverCreate(kmdf) |