Compartilhar via


Macro MmGetMdlPfnArray (wdm.h)

A macro MmGetMdlPfnArray retorna um ponteiro para o início da matriz de números de página física associados a uma MDL (lista de descritores de memória).

Sintaxe

PPFN_NUMBER MmGetMdlPfnArray(
  _In_ PMDL Mdl
);

Parâmetros

Mdl

Um ponteiro para um MDL.

Retornar valor

MmGetMdlPfnArray retorna um ponteiro para o início da matriz de números de página física associados ao MDL.

Comentários

MmGetMdlPfnArray retorna um ponteiro para o início da matriz de números de página física associados ao MDL.

Definição de macro:

#define MmGetMdlPfnArray(Mdl) ((PPFN_NUMBER)(Mdl + 1))

O número de entradas na matriz é ADDRESS_AND_SIZE_TO_SPAN_PAGES(MmGetMdlVirtualAddress(Mdl), MmGetMdlByteCount(Mdl)).

Cada elemento de matriz é um valor inteiro do tipo PFN_NUMBER, que é definido no arquivo de cabeçalho Wdm.h da seguinte maneira:

typedef ULONG PFN_NUMBER, *PPFN_NUMBER;

Alterar o conteúdo da matriz pode causar problemas sutis do sistema que são difíceis de diagnosticar. Recomendamos que você não leia ou altere o conteúdo dessa matriz.

Para memória paginável, o conteúdo da matriz é válido apenas para um buffer bloqueado com MmProbeAndLockPages.

Para pool nãopagado, o conteúdo da matriz é válido apenas para um MDL atualizado com MmBuildMdlForNonPagedPool, MmAllocatePagesForMdlEx ou MmAllocatePagesForMdl.

Para obter mais informações sobre MDLs, consulte Usando MDLs.

Requisitos

Requisito Valor
Cabeçalho wdm.h (include Wdm.h)
IRQL Qualquer nível
Regras de conformidade da DDI MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf)