I find the defination of CHECKPOINT #define CHECKPOINT do { DbgPrint("%s:%d\n",__FILE__,__LINE__); ExAllocatePool(NonPagedPool,0); } while(0); I don't know why alloc memory with 0 byte