Функция FwpsReferenceNetBufferList0 (fwpsk.h)
Функция FwpsReferenceNetBufferList0 увеличивает количество ссылок для структуры NET_BUFFER_LIST .
Синтаксис
void FwpsReferenceNetBufferList0(
[in, out] NET_BUFFER_LIST *netBufferList,
[in] BOOLEAN intendToModify
);
Параметры
[in, out] netBufferList
Указатель на структуру NET_BUFFER_LIST , для которой увеличивается число ссылок.
[in] intendToModify
Значение типа , указывающее, намерена ли выноска изменить список клонированного сетевого буфера, на родительский элемент которого указывает параметр netBufferList после возврата функции classifyFn . Если задано значение TRUE, выноска намерена изменить клонированные список чистых буферов после возврата classifyFn (внеполосное изменение). В противном случае задайте значение FALSE.
Возвращаемое значение
None
Remarks
Драйвер выноски вызывает функцию FwpsReferenceNetBufferList0 , чтобы увеличить количество ссылок для структуры NET_BUFFER_LIST таким образом, чтобы список сетевого буфера оставался действительным вне функции classifyFn .
Например, когда драйвер выноски выполняет повторную сборку пакета, он увеличивает количество ссылок для каждой из полученных NET_BUFFER_LIST структур, описывающих фрагменты пакетов, составляющие отдельный пакет. Это позволяет новой структуре NET_BUFFER_LIST, описывающей повторно собираемый пакет, безопасно ссылаться на списки дескрипторов памяти (MDL), на которые указывают структуры NET_BUFFER_LIST, описывающие фрагменты пакетов. После того как драйвер выноски внедряет новую структуру NET_BUFFER_LIST в сетевой стек, он уменьшает количество ссылок для каждой из NET_BUFFER_LIST структур, описывающих фрагменты пакетов из процедуры завершения внедрения пакетов.
Драйвер выноски должен вызывать функцию FwpsDereferenceNetBufferList0 для структуры NET_BUFFER_LIST после того, как драйвер выноски завершит ссылку на структуру.
Рекомендации по управлению пакетами, на которые ссылается ссылка
Драйвер выноски не должен содержать пакеты, на которые указывает ссылка, бесконечно. Указанный пакет может помешать операциям управления питанием на неактивном компьютере.Назначение пакетов, на которые указывают ссылки в МПП, заключается в том, чтобы получить пояснения от приложения в пользовательском режиме или другой относительно быстрой операции. Драйвер выноски не должен содержать пакеты, на которые указывает ссылка, например, в ожидании ввода данных пользователем, разрешения веб-службы или любой другой операции, которая может занять произвольное время.
Если драйвер выноски должен ждать потенциально длительной операции, он должен сделать глубокую копию пакета с помощью FwpsAllocateNetBufferAndNetBufferList0 и заблокировать и поглотить исходный пакет.
Драйверы выносок всегда должны возвращать удерживаемые пакеты как можно быстрее.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows Vista. |
Целевая платформа | Универсальное |
Верхняя часть | fwpsk.h (включая Fwpsk.h) |
Библиотека | Fwpkclnt.lib |
IRQL | <= DISPATCH_LEVEL |