Sdílet prostřednictvím


Podpora rozdělení Header-Data v protokolových a filtrujících ovladačích

Ovladače protokolu NDIS 6.0 a novější a ovladače filtru musí podporovat příjem indikací s hlavičkou a daty v nesouvislých vyrovnávacích pamětích.

Nesmíte předpokládat, že v NET_BUFFER struktuře existuje pouze jeden MDL. Ovladače protokolu a ovladače filtru nejsou nutné k provedení čehokoli specifického pro podporu registrace rozdělení dat hlaviček. Ale ovladač musí zpracovat kód, který se zabývá více než jedním MDL v rámci řetězce MDL a pro přístup k tomuto řetězci musí použít následující makra NDIS MDL:

U rozdělených vyrovnávacích pamětí je délka dat přidružená ke struktuře NET_BUFFER (v členu DataLength struktury NET_BUFFER_DATA ) rozdělena do více seznamů MDLS. Pokud se například ovladač protokolu pokusil získat přístup k celé vyrovnávací paměti dat v prvním MDL, ovladač by měl přístup k neplatným datům.

Poznámka Jakmile se volání indikace příjmu vrátí k ovladači miniportu, ovladač miniportu může zpětně získat hlavičkové MDL. Nadřazené ovladače nebo jejich klienti nesmí získat přístup k MDL po návratu indikačního volání příjmu do miniport ovladače. Toto omezení platí i v případě, že ovladač miniportu neudává přijatá data se statusem NDIS_RECEIVE_FLAGS_RESOURCES.