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) |