Función NdisAllocateMdl (ndis/mdlapi.h)
La función NdisAllocateMdl asigna una MDL que describe el búfer de memoria en la dirección virtual especificada.
Sintaxis
NDIS_EXPORTED_ROUTINE MDL * NdisAllocateMdl(
[in] NDIS_HANDLE NdisHandle,
[in] PVOID VirtualAddress,
[in] ULONG Length
);
Parámetros
[in] NdisHandle
Identificador NDIS que se obtuvo durante la inicialización del autor de la llamada. Para obtener más información, consulte Obtención de identificadores de grupo.
[in] VirtualAddress
Puntero a la dirección virtual base del búfer que el MDL va a describir.
El parámetro VirtualAddress para NdisAllocateMdl solo acepta memoria del grupo no paginado. En otras palabras, requiere memoria de ExAllocatePool*(NonPagedNx), NdisAllocateMemoryWithTagPriority o NdisMAllocateSharedMemory. En concreto, no se debe usar con memoria de la pila, el grupo paginado, los datos globales del controlador u otras regiones de memoria.
Si un controlador necesita compilar una MDL para una de estas regiones de grupo no paginadas, debe usar las API de kernel adecuadas para ese tipo de memoria, como IoAllocateMdl combinado con MmProbeAndLockPages.
[in] Length
Tamaño, en bytes, del búfer de memoria.
Valor devuelto
NdisAllocateMdl devuelve un puntero al MDL asignado. Si se produce un error en la asignación, el valor devuelto es NULL.
Comentarios
Todas las MDL asignadas mediante una llamada a NdisAllocateMdl deben liberarse llamando a la función NdisFreeMdl .
NdisAllocateMdl asigna memoria y compila mdL en un paso. Este proceso es diferente de IoAllocateMdl, que solo asigna memoria para mdL, lo que significa que el llamador debe compilar el MDL llamando a MmBuildMdlForNonPagedPool o MmProbeAndLockPages.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Se admite en NDIS 6.0 y versiones posteriores. |
Plataforma de destino | Universal |
Encabezado | ndis/mdlapi.h (include ndis.h) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | Irql_NetBuffer_Function(ndis), NdisAllocateMdl(ndis) |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de