@@ -68,6 +68,10 @@ typedef PVOID (NTAPI *PUTIL_GET_JSON_OBJECT)(
68
68
_In_ PSTR Key
69
69
);
70
70
71
+ typedef INT (NTAPI * PUTIL_GET_JSON_OBJECT_LENGTH )(
72
+ _In_ PVOID Object
73
+ );
74
+
71
75
typedef BOOL (NTAPI * PUTIL_GET_JSON_OBJECT_BOOL )(
72
76
_In_ PVOID Object ,
73
77
_In_ PSTR Key
@@ -101,6 +105,16 @@ typedef PVOID (NTAPI *PUTIL_GET_JSON_OBJECT_ARRAY_INDEX)(
101
105
_In_ INT Index
102
106
);
103
107
108
+ typedef struct _JSON_ARRAY_LIST_OBJECT
109
+ {
110
+ PSTR Key ;
111
+ PVOID Entry ;
112
+ } JSON_ARRAY_LIST_OBJECT , * PJSON_ARRAY_LIST_OBJECT ;
113
+
114
+ typedef PPH_LIST (NTAPI * PUTIL_GET_JSON_OBJECT_ARRAY_LIST )(
115
+ _In_ PVOID Object
116
+ );
117
+
104
118
typedef struct _COMMONUTIL_INTERFACE
105
119
{
106
120
ULONG Version ;
@@ -115,12 +129,14 @@ typedef struct _COMMONUTIL_INTERFACE
115
129
PUTIL_GET_JSON_OBJECT_BOOL GetJsonValueAsBool ;
116
130
PUTIL_CREATE_JSON_OBJECT CreateJsonObject ;
117
131
PUTIL_GET_JSON_OBJECT GetJsonObject ;
132
+ PUTIL_GET_JSON_OBJECT_LENGTH GetJsonObjectLength ;
118
133
PUTIL_ADD_JSON_ARRAY_VALUE JsonAddObject ;
119
134
PUTIL_CREATE_JSON_ARRAY CreateJsonArray ;
120
135
PUTIL_ADD_JSON_OBJECT_VALUE JsonArrayAddObject ;
121
136
PUTIL_GET_JSON_ARRAY_STRING GetJsonArrayString ;
122
137
PUTIL_GET_JSON_ARRAY_LENGTH JsonGetArrayLength ;
123
138
PUTIL_GET_JSON_OBJECT_ARRAY_INDEX JsonGetObjectArrayIndex ;
139
+ PUTIL_GET_JSON_OBJECT_ARRAY_LIST JsonGetObjectArrayList ;
124
140
} COMMONUTIL_INTERFACE , * P_COMMONUTIL_INTERFACE ;
125
141
126
142
FORCEINLINE
@@ -400,6 +416,31 @@ JsonGetObjectArrayIndex(
400
416
return NULL ;
401
417
}
402
418
419
+ FORCEINLINE
420
+ PPH_LIST
421
+ JsonGetObjectArrayList (
422
+ _In_ PVOID Object
423
+ )
424
+ {
425
+ PPH_PLUGIN toolStatusPlugin ;
426
+
427
+ if (toolStatusPlugin = PhFindPlugin (COMMONUTIL_PLUGIN_NAME ))
428
+ {
429
+ P_COMMONUTIL_INTERFACE Interface ;
430
+
431
+ if (Interface = PhGetPluginInformation (toolStatusPlugin )-> Interface )
432
+ {
433
+ if (Interface -> Version <= COMMONUTIL_INTERFACE_VERSION )
434
+ {
435
+ return Interface -> JsonGetObjectArrayList (Object );
436
+ }
437
+ }
438
+ }
439
+
440
+ return NULL ;
441
+ }
442
+
443
+
403
444
FORCEINLINE
404
445
PVOID
405
446
CreateJsonObject (
0 commit comments