Bitdefender Hypervisor Memory Introspection
udlist.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020 Bitdefender
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 #ifndef _UDLIST_H_
6 #define _UDLIST_H_
7 
8 #include "introtypes.h"
9 
10 
14 typedef struct _INFO_UD_PENDING
15 {
21 
22 
23 //
24 // API.
25 //
28  _In_ const QWORD Cr3,
29  _In_ const QWORD Rip,
30  _In_ const QWORD Thread,
31  _Out_ INFO_UD_PENDING **CurrentPendingUD
32  );
33 
34 void
36  _Inout_ INFO_UD_PENDING **InfoUD
37  );
38 
39 void
41  _In_ const QWORD Cr3
42  );
43 
46  _In_ const QWORD Cr3,
47  _In_ const QWORD Rip,
48  _In_ const QWORD Thread
49  );
50 
51 #endif // _UDLIST_H_
#define _Out_
Definition: intro_sal.h:22
#define _In_
Definition: intro_sal.h:21
QWORD Cr3
Target virtual address space.
Definition: udlist.h:17
struct _INFO_UD_PENDING INFO_UD_PENDING
INFO_UD_PENDING * IntUDGetEntry(const QWORD Cr3, const QWORD Rip, const QWORD Thread)
Get a UD entry for the provided Cr3, Rip and Thread ID.
Definition: udlist.c:150
int INTSTATUS
The status data type.
Definition: introstatus.h:24
void IntUDRemoveAllEntriesForCr3(const QWORD Cr3)
Remove all pending UD entries for a given virtual address space.
Definition: udlist.c:116
QWORD Thread
Software thread ID.
Definition: udlist.h:19
#define _Inout_
Definition: intro_sal.h:20
unsigned long long QWORD
Definition: intro_types.h:53
LIST_ENTRY Link
List entry element.
Definition: udlist.h:16
void IntUDRemoveEntry(INFO_UD_PENDING **InfoUD)
Remove a pending UD entry.
Definition: udlist.c:96
INTSTATUS IntUDAddToPendingList(const QWORD Cr3, const QWORD Rip, const QWORD Thread, INFO_UD_PENDING **CurrentPendingUD)
Add a new UD to the list of pending injections.
Definition: udlist.c:30
struct _INFO_UD_PENDING * PINFO_UD_PENDING
QWORD Rip
The Rip.
Definition: udlist.h:18