Compatibilidad con la división de Header-Data en controladores de protocolo y controladores de filtro
Los controladores de protocolo NDIS 6.0 y versiones posteriores y los controladores de filtro deben admitir la recepción de indicaciones con el encabezado y los datos en búferes no contiguos.
No debe suponer que solo hay una MDL única en una estructura de NET_BUFFER . Los controladores de protocolo y los controladores de filtro no son necesarios para hacer nada específico para admitir el registro de división de datos de encabezado. Sin embargo, el código de control de recepción del controlador debe controlar más de una MDL en la cadena MDL y debe usar las siguientes macros MDL de NDIS para acceder a la cadena MDL:
Con los búferes divididos, la longitud de los datos asociada a la estructura NET_BUFFER (en el miembro DataLength de la estructura NET_BUFFER_DATA ) se divide en varias MDL. Por ejemplo, si un controlador de protocolo intentó acceder a todo el búfer de datos en la primera MDL, el controlador podría tener acceso a datos no válidos.
Nota Después de que la llamada de indicación de recepción vuelva a un controlador de minipuerto, el controlador de minipuerto puede reclamar las MDL de encabezado. Los controladores que se sobreponen o sus clientes no deben tener acceso a los MDL de encabezado después de que la llamada de indicación de recepción vuelva al controlador de minipuerto. Esta restricción también se aplica incluso cuando el controlador de minipuerto no indica los datos recibidos con un estado de NDIS_RECEIVE_FLAGS_RESOURCES.