common.h

来自「pci 底层驱动」· C头文件 代码 · 共 78 行

H
78
字号
#ifndef _COMMON_H_
#define _COMMON_H_

//Common DDK includes
extern "C"
{
#include <WDM.H>

#include <HIDPORT.H>
#include <HIDMINI.H>
}

#pragma warning( disable : 4514 ) // unreferenced inline function
#pragma warning( disable : 4512 ) // assignment operator could not be generated
#pragma warning( disable : 4127 ) // conditional expression is constant

#include "capdebug.h"

#include "address_defines.h"

typedef UCHAR BYTE;
typedef PUCHAR PBYTE;
typedef ULONG DWORD;
typedef PULONG PDWORD;

#define BIT(x) ((DWORD)1 << (x))

///////////////////////////////////////////////////////////////////////////////////
//Global operators new and delete

inline void * _cdecl operator new( size_t sz )
{
    PVOID p = ExAllocatePool( NonPagedPool, sz );
    //KdPrint((  "generic replacement new size %d got = %x\n", sz, p ) );
    if (!p)
    {
        dbgLogError(("FAIL: generic replacement new size %x\n", sz, p ) );
    }
    return p;
}

inline void _cdecl operator delete( void *p )
{
    //KdPrint(( "generic replacement delete = %x\n", p ) );
    if ( p ) {
        ExFreePool( p );
    }
    else
    {
        dbgLogError(("FAIL: generic replacement delete got NULL\n") );
    }
}
inline void * _cdecl operator new[]( size_t sz )  
{
    PVOID p = ExAllocatePool( NonPagedPool, sz );
    //KdPrint(("generic replacement new [] size %d got = %x\n", sz, p ) );
    if (!p)
    {
        dbgLogError(("FAIL: generic replacement new [] size %x\n", sz, p ) );
    }
    return p;
}

inline void _cdecl operator delete []( void *p )
{
    //dbgLogTrace(("generic replacement delete [] = %x\n", p ) );
    if(p) 
    {
        ExFreePool(p);
    }
    else
    {
        dbgLogError(("FAIL: generic replacement delete [] got NULL\n") );
    }   
} 


#endif

⌨️ 快捷键说明

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