Alınan Ethernet Çerçevelerini Gösterme

Windows TCP/IP protokolü sürücüsü, Ethernet çerçeveleri almak için bir dizi gereksinim uygular. Başlangıç ​​alıcı göstergelerini oluşturan veya temel sürücülerin alıcı göstergelerini değiştiren tüm sürücüler, TCP/IP'nin uyguladığı genel gereksinimleri desteklemek zorundadır. Bu sürücüler Ethernet miniport sürücüleri, MUX ara sürücüleri ve filtre sürücülerini içerir.

Not Bir sürücü bu gereksinimleri karşılamıyorsa, aşırı yük sürücüleri (TCP/IP aktarımı, MUX ara sürücüleri ve filtre sürücüleri gibi) öngörülemez şekilde davranabilir.

Ethernet alım göstergelerini işleyen sürücülerin aşağıdaki gereksinimleri desteklemesi gerekir:

  • Sürücü, alınan Ethernet çerçevesi için NET_BUFFER_LIST bir yapı ayırmalıdır. Her NET_BUFFER_LIST yapısı, belirli bir kullanım için gereken NET_BUFFER_LISTNetBufferListInfo üyesinde tanımlanan bant dışı (OOB) verileri içermelidir.

  • Sürücünün çerçeve için bir NET_BUFFER yapısı ayırması ve bunu NET_BUFFER_LIST yapısına bağlaması gerekir. Ethernet miniport, alınan verileri belirtirken, tam olarak bir NET_BUFFER yapısını bir NET_BUFFER_LIST yapısına atamalıdır. Bu kısıtlama yalnızca Ethernet alma yolu için geçerlidir. Yerel 802.11 kablosuz LAN arabirimi gibi diğer medya türleri için geçerli değildir. veya genel olarak NDIS.

  • NDIS 6.1'den başlayarak, belirli senaryolarda bir NET_BUFFER yapısı, alınan Ethernet çerçevesi için birden çok bellek tanımlayıcı listesi (MDL) ile ilişkilendirilebilir. bir NET_BUFFER_LIST yapısının tek bir NET_BUFFER yapısı içermesi gerekse de, birden çok MDL kullanmak sürücünün alınan paket verilerini ayrı arabelleklere bölmesine olanak tanır.

    Örneğin, başlık-veri ayırma arabirimini destekleyen Ethernet sürücüleri, tek bir NET_BUFFER yapısıyla ilişkili birden çok MDL'nin bağlantılı listesini kullanarak alınan bir Ethernet çerçevesini böler. Daha fazla bilgi için bkz. Header-Data Bölme.

    Kolaylık ve performans nedenleriyle, üst bilgi veri bölmeyi desteklemeyen sürücülerin her NET_BUFFER yapısı için yalnızca bir MDL kullanmasını kesinlikle öneririz.

    Not Windows Vista için NDIS 6.0'da her NET_BUFFER yapısı yalnızca bir MDL içermelidir.

  • Sürücüler, ilk MDL, NDIS'in bakış boyutu olarak belirttiği minimum bayt sayısını içermedikçe, alınan Ethernet çerçevelerini IP başlığının, IPv4 seçeneklerinin, IPsec başlıklarının, IPv6 uzantı başlıklarının veya üst katman protokol başlıklarının ortasında bölmemelidir.

NDIS protokolü ve filtre sürücüleri, bu bölünmüş çerçevelerin önceki liste öğesinde tanımlanan kısıtlamalara uygun olması durumunda alma göstergelerinde bölünmüş Ethernet çerçevelerini desteklemelidir. Kısıtlamalar, protokol ve filtre sürücülerinin gelecekteki Windows sürümleriyle uyumlu olmasını sağlar.