структура FWPS_CONNECT_REQUEST0 (fwpsk.h)

Структура FWPS_CONNECT_REQUEST0 определяет изменяемые данные для слоев FWPM_LAYER_ALE_AUTH_CONNECT_REDIRECT_V4 и FWPM_LAYER_ALE_AUTH_CONNECT_REDIRECT_V6 . Драйвер выноски использует эти данные для проверки или изменения сведений о подключении.

ПримечаниеFWPS_CONNECT_REQUEST0 — это определенная версия FWPS_CONNECT_REQUEST. Дополнительные сведения см. в разделах Имена Version-Independent и Выбор конкретных версий Windows .
 

Синтаксис

typedef struct _FWPS_CONNECT_REQUEST0 {
  SOCKADDR_STORAGE              localAddressAndPort;
  SOCKADDR_STORAGE              remoteAddressAndPort;
  UINT64                        portReservationToken;
  DWORD                         localRedirectTargetPID;
  struct _FWPS_CONNECT_REQUEST0 *previousVersion;
  UINT64                        modifierFilterId;
  HANDLE                        localRedirectHandle;
  void                          *localRedirectContext;
  SIZE_T                        localRedirectContextSize;
} FWPS_CONNECT_REQUEST0;

Члены

localAddressAndPort

Локальный транспортный адрес запроса на подключение. Это IPV4 или IPV6-адрес и TCP-порт в формате SOCKADDR_STORAGE структуры.

remoteAddressAndPort

Адрес удаленного транспорта запроса на подключение. Это адрес IPV4 или IPV6 и порт TCP/UDP, отформатированный в виде SOCKADDR_STORAGE структуры.

portReservationToken

Маркер, используемый для резервирования соответствующего порта. Маркер получается при резервации порта путем вызова метода CreatePersistentTcpPortReservation или CreatePersistentUdpPortReservation.

localRedirectTargetPID

Идентификатор процесса локального хост-процесса, который будет обрабатывать трафик по адресу, указанному в localAddressAndPort. Это значение должно быть задано для того, чтобы изменения перенаправления на себя были приняты подсистемой.

previousVersion

Предыдущая версия данных запроса подключения. Это поле, доступное только для чтения, записывает журнал изменений запроса на подключение. Если данные запроса на подключение ранее не были изменены другим фильтром WFP, параметру previousVersion будет присвоено значение NULL.

modifierFilterId

Значение элемента FilterId параметра фильтра функции classifyFn. Дополнительные сведения об элементе FilterId см. в разделе FWPS_FILTER1.

localRedirectHandle

Дескриптор перенаправления, созданный драйвером выноски путем вызова функции FwpsRedirectHandleCreate0 .

Примечание Начиная с Windows 8, для работы перенаправления необходимо заполнить localRedirectHandle.
 

localRedirectContext

Область контекста драйвера выноски, выделенная драйвером выноски путем вызова функции ExAllocatePoolWithTag .

Примечание Начиная с Windows 8, память, выделенная для localRedirectContext, будет находиться в собственности МПП и будет освобождена при удалении прокси-потока.
 

localRedirectContextSize

Размер (в байтах) области контекста, предоставленной выноской.

Примечание Поддерживается начиная с Windows 8.
 

Комментарии

Драйвер выноски получает эту структуру путем вызоваФункция FwpsAcquireWritableLayerDataPointer0, которая возвращает указатель на структуру FWPS_CONNECT_REQUEST0 с помощью параметра writableLayerData. Функция classifyFn может изменять параметры запроса на подключение, например перенаправлять локальный или удаленный транспортный адрес или порт на другой адрес или порт. Если он изменяет параметры запроса на подключение, функция classifyFn должна выполнить следующие действия:

  • Внесите все изменения в структуру FWPS_CONNECT_REQUEST0 , возвращенную FwpsAcquireWritableLayerDataPointer0. Можно изменять только элементы remoteAddressAndPort, portReservationToken, localRedirectTargetPID, localRedirectHandle, localRedirectContext и localRedirectContextSize .
  • Вызов FwpsApplyModifiedLayerData0 с параметром modifiedLayerData , заданным для адреса структуры FWPS_CONNECT_REQUEST0 , даже если драйвер выноски не изменил никаких данных. Это значение должно совпадать со значением параметра modifiedLayerData, возвращаемым через FwpsAcquireWritableLayerDataPointer0.
Эта структура выступает в качестве связанного списка, содержащего запись всех изменений, внесенных другими драйверами выносок. Сведения о предыдущей версии имеются, если член previousVersion не имеет значения NULL. Чтобы изучить полный журнал версий, драйвер выноски должен продолжать изучать элемент previousVersion каждой структуры в списке, пока ему не будет присвоено значение NULL.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 7.
Верхняя часть fwpsk.h (включая Fwpsk.h)

См. также раздел

ExAllocatePoolWithTag

FWPS_FILTER1

FwpsAcquireWritableLayerDataPointer0

FwpsApplyModifiedLayerData0

FwpsRedirectHandleCreate0

SOCKADDR_STORAGE

Использование перенаправления привязки или подключения

classifyFn