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.