2.2.92 FW_QUERY_CONDITIONS

This structure is used to contain a number of FW_QUERY_CONDITION elements. This structure can evaluate to either TRUE or FALSE. It evaluates to TRUE if all query condition elements evaluate to TRUE; otherwise, it evaluates to FALSE.

 typedef struct _tag_FW_QUERY_CONDITIONS {
   unsigned LONG dwNumEntries;
   [size_is(dwNumEntries)] FW_QUERY_CONDITION* pAndedConditions;
 } FW_QUERY_CONDITIONS,
  *PFW_QUERY_CONDITIONS;

dwNumEntries: Specifies the number of query conditions that the structure contains.

pAndedConditions: A pointer to an array of FW_QUERY_CONDITIONS elements, which are all logically AND'd together. The number of elements is given by dwNumEntries.

A query condition structure MUST pass the following semantic checks:

  • If the dwNumEntries field is zero, the AndedConditions field MUST be NULL; and if the dwNumEntries field is not zero, the AndedConditions field MUST NOT be NULL.

  • If the AndedConditions field array has a FW_QUERY_CONDITION element with the matchKey field equal to FW_MATCH_KEY_LOCAL_PORT or FW_MATCH_KEY_REMOTE_PORT at position N of the array, the array MUST have another element whose matchKey field is equal to FW_MATCH_KEY_PROTOCOL at position M, where M < N.

  • All elements of the AndedConditions array MUST have valid FW_QUERY_CONDITION structures.