kvm-guest-drivers-windows

Форк
0
68 строк · 1.4 Кб
1
#include "baseobj.h"
2
#include "viogpu.h"
3

4
_When_((PoolType & NonPagedPoolMustSucceed) != 0,
5
    __drv_reportError("Must succeed pool allocations are forbidden. "
6
        "Allocation failures cause a system crash"))
7
    void* __cdecl operator new(size_t Size, POOL_TYPE PoolType)
8
{
9
    Size = (Size != 0) ? Size : 1;
10

11
    void* pObject = ExAllocatePoolUninitialized(PoolType, Size, VIOGPUTAG);
12

13
    if (pObject != NULL)
14
    {
15
#if DBG
16
        RtlFillMemory(pObject, Size, 0xCD);
17
#else
18
        RtlZeroMemory(pObject, Size);
19
#endif // DBG
20
    }
21
    return pObject;
22
}
23

24
_When_((PoolType & NonPagedPoolMustSucceed) != 0,
25
    __drv_reportError("Must succeed pool allocations are forbidden. "
26
        "Allocation failures cause a system crash"))
27
    void* __cdecl operator new[](size_t Size, POOL_TYPE PoolType)
28
{
29

30
    Size = (Size != 0) ? Size : 1;
31

32
    void* pObject = ExAllocatePoolUninitialized(PoolType, Size, VIOGPUTAG);
33

34
    if (pObject != NULL)
35
    {
36
#if DBG
37
        RtlFillMemory(pObject, Size, 0xCD);
38
#else
39
        RtlZeroMemory(pObject, Size);
40
#endif
41
    }
42
    return pObject;
43
}
44

45
void __cdecl operator delete(void* pObject)
46
{
47

48
    if (pObject != NULL)
49
    {
50
        ExFreePoolWithTag(pObject, VIOGPUTAG);
51
    }
52
}
53

54
void __cdecl operator delete[](void* pObject)
55
{
56

57
    if (pObject != NULL)
58
    {
59
        ExFreePoolWithTag(pObject, VIOGPUTAG);
60
    }
61
}
62

63
void __cdecl operator delete(void *pObject, size_t Size)
64
{
65

66
    UNREFERENCED_PARAMETER(Size);
67
    ::operator delete (pObject);
68
}
69

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.