Мне интересно, если эта структура c, которую я перевел на Delphi, неверна, и если неверна, как она может быть переведена правильно?Поскольку объединение является средней структурой, кажется, что преобразовать это не так просто.Любая помощь будет высоко ценится
typedef struct FWPM_FILTER0_ {
GUID filterKey;
FWPM_DISPLAY_DATA0 displayData;
UINT32 flags;
GUID *providerKey;
FWP_BYTE_BLOB providerData;
GUID layerKey;
GUID subLayerKey;
FWP_VALUE0 weight;
UINT32 numFilterConditions;
FWPM_FILTER_CONDITION0 *filterCondition;
FWPM_ACTION0 action;
union {
UINT64 rawContext;
GUID providerContextKey;
};
GUID *reserved;
UINT64 filterId;
FWP_VALUE0 effectiveWeight;
} FWPM_FILTER0;
type
FWPM_FILTER0 = record
filterKey: TGUID;
displayData: FWPM_DISPLAY_DATA0;
flags: UINT32;
providerKey: PGUID;
providerData: FWP_BYTE_BLOB;
layerKey: TGUID;
subLayerKey: TGUID;
weight: FWP_VALUE0;
numFilterConditions: UINT32;
filterCondition: PFWPM_FILTER_CONDITION0;
action: FWPM_ACTION0;
case Integer of
0: (rawContext: UINT64);
1: (providerContextKey: TGUID;
reserved: PGUID;
filterId: UINT64;
effectiveWeight: FWP_VALUE0);
end;