Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
NDIS 6.0 ve üzeri NET_BUFFER yapıları, NDIS 5 tarafından kullanılan NDIS_PACKET yapılara benzer. xve önceki sürücüleri. Her NET_BUFFER yapısı bir ağ veri paketi paketler.
Aşağıdaki şekilde, NET_BUFFER yapısındaki alanlar gösterilmektedir.
NET_BUFFER yapısındaki alanları gösteren
NET_BUFFER yapısı, NetBufferHeader üyesinde NET_BUFFER_HEADER bir yapı içerir. NET_BUFFER_HEADER yapısı, NetBufferData üyesinde NET_BUFFER_DATA bir yapı içerir. NET_BUFFER yapı üyelerine erişmek için NDIS makroları kullanmalısınız. Bu makroların tam listesi için NET_BUFFER yapısı başvuru sayfasına bakın.
NET_BUFFER yapı üyelerinden bazıları yalnızca NDIS tarafından kullanılır. Sürücülerin genellikle kullandığı üyeler şunlardır:
ProtokolRezerve
Protokol sürücüleri tarafından kullanılmak üzere ayrılmıştır.
miniportReserved
Miniport sürücüleri tarafından kullanılmak üzere ayrılmıştır.
NdisPoolHandle
NET_BUFFER yapısının ayrıldığı NET_BUFFER havuzunu tanımlayan bir havuz tanıtıcısı belirtir.
sonraki
bağlantılı bir NET_BUFFER yapı listesinde sonraki NET_BUFFER yapısının işaretçisini belirtir. Bu listedeki son NET_BUFFER yapıysa, bu üye NULL .
DataLength
MDL zincirindeki ağ verilerinin bayt cinsinden uzunluğunu belirtir.
DataOffset
MDL zincirindeki belleğin başlangıcından MDL zincirindeki ağ verilerinin başlangıcına kadar olan uzaklığı bayt cinsinden belirtir.
CurrentMdl
Geçerli sürücünün kullandığı ilk MDL'nin işaretçisini belirtir. Bu işaretçi, geçerli sürücünün kullanmadığı MDL'leri atlayarak performansı geliştiren bir iyileştirme sağlar.
CurrentMdlOffset
NET_BUFFER yapısının CurrentMdl üyesi tarafından belirtilen MDL'de kullanılan veri alanının başına olan uzaklığı bayt cinsinden belirtir.
Aşağıdaki şekilde, CurrentMdl, CurrentMdlOffset, DataOffsetve DataLength üyeleri ile veri alanı arasındaki ilişki gösterilmektedir.
NDIS, MDL zincirindeki veri alanını yönetmek için işlevler sağlar. Sürücülerin veri alanını kullanma şekli, geçerli sürücüyle dinamik olarak değişir. Bazen geçerli sürücü tarafından şu anda kullanılmayan veri alanı vardır. kullanılmayan veri alanı şu anda kullanılmamış olsa da geçerli veriler içerebilir. Örneğin, alma yolunda kullanılmayan veri alanı alt düzey bir sürücü tarafından kullanılan üst bilgi bilgilerini içerebilir.
Sürücüler, kullanılanveri alanını artırmak ve azaltmak için geri çekilme ve ilerleme işlemleri gerçekleştirir. Geri çekilme ve ilerleme işlemleri hakkında daha fazla bilgi için bkz. Retreat ve Advance Operations.
Aşağıdaki terimler ve tanımlar, NET_BUFFER veri alanının öğelerini açıklar:
Kullanılan veri alanı
Kullanılan veri alanı geçerli sürücünün geçerli zamanda kullandığı verileri içerir. Sürücüler, geri çekilme işlemleriyle kullanılan veri alanı artırır ve gelişmiş işlemlerle kullanılan veri alanını azaltır.
Kullanılmayan veri alanını
Geçerli sürücü geçerli zamanda bu veri alanını kullanmıyor.
Toplam veri boyutu
Toplam veri boyutu, kullanılan veri alanı boyutunun toplamıdır ve kullanılmayan veri alanı. Toplam boyutu hesaplamak için DataOffsetDataLength ekleyin.
Retreat
Geri çekilme işlemleri, kullanılanveri alanının boyutunu artırır.
İlerle
İlerletme işlemleri, kullanılanveri alanının boyutunu küçültür.