次の方法で共有


2.2.91 FW_QUERY_CONDITION

This structure specifies a condition of a query. A condition can evaluate to TRUE or FALSE. It contains a match key that identifies what to match, a match value that identifies what to match with, and a match type that identifies how to match.

 typedef struct _tag_FW_QUERY_CONDITION {
   FW_MATCH_KEY matchKey;
   FW_MATCH_TYPE matchType;
   FW_MATCH_VALUE matchValue;
 } FW_QUERY_CONDITION,
  *PFW_QUERY_CONDITION;

matchKey: This field identifies what information to match.

matchType: This field identifies how to perform the match operation.

matchValue: This field identifies what to match with.

A query condition structure MUST pass the following semantics checks:

  • The matchKey field MUST have a valid FW_MATCH_KEY value that is less than FW_MATCH_KEY_MAX, MUST be a string of 1 or more characters, and MUST NOT be greater than or equal to 255 characters.

  • The matchType field MUST have a valid FW_MATCH_TYPE value that is less than FW_MATCH_KEY_MAX.

  • If the matchType field is equal to FW_MATCH_TYPE_EQUAL, the matchKey field MUST be either FW_MATCH_KEY_GROUP or FW_MATCH_KEY_DIRECTION.

  • If the matchKey field is equal to FW_MATCH_KEY_PROFILE or FW_MATCH_KEY_STATUS, the matchValue MUST have its type field equal to FW_DATA_TYPE_UINT32.

  • If the matchKey field is equal to FW_MATCH_KEY_FILTERID, the matchValue MUST have its type field equal to FW_DATA_TYPE_UINT64.

  • If the matchKey field is equal to FW_MATCH_KEY_PROTOCOL, FW_MATCH_KEY_LOCAL_PORT, or FW_MATCH_KEY_REMOTE_PORT; then the matchValue MUST have its type field equal to FW_DATA_TYPE_UINT16.

  • If the matchKey field is equal to FW_MATCH_KEY_OBJECTID, FW_MATCH_KEY_APP_PATH, FW_MATCH_KEY_GROUP, or FW_MATCH_KEY_SVC_NAME; then the matchValue MUST have its type field equal to FW_DATA_TYPE_UNICODE_STRING.