Bitdefender Hypervisor Memory Introspection
_KERNEL_DRIVER Struct Reference

Describes a kernel driver. More...

#include <drivers.h>

Data Fields

LIST_ENTRY Link
 Entry inside the gKernelDrivers list. More...
 
QWORD ObjectGva
 The guest virtual address at which this object resides. More...
 
QWORD BaseVa
 The guest virtual address of the kernel module that owns this driver object. More...
 
QWORD Size
 The size of the kernel module that owns this driver object. More...
 
QWORD EntryPoint
 The entry point of this driver. More...
 
QWORD ProtectionFlag
 The introcore option that decided that this driver must be protected. More...
 
void * Name
 The name of the driver. More...
 
SIZE_T NameLength
 The length of the Name. This is the number of characters in the Name buffer. More...
 
DWORD NameHash
 The hash of the name. More...
 
void * HookObject
 The hook object used to protect this driver. NULL if the driver is not protected. More...
 
BOOLEAN Protected
 True if the driver is protected, False if it is not. More...
 
union {
   WIN_KERNEL_DRIVER   Win
 Valid only for Windows guests. More...
 
   LIX_KERNEL_MODULE   Lix
 Valid only for Linux guests. More...
 
}; 
 OS-specific information. More...
 

Detailed Description

Describes a kernel driver.

This structure contains information that is common for both Windows and Linux kernels, with the OS-specific parts being saved in the Win or Lix fields.

Definition at line 30 of file drivers.h.

Field Documentation

◆ @25

union { ... }

OS-specific information.

◆ BaseVa

◆ EntryPoint

◆ HookObject

void* _KERNEL_DRIVER::HookObject

The hook object used to protect this driver. NULL if the driver is not protected.

Definition at line 62 of file drivers.h.

Referenced by IntLixHookKernelWrite(), IntLixUnhookKernelWrite(), IntWinDrvHeadersInMemory(), and IntWinProtectReadNtEat().

◆ Link

LIST_ENTRY _KERNEL_DRIVER::Link

Entry inside the gKernelDrivers list.

Definition at line 33 of file drivers.h.

Referenced by IntLixDrvCreateFromAddress(), IntLixDrvCreateKernel(), and IntWinDrvCreateFromAddress().

◆ Lix

◆ Name

◆ NameHash

◆ NameLength

SIZE_T _KERNEL_DRIVER::NameLength

The length of the Name. This is the number of characters in the Name buffer.

Definition at line 56 of file drivers.h.

Referenced by IntExceptKernelLogLinuxInformation(), IntLixDrvCreateDriverObject(), IntLixDrvCreateKernel(), IntVeInit(), and IntWinDrvCreateFromAddress().

◆ ObjectGva

QWORD _KERNEL_DRIVER::ObjectGva

The guest virtual address at which this object resides.

For windows guests this is the address of the _DRIVER_OBJECT structure, for Linux guests this is the address of the 'struct module' structure.

Definition at line 39 of file drivers.h.

Referenced by IntLixDrvCreateDriverObject(), IntLixDrvCreateFromAddress(), and IntSerializeKernelDriver().

◆ Protected

BOOLEAN _KERNEL_DRIVER::Protected

True if the driver is protected, False if it is not.

Definition at line 65 of file drivers.h.

Referenced by IntLixHookKernelRead(), IntLixHookKernelWrite(), IntLixUnhookKernelRead(), IntLixUnhookKernelWrite(), IntVeInit(), IntVeUnInit(), and IntWinDrvHeadersInMemory().

◆ ProtectionFlag

QWORD _KERNEL_DRIVER::ProtectionFlag

◆ Size

◆ Win


The documentation for this struct was generated from the following file: