Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Драйвер протокола должен управлять пулами структур NET_BUFFER_LIST и пулами структур NET_BUFFER для операций отправки. Чтобы создать эти пулы, драйверы вызывают следующие функции:
Драйверы протокола могут использовать следующие функции для выделения структур из пулов:
NdisAllocateNetBufferAndNetBufferList
Вызов NdisAllocateNetBufferAndNetBufferList является более эффективным, чем вызов NdisAllocateNetBufferList , за которым следует NdisAllocateNetBuffer. Однако NdisAllocateNetBufferAndNetBufferList создает только одну структуру NET_BUFFER на структуре NET_BUFFER_LIST. Чтобы использовать NdisAllocateNetBufferAndNetBufferList, драйвер должен задать для параметра AllocateNetBufferзначение TRUE при вызове NdisAllocateNetBufferListPool.
Драйверы протоколов могут использовать запросы OID для обнаружения требований к пространству резервного и контекстного базовых драйверов. Драйвер протокола должен определить требования к дозаполнению и контекстам для привязки в состояниях открытия или перезапуска. Драйвер должен выделить достаточное пространство для заполнения и контекста для всего стека. При необходимости драйвер протокола может освободить пулы и перераспределить их в состоянии перезапуска .
Драйверы протокола используют следующие функции для освобождения пулов:
Драйверы протокола используют следующие функции для освобождения структур, выделенных из пулов:
Драйверы должны освобождать структуры NET_BUFFER, выделенные с помощью NdisAllocateNetBuffer, прежде чем освобождать связанную структуру NET_BUFFER_LIST. NET_BUFFER структуры, выделенные с использованием NdisAllocateNetBufferAndNetBufferList, освобождаются, когда драйвер вызывает NdisFreeNetBufferList для связанных структур NET_BUFFER_LIST.