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 de mémoire à partir d’une liste de lookaside spécifiée.
Syntaxe
NTSTATUS WdfMemoryCreateFromLookaside(
[in] WDFLOOKASIDE Lookaside,
[out] WDFMEMORY *Memory
);
Paramètres
[in] Lookaside
Handle vers 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 du framework.
Valeur de retour
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é. |
|
Il y avait une mémoire insuffisante. |
Cette méthode peut également retourner d’autres valeurs NTSTATUS .
Une vérification de bogue se produit si le pilote fournit un handle d’objet non valide.
Remarques
Une fois que votre pilote appelle WdfLookasideListCreate pour créer un objet lookaside-list, le pilote peut appeler WdfMemoryCreateFromLookaside pour obtenir une mémoire tampon à partir de la liste 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, il utilise des attributs d’objet fournis par le pilote lorsqu’il a appelé WdfMemoryCreateFromLookaside.
Une fois que votre pilote a fini d’utiliser un objet mémoire qu’il a obtenu à partir d’une liste lookaside, le pilote doit appeler WdfObjectDelete pour renvoyer l’objet mémoire à la liste de choix.
Pour plus d’informations sur les objets mémoire du framework et les listes de choix, consultez Utilisation des mémoires tampons.
Si les mémoires tampons lookaside-list sont allouées à partir du pool de mémoire paginables, la méthode WdfMemoryCreateFromLookaside doit être appelée à IRQL <= APC_LEVEL. Sinon, la méthode peut être appelée au <IRQL = DISPATCH_LEVEL.
Exemples
L’exemple de code suivant crée une liste de choix et stocke le handle de la liste dans l’espace de contexte de l’objet périphérique défini par le pilote. Ensuite, le pilote obtient une mémoire tampon à partir de la liste lookaside.
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
);
Spécifications
Besoin | Valeur |
---|---|
plateforme cible | Universel |
version minimale de KMDF | 1.0 |
En-tête | wdfmemory.h (include Wdf.h) |
Bibliothèque | Wdf01000.sys (voir Versioning de la bibliothèque Framework.) |
IRQL | Voir la section Remarques. |
règles de conformité DDI | DriverCreate(kmdf) |