|
21 | 21 | #define IOCTL_BLACKBIRD_CONTROL_EXECUTION CTL_CODE(FILE_DEVICE_BLACKBIRD, 0x80A, METHOD_BUFFERED, FILE_WRITE_DATA) |
22 | 22 | #define IOCTL_BLACKBIRD_SET_RUNTIME_CONFIG CTL_CODE(FILE_DEVICE_BLACKBIRD, 0x80B, METHOD_BUFFERED, FILE_WRITE_DATA) |
23 | 23 | #define IOCTL_BLACKBIRD_GET_RUNTIME_CONFIG CTL_CODE(FILE_DEVICE_BLACKBIRD, 0x80C, METHOD_BUFFERED, FILE_READ_DATA) |
24 | | -#define IOCTL_BLACKBIRD_MARK_INTERFACE_READY CTL_CODE(FILE_DEVICE_BLACKBIRD, 0x80D, METHOD_BUFFERED, FILE_WRITE_DATA) |
25 | 24 | #define IOCTL_BLACKBIRD_MARK_CONTROLLER_READY CTL_CODE(FILE_DEVICE_BLACKBIRD, 0x80E, METHOD_BUFFERED, FILE_WRITE_DATA) |
26 | 25 |
|
27 | 26 | #define BLACKBIRD_STREAM_HANDLE 0x00000001 |
|
36 | 35 | #define BLACKBIRD_MAX_DEEP_SAMPLE_BYTES 64 |
37 | 36 | #define BLACKBIRD_MAX_STACK_SNAPSHOT_BYTES 256 |
38 | 37 | #define BLACKBIRD_MAX_FILE_PATH_CHARS 520 |
| 38 | +#define BLACKBIRD_TEMPUS_SUBSYSTEM_COUNT 14 |
39 | 39 |
|
40 | 40 | typedef enum _BLACKBIRD_EVENT_TYPE |
41 | 41 | { |
@@ -95,9 +95,7 @@ typedef struct _BLACKBIRD_SET_PIDS_REQUEST |
95 | 95 | #define BLACKBIRD_RUNTIME_FLAG_SELF_HIDE 0x00000002u |
96 | 96 | #define BLACKBIRD_RUNTIME_FLAG_INTERFACE_PROTECTED_ACCESS 0x00000004u |
97 | 97 | #define BLACKBIRD_RUNTIME_FLAG_CONTROLLER_PROTECTED_ACCESS 0x00000008u |
98 | | -#define BLACKBIRD_RUNTIME_FLAG_PROTECTED_ACCESS \ |
99 | | - (BLACKBIRD_RUNTIME_FLAG_INTERFACE_PROTECTED_ACCESS | BLACKBIRD_RUNTIME_FLAG_CONTROLLER_PROTECTED_ACCESS) |
100 | | - |
| 98 | +#define BLACKBIRD_RUNTIME_FLAG_NTAPI_HOOKS_DISARMED 0x00000010u |
101 | 99 | typedef enum _BLACKBIRD_RUNTIME_MODE |
102 | 100 | { |
103 | 101 | BLACKBIRD_RUNTIME_MODE_LOITER = 0, |
@@ -138,12 +136,6 @@ typedef struct _BLACKBIRD_CONTROL_EXECUTION_REQUEST |
138 | 136 | UINT32 Suspend; /* 1 = suspend, 0 = resume */ |
139 | 137 | } BLACKBIRD_CONTROL_EXECUTION_REQUEST, *PBLACKBIRD_CONTROL_EXECUTION_REQUEST; |
140 | 138 |
|
141 | | -typedef struct _BLACKBIRD_MARK_INTERFACE_READY_REQUEST |
142 | | -{ |
143 | | - UINT32 ProcessId; |
144 | | - UINT32 Reserved; |
145 | | -} BLACKBIRD_MARK_INTERFACE_READY_REQUEST, *PBLACKBIRD_MARK_INTERFACE_READY_REQUEST; |
146 | | - |
147 | 139 | typedef struct _BLACKBIRD_MARK_CONTROLLER_READY_REQUEST |
148 | 140 | { |
149 | 141 | UINT32 ProcessId; |
@@ -266,12 +258,42 @@ typedef struct _BLACKBIRD_EVENT_RECORD |
266 | 258 | } Data; |
267 | 259 | } BLACKBIRD_EVENT_RECORD, *PBLACKBIRD_EVENT_RECORD; |
268 | 260 |
|
| 261 | +typedef enum _BLACKBIRD_TEMPUS_SUBSYSTEM |
| 262 | +{ |
| 263 | + BlackbirdTempusSubsystemDriver = 0, |
| 264 | + BlackbirdTempusSubsystemControl = 1, |
| 265 | + BlackbirdTempusSubsystemEtw = 2, |
| 266 | + BlackbirdTempusSubsystemHandleMonitor = 3, |
| 267 | + BlackbirdTempusSubsystemThreadMonitor = 4, |
| 268 | + BlackbirdTempusSubsystemProcessMonitor = 5, |
| 269 | + BlackbirdTempusSubsystemImageMonitor = 6, |
| 270 | + BlackbirdTempusSubsystemRegistryMonitor = 7, |
| 271 | + BlackbirdTempusSubsystemFileSystemMonitor = 8, |
| 272 | + BlackbirdTempusSubsystemApcMonitor = 9, |
| 273 | + BlackbirdTempusSubsystemCorrelation = 10, |
| 274 | + BlackbirdTempusSubsystemHollowingEngine = 11, |
| 275 | + BlackbirdTempusSubsystemNtApiMonitor = 12, |
| 276 | + BlackbirdTempusSubsystemAntiTamper = 13 |
| 277 | +} BLACKBIRD_TEMPUS_SUBSYSTEM; |
| 278 | + |
| 279 | +typedef struct _BLACKBIRD_TEMPUS_BUCKET |
| 280 | +{ |
| 281 | + UINT64 SampleCount; |
| 282 | + UINT64 TotalQpc; |
| 283 | + UINT64 MaxQpc; |
| 284 | + UINT64 LastQpc; |
| 285 | +} BLACKBIRD_TEMPUS_BUCKET, *PBLACKBIRD_TEMPUS_BUCKET; |
| 286 | + |
269 | 287 | typedef struct _BLACKBIRD_STATS_RESPONSE |
270 | 288 | { |
271 | 289 | UINT32 SubscriptionCount; |
272 | 290 | UINT32 QueueDepth; |
273 | 291 | UINT32 DroppedEvents; |
| 292 | + UINT32 TempusEnabled; |
| 293 | + UINT64 TempusQpcFrequency; |
| 294 | + UINT32 TempusSubsystemCount; |
274 | 295 | UINT32 Reserved; |
| 296 | + BLACKBIRD_TEMPUS_BUCKET Tempus[BLACKBIRD_TEMPUS_SUBSYSTEM_COUNT]; |
275 | 297 | } BLACKBIRD_STATS_RESPONSE, *PBLACKBIRD_STATS_RESPONSE; |
276 | 298 |
|
277 | 299 | typedef struct _BLACKBIRD_HEALTH_RESPONSE |
|
0 commit comments