Partager via


Fonction WdfMemoryGetBuffer (wdfmemory.h)

[S’applique à KMDF et UMDF]

La méthode WdfMemoryGetBuffer retourne un pointeur vers la mémoire tampon associée à un objet mémoire spécifié.

Syntaxe

PVOID WdfMemoryGetBuffer(
  [in]            WDFMEMORY Memory,
  [out, optional] size_t    *BufferSize
);

Paramètres

[in] Memory

Handle d’un objet de mémoire framework.

[out, optional] BufferSize

Pointeur vers un emplacement qui reçoit la taille, en octets, de la mémoire tampon. Ce paramètre est facultatif et peut être NULL.

Valeur retournée

WdfMemoryGetBuffer retourne un pointeur vers la mémoire tampon.

Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.

Remarques

Pour plus d’informations sur les objets de mémoire framework, consultez Utilisation de mémoire tampons.

WdfMemoryGetBuffer peut être appelé à n’importe quel IRQL.

Exemples

L’exemple de code suivant est basé sur la fonction de rappel EvtUsbTargetPipeReadComplete dans l’exemple de pilote kmdf_fx2 . L’exemple obtient la mémoire tampon associée à l’objet mémoire que la fonction de rappel reçoit. L’exemple copie les données de la mémoire tampon dans l’espace de contexte de l’objet de périphérique que le pilote a défini.

VOID
OsrFxEvtUsbInterruptPipeReadComplete(
    WDFUSBPIPE  Pipe,
    WDFMEMORY  Buffer,
    size_t  NumBytesTransferred,
    WDFCONTEXT  Context
    )
{
    PUCHAR  switchState = NULL;
    WDFDEVICE  device;
    PDEVICE_CONTEXT  pDeviceContext = Context;

    device = WdfObjectContextGetObject(pDeviceContext);
    switchState = WdfMemoryGetBuffer(Buffer, NULL);
    pDeviceContext->CurrentSwitchState = *switchState;
}

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête wdfmemory.h (include Wdf.h)
Bibliothèque Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF)
IRQL N’importe quel niveau
Règles de conformité DDI DriverCreate(kmdf),MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

Voir aussi

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectContextGetObject