Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sterowniki miniportu zazwyczaj wywołują NdisAllocateNetBufferListPool w ramach MiniportInitializeEx, aby utworzyć pulę struktur NET_BUFFER_LIST. Sterowniki miniportu używają tych struktur do wskazywania odebranych danych.
Zazwyczaj sterownik miniportu, który przydziela strukturę NET_BUFFER_LIST, przydziela i ustawia w kolejce jedną strukturę NET_BUFFER na tej strukturze NET_BUFFER_LIST. Wydajniejsze jest wstępne przydzielanie struktur NET_BUFFER podczas przydzielania puli struktur NET_BUFFER_LIST niż przydzielania struktur NET_BUFFER_LIST i struktur NET_BUFFER oddzielnie.
Sterowniki miniportu mogą wywoływać NdisAllocateNetBufferListPool i ustawić parametr AllocateNetBuffer na PRAWDA, aby wskazać, że struktury NET_BUFFER są wstępnie przydzielane. W takim przypadku każda struktura NET_BUFFER_LIST przydzielana przez sterownik z puli ma już wstępnie przydzieloną strukturę NET_BUFFER. Takie sterowniki muszą wywołać NdisAllocateNetBufferAndNetBufferList w celu alokacji struktur z tej puli.
Zazwyczaj sterownik miniportu wywołuje NdisAllocateNetBufferAndNetBufferList z MiniportInitializeEx, aby przydzielić tyle buforów, ile będzie potrzebne do kolejnych operacji odbierania. W takim przypadku sterownik zarządza wewnętrzną listą wolnych buforów.
Funkcja MiniportReturnNetBufferLists może przygotować zwróconą strukturę NET_BUFFER_LIST do ponownego użycia w kolejnym wskazaniu odbioru. Mimo że MiniportReturnNetBufferLists może zwrócić struktury NET_BUFFER_LIST do puli (na przykład poprzez wywołanie NdisFreeNetBufferList), może być bardziej wydajne ponowne użycie struktur bez zwracania ich do puli.
Sterownik miniportu powinien uwolnić wszystkie struktury NET_BUFFER_LIST oraz powiązane dane, kiedy NDIS wstrzymuje działanie karty. Sterownik może wywołać NdisFreeNetBufferList, aby zwolnić struktury i funkcję NdisFreeNetBufferListPool, aby zwolnić pulę NET_BUFFER_LIST.