PBUILD_MDL_FROM_SCATTER_GATHER_LIST funzione di callback (wdm.h)

La routine BuildMdlFromScatterGatherList compila un MDL da un elenco a dispersione/raccolta allocato dal sistema.

Questa routine è riservata per l'uso del sistema.

Sintassi

PBUILD_MDL_FROM_SCATTER_GATHER_LIST PbuildMdlFromScatterGatherList;

NTSTATUS PbuildMdlFromScatterGatherList(
  [in]  PDMA_ADAPTER DmaAdapter,
  [in]  PSCATTER_GATHER_LIST ScatterGather,
  [in]  PMDL OriginalMdl,
  [out] PMDL *TargetMdl
)
{...}

Parametri

[in] DmaAdapter

Puntatore alla struttura DMA_ADAPTER restituita da IoGetDmaAdapter che rappresenta l'adattatore bus-master o il controller DMA.

[in] ScatterGather

Puntatore alla struttura SCATTER_GATHER_LIST passata alla routine AdapterListControl del driver.

[in] OriginalMdl

Puntatore al file MDL originale usato dal driver per compilare l'elenco di dispersione/raccolta.

[out] TargetMdl

Puntatore a una variabile utilizzata dalla routine per restituire il file MDL creato per contenere il buffer descritto dall'elenco di dispersione/raccolta. Il valore restituito può essere uguale a OriginalMdl.

Valore restituito

BuildMdlFromScatterGatherList restituisce uno dei codici di stato seguenti:

Codice restituito Descrizione
STATUS_SUCCESS Operazione completata.
STATUS_INVALID_PARAMETER Il parametro OriginalMdl è NULL.
STATUS_INSUFFICIENT_RESOURCES Memoria insufficiente per allocare un nuovo file MDL.
STATUS_NONE_MAPPED Il sistema ha già creato un nuovo MDL per le posizioni di memoria nell'elenco a dispersione/raccolta. Questa operazione si verifica solo se la routine viene chiamata due volte nello stesso elenco di dispersione/raccolta.

Commenti

BuildMdlFromScatterGatherList non è una routine di sistema che può essere chiamata direttamente per nome. Questa routine può essere chiamata solo dal puntatore dall'indirizzo restituito in una struttura DMA_OPERATIONS . I driver ottengono l'indirizzo di questa routine chiamando IoGetDmaAdapter con il membro Version del parametro DeviceDescription impostato su DEVICE_DESCRIPTION_VERSION2. Se IoGetDmaAdapter restituisce NULL, la routine non è disponibile nella piattaforma.

Quando un driver crea un elenco a dispersione/raccolta da scrivere in un dispositivo, il sistema può creare una copia dei dati da scrivere e usarlo per eseguire l'operazione DMA. Utilizzare questa routine per accedere ai percorsi di memoria nell'elenco a dispersione/raccolta, indipendentemente dal fatto che tali posizioni siano una copia.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows XP e versioni successive di Windows.
Piattaforma di destinazione Desktop
Intestazione wdm.h (include Wdm.h)
IRQL <= DISPATCH_LEVEL
Regole di conformità DDI IrqlDispatch(wdm)

Vedi anche

BuildScatterGatherList

DEVICE_DESCRIPTION

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter

SCATTER_GATHER_LIST