FWPS_TRANSPORT_SEND_PARAMS0 structure (fwpsk.h)

The FWPS_TRANSPORT_SEND_PARAMS0 structure defines properties of an outbound transport layer packet.

Note  FWPS_TRANSPORT_SEND_PARAMS0 is the specific version of FWPS_TRANSPORT_SEND_PARAMS used in Windows Vista and later. See WFP Version-Independent Names and Targeting Specific Versions of Windows for more information. For Windows 7, FWPS_TRANSPORT_SEND_PARAMS1 is available.
 

Syntax

typedef struct FWPS_TRANSPORT_SEND_PARAMS0_ {
  UCHAR      *remoteAddress;
  SCOPE_ID   remoteScopeId;
  WSACMSGHDR *controlData;
  ULONG      controlDataLength;
} FWPS_TRANSPORT_SEND_PARAMS0;

Members

remoteAddress

A pointer to a buffer that specifies the remote IP address to which to send the socket. The remote address specified by this member can be different than the one passed as one of the incoming data values to the callout driver's classifyFn callout function.

The buffer can contain an IPv4 address (4 bytes) or an IPv6 address (16 bytes), and the address must be specified in network byte order. The IP version must match the AddressFamily parameter specified in the FwpsInjectTransportSendAsync0 function.

The buffer must remain valid until the injection completion function is called.

remoteScopeId

A SCOPE_ID structure that contains the scope identifier for the remote IP address. The scope identifier is provided to a callout through the remoteScopeId member of the FWPS_INCOMING_METADATA_VALUES0 structure that is passed to the callout driver's classifyFn callout function. The SCOPE_ID structure is defined in Ws2ipdef.h as follows.

typedef struct {
  union {
    struct {
      ULONG  Zone : 28;
      ULONG  Level : 4;
    };
    ULONG  Value;
  };
} SCOPE_ID, *PSCOPE_ID;

controlData

An optional pointer to a buffer that contains socket control data specified by the WSASendMsg function. For information about the WSACMSGHDR type, see CMSGHDR.

If present, socket control data is provided to a callout with the controlData member of the FWPS_INCOMING_METADATA_VALUES0 structure that is passed to the callout driver's classifyFn callout function.

If socket control data is not NULL, it must be deep-copied in the callout driver's implementation of the classifyFn function, and the controlData buffer must be kept valid until the injection completion function is called.

controlDataLength

The length, in bytes, of the controlData member.

Requirements

Requirement Value
Minimum supported client Available starting with Windows Vista.
Header fwpsk.h (include Fwpsk.h)

See also

CMSGHDR

FWPS_INCOMING_METADATA_VALUES0

FWPS_TRANSPORT_SEND_PARAMS1

FwpsInjectTransportSendAsync0

WSASendMsg

classifyFn