new.h

来自「一个实时的驱动支持库」· C头文件 代码 · 共 52 行

H
52
字号
/*
    This is a C++ run-time library for Windows kernel-mode drivers.
    Copyright (C) 2004 Bo Brant閚.
    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
*/

#if !defined(NEW_H)
#define NEW_H

#if DBG

void* __cdecl operator new(size_t size);
void* __cdecl operator new(size_t size, POOL_TYPE type);
void __cdecl operator delete(void* p);

#else

//
// Inline versions for free build.
//

inline void* __cdecl operator new(size_t size)
{
    return size ? ExAllocatePool(NonPagedPool, size) : 0;
}

inline void* __cdecl operator new(size_t size, POOL_TYPE type)
{
    return size ? ExAllocatePool(type, size) : 0;
}

inline void __cdecl operator delete(void* p)
{
    if (p) { ExFreePool(p); }
}

#endif

#endif // !defined(NEW_H)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?