Partager via


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
STATUS_INVALID_PARAMETER
Un paramètre non valide a été détecté.
STATUS_INSUFFICIENT_RESOURCES
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)

Voir aussi

WdfLookasideListCreate

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectDelete