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. 자세한 내용은 WFP 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

연결 요청의 로컬 전송 주소입니다. SOCKADDR_STORAGE 구조로 형식이 지정된 IPV4 또는 IPV6 주소 및 TCP 포트입니다.

remoteAddressAndPort

연결 요청의 원격 전송 주소입니다. IPV4 또는 IPV6 주소이며 SOCKADDR_STORAGE 구조로 형식이 지정된 TCP/UDP 포트입니다.

portReservationToken

적절한 포트를 예약하는 데 사용되는 토큰입니다. 토큰은 CreatePersistentTcpPortReservation 또는 CreatePersistentUdpPortReservation을 호출하여 포트를 예약할 때 가져옵니다.

localRedirectTargetPID

localAddressAndPort에 지정된 주소에 대한 트래픽을 처리할 로컬 호스트 프로세스의 프로세스 식별자입니다. 엔진에서 허용하려면 루프백 리디렉션 변경 내용에 대해 이 값을 설정해야 합니다.

previousVersion

이전 버전의 연결 요청 데이터입니다. 이 읽기 전용 필드는 연결 요청의 수정 기록을 기록합니다. 다른 WFP 필터에서 이전에 연결 요청 데이터를 수정하지 않은 경우 previousVersionNULL로 설정됩니다.

modifierFilterId

classifyFn 함수의 filter 매개 변수에 대한 FilterId 멤버의 값 입니다. FilterId 멤버에 대한 자세한 내용은 FWPS_FILTER1.

localRedirectHandle

FwpsRedirectHandleCreate0 함수를 호출하여 설명선 드라이버가 만든 리디렉션 핸들입니다.

참고 Windows 8 시작하여 리디렉션이 작동하려면 localRedirectHandle을 채워야 합니다.
 

localRedirectContext

ExAllocatePoolWithTag 함수를 호출하여 설명선 드라이버가 할당한 설명선 드라이버 컨텍스트 영역입니다.

참고 Windows 8 시작해서 localRedirectContext에 할당된 메모리는 WFP에서 소유권을 가지며 프록시된 흐름이 제거되면 해제됩니다.
 

localRedirectContextSize

설명선 제공 컨텍스트 영역의 크기(바이트)입니다.

참고 Windows 8 부터 지원합니다.
 

설명

설명선 드라이버는 를 호출하여 이 구조를 가져옵니다.WritableLayerData 매개 변수를 통해 FWPS_CONNECT_REQUEST0 구조체에 대한 포인터를 반환하는 FwpsAcquireWritableLayerDataPointer0 함수입니다. classifyFn 함수는 로컬 또는 원격 전송 주소 또는 포트를 다른 주소 또는 포트로 리디렉션하는 등 연결 요청의 매개 변수를 수정할 수 있습니다. 연결 요청의 매개 변수를 수정하는 경우 classifyFn 함수는 다음을 수행해야 합니다.

  • FwpsAcquireWritableLayerDataPointer0에서 반환된 FWPS_CONNECT_REQUEST0 구조체를 모두 변경합니다. remoteAddressAndPort, portReservationToken, localRedirectTargetPID, localRedirectHandle, localRedirectContextlocalRedirectContextSize 멤버만 수정할 수 있습니다.
  • 호출설명선 드라이버가 데이터를 수정하지 않은 경우에도 modifiedLayerData 매개 변수가 FWPS_CONNECT_REQUEST0 구조체의 주소로 설정된 FwpsApplyModifiedLayerData0입니다. 이 값은 을 통해 반환 된 modifiedLayerData 매개 변수 값과 동일해야 합니다. FwpsAcquireWritableLayerDataPointer0.
이 구조체는 다른 설명선 드라이버의 모든 변경 내용에 대한 레코드를 포함하는 연결된 목록으로 작동합니다. previousVersion 멤버가 NULL이 아닌 경우 이전 버전 정보가 있습니다. 전체 버전 기록을 검사하려면 설명선 드라이버가 NULL로 설정될 때까지 목록에서 각 구조체의 previousVersion 멤버를 계속 검사해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7부터 사용할 수 있습니다.
머리글 fwpsk.h(Fwpsk.h 포함)

추가 정보

ExAllocatePoolWithTag

FWPS_FILTER1

FwpsAcquireWritableLayerDataPointer0

FwpsApplyModifiedLayerData0

FwpsRedirectHandleCreate0

SOCKADDR_STORAGE

바인딩 또는 연결 리디렉션 사용

classifyFn