Funzione WdfMemoryAssignBuffer (wdfmemory.h)
[Si applica a KMDF e UMDF]
Il metodo WdfMemoryAssignBuffer assegna un buffer specificato a un oggetto memoria creato da un driver che chiama WdfMemoryCreatePreallocated.
Sintassi
NTSTATUS WdfMemoryAssignBuffer(
[in] WDFMEMORY Memory,
[in] PVOID Buffer,
[in] size_t BufferSize
);
Parametri
[in] Memory
Handle per un oggetto memoria framework ottenuto chiamando WdfMemoryCreatePreallocated.
[in] Buffer
Puntatore a un buffer fornito dal driver.
[in] BufferSize
Dimensioni diverse da zero, in byte, del buffer a cui buffer punta.
Valore restituito
WdfMemoryAssignBuffer restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo potrebbe restituire uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
È stato rilevato un parametro non valido. |
Questo metodo potrebbe anche restituire altri valori NTSTATUS .
Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.
Osservazioni:
Il metodo può assegnare un buffer a un oggetto memoria che WdfMemoryCreatePreallocated creato, ma non a un oggetto memoria che WdfMemoryCreate creato.
Buffer a cui può essere allocato il parametro buffer dal pool di memoria visualizzabile o non paging. Se il driver alloca il buffer dal pool di paging o se il buffer proviene da un'applicazione in modalità utente, il driver deve accedere al buffer solo in < DISPATCH_LEVEL IRQL. Si noti che il driver EvtCleanupCallback e EvtDestroyCallback funzioni di callback, se specificato, può essere chiamato in IRQL <= DISPATCH_LEVEL.
Per altre informazioni sugli oggetti di memoria del framework, vedere Using Memory Buffers.
Esempi
Nell'esempio di codice seguente viene allocato un buffer e quindi viene assegnato il buffer a un oggetto memoria framework.
PVOID pNewBuffer = NULL;
pNewBuffer = ExAllocatePoolWithTag(
NonPagedPool,
NEW_BUFFER_SIZE,
MY_DRIVER_TAG
);
if (pNewBuffer == NULL){
goto Error;
}
status = WdfMemoryAssignBuffer(
memHandle,
pNewBuffer,
NEW_BUFFER_SIZE
);
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
versione minima di KMDF | 1.0 |
versione minima di UMDF | 2.0 |
intestazione | wdfmemory.h (include Wdf.h) |
Biblioteca | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | Qualsiasi livello |
regole di conformità DDI | BufAfterReqCompletedIntIoctlA(kmdf), BufAfterReqCompletedIoctlA(kmdf), BufAfterReqCompletedReadA(kmdf), BufAfterReqCompletedWriteA(kmdf), DriverCreate(kmdf), MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf) |