示例#1
0
STDCALL void
 ExInitializeNPagedLookasideList(struct npaged_lookaside_list *lookaside,
				 LOOKASIDE_ALLOC_FUNC *alloc_func,
				 LOOKASIDE_FREE_FUNC *free_func,
				 unsigned long flags, unsigned long size,
				 unsigned long tag, unsigned short depth)
{
	DBGTRACE("%s: Entry, lookaside: %p, size: %lu, flags: %lu,"
		 " head: %p, size of lookaside: %u\n",
		 __FUNCTION__, lookaside, size, flags,
		 lookaside->head.list.next, sizeof(struct npaged_lookaside_list));

	memset(lookaside, 0, sizeof(*lookaside));

	lookaside->size = size;
	lookaside->tag = tag;
	lookaside->depth = 4;
	lookaside->maxdepth = 256;

	if (alloc_func)
		lookaside->alloc_func = alloc_func;
	else
		lookaside->alloc_func = lookaside_def_alloc_func;
	if (free_func)
		lookaside->free_func = free_func;
	else
		lookaside->free_func = lookaside_def_free_func;

	KeInitializeSpinLock(&lookaside->obsolete);
	DBGTRACE("%s: Exit\n", __FUNCTION__);
	return ;
}
示例#2
0
STDCALL int RtlUnicodeStringToAnsiString(struct ustring *dst, struct ustring *src, unsigned int dup)
{
	int i, *s;

	DBGTRACE("%s dup: %d src->len: %d dst: %p", __FUNCTION__, dup, src->len, dst);
	if(dup)
	{
		char *buf = kmalloc(src->buflen, GFP_KERNEL);
		if(!buf)
			return NDIS_STATUS_FAILURE;
		dst->buf = buf;
		dst->len = 0;
		dst->buflen = src->buflen;
	}

	s = (int*) src->buf;
	for(i = 0; i < src->len; i++)
	{
		dst->buf[i] = s[i];
	}
	dst->len = i;
	dst->buf[i] = 0;
	DBGTRACE(" buf: %s\n", dst->buf);
	return NDIS_STATUS_SUCCESS;
}
示例#3
0
	void Test()
	{
	
		DBGTRACE(_T("--------------------------------------------------"));

		Variant _int(99);
		DBGTRACE(_T("%s : %d"), _int.GetString().c_str(), _int.GetInt());
		
		Variant _float(1.5f);
		DBGTRACE(_T("%s : %f"), _float.GetString().c_str(), _float.GetFloat());

		Variant _bool(true);
		DBGTRACE(_T("%s : %d"), _bool.GetString().c_str(), _bool.GetBool());
	}
示例#4
0
STDCALL void
ExDeleteNPagedLookasideList(struct npaged_lookaside_list *lookaside)
{
	struct slist_entry *entry, *p;
	
	DBGTRACE("%s: Entry, lookaside = %p\n", __FUNCTION__, lookaside);
	entry = lookaside->head.list.next;
	while (entry)
	{
		p = entry;
		entry = entry->next;
		lookaside->free_func(p);
	}
	DBGTRACE("%s: Exit\n", __FUNCTION__);
}
示例#5
0
文件: mcache.c 项目: deadcafe/JohnDoe
static inline void
unmap_chunk(struct mc_chunk *chunk)
{
	DBGTRACE("%s(%d): unmap cache:%p chunk:%p\n",
		 __func__, __LINE__, chunk->cache, chunk);
	munmap(chunk, chunk->size);
}
示例#6
0
STDCALL int RtlAnsiStringToUnicodeString(struct ustring *dst, struct ustring *src, unsigned int dup)
{
	int i, *d;

	DBGTRACE("%s: dup: %d src: %s\n", __FUNCTION__, dup, src->buf);
	if(dup)
	{
		char *buf = kmalloc((src->buflen+1) * 2, GFP_KERNEL);
		if(!buf)
			return NDIS_STATUS_FAILURE;
		dst->buf = buf;
		dst->buflen = (src->buflen+1) * 2;
	}

	d = (int*) dst->buf;
	for(i = 0; i < src->len; i++)
	{
		d[i] = src->buf[i];
	}
	d[i] = 0;
	
	dst->len = i*2;
	
	return NDIS_STATUS_SUCCESS;
}
示例#7
0
void proxy_handoff_chain(buf_t **in, proxy_t *p) {
    DBGTRACE();
    req_t *parent;
    parent = p->parent;
    req_handoff_proxy_chain(parent, p, *in);
    *in = NULL;
}
示例#8
0
	void Test()
	{
		DBGTRACE(_T("--------------------------------------------------"));

		Hoge hoge1;
//		Hoge hoge2(hoge1);	// NG!
	}
示例#9
0
void send_dummy_request(conn_t *c) {
    DBGTRACE();
    buf_t *b;
    int len = strlen(dummy_req);
    b = buf_new_shadow(dummy_req, dummy_req + len);
    conn_write_chain(c, b);
}
示例#10
0
文件: flukeslave.cpp 项目: axet/fluke
void CFlukeSlave::Create(HMODULE h)
{
  DBGTRACE("FlukeInit(%08x)\n",h);
  if(h==0)
    h=GetCurrentModuleHandle();
  flukeslave(h);
}
示例#11
0
void proxy_connect_handler(conn_t *c, void *data) {
    DBGTRACE();
    proxy_t *p = c->data;
    proxy_send_request(p);
    c->read_close_handler = proxy_read_close_handler;
    c->write_handler = NULL;
    conn_read(c, proxy_read_handler);
}
示例#12
0
void proxy_read_close_handler(conn_t *c, void *data) {
    DBGTRACE();
    proxy_t *p = c->data;
    proxy_close(p);
    conn_read_done(c);
    c->read_close_handler = NULL;
    c->close_connection = 1;
}
示例#13
0
STDCALL int KeCancelTimer(struct ktimer *ktimer)
{
	char canceled;

	DBGTRACE("%s(entry): %p\n", __FUNCTION__, ktimer);
	wrapper_cancel_timer(ktimer->wrapper_timer, &canceled);
	return canceled;
}
示例#14
0
文件: body.cpp 项目: axet/fluke
void CBody::GetBody(const char* dllname)
{
  DBGTRACE("before make body\n");
  int start1,end1;
  GetLibraryBody(&start1,&end1);
  DBGTRACE("maked code %d\n",end1-start1);

  const unsigned char* start;
  int size;
  GetLoadLibraryA(&start,&size);

  m_body.clear();
  m_body.insert(m_body.end(),start,start+size);
  m_body.insert(m_body.end(),reinterpret_cast<const unsigned char*>(dllname),reinterpret_cast<const unsigned char*>(strchr(dllname,0)+1));

  DBGTRACE("maked total %d\n",m_body.size());
}
示例#15
0
/*
 * 
 *
 * Called from the driver entry.
 */
STDCALL void NdisInitializeWrapper(struct ndis_handle **ndis_handle,
	                           void *SystemSpecific1,
				   void *SystemSpecific2,
				   void *SystemSpecific3)
{
	DBGTRACE("%s handle=%08x, SS1=%08x, SS2=%08x\n", __FUNCTION__, (int)ndis_handle, (int)SystemSpecific1, (int)SystemSpecific2);
	*ndis_handle = (struct ndis_handle*) SystemSpecific1;
}
示例#16
0
STDCALL void NdisOpenConfiguration(unsigned int *status,
	                           void **confhandle,
				   struct ndis_handle *handle)
{
	DBGTRACE("%s: Handle: %08x\n", __FUNCTION__, (int) handle);
	*confhandle = (void*) handle;
	*status = NDIS_STATUS_SUCCESS;
}
示例#17
0
void proxy_close(proxy_t *p) {
    DBGTRACE();
    req_t *parent;
    parent = p->parent;
    debug("[%s] p: %p, parent: %p\n", __FUNCTION__, p, parent);
    proxy_handoff_chain(&p->conn->in, p);
    req_proxy_finished(parent, p);
}
示例#18
0
文件: flukeslave.cpp 项目: axet/fluke
void CFlukeSlave::flukeslave(HMODULE hmod)
{
  DBGTRACE("CFlukeSlave::flukeslave\n");
  CSyncClient sync1("IOFlukeApp",GetCurrentThreadId());
  DBGTRACE("sync1.IsExist()==%s\n",sync1.IsExist()?"true":"false");
  if(!sync1.IsExist())
    return;

  char name[MAX_PATH];
  DWORD sname=GetModuleFileName(hmod,name,sizeof(name));
  if(sname==0||(sname==sizeof(name)))
    throw FlukeException("Path Test");
  DBGTRACE("LoadLibrary(%s)\n",name);
  m_library=LoadLibrary(name);

  CSyncServer sync2("IOFlukeDll",GetCurrentThreadId());

  DBGTRACE("sync1.RunClient()\n",hmod);
  sync1.RunClient();

  DBGTRACE("sync2.WaitClient()\n",hmod);
  sync2.WaitClient();

  std::ostringstream str;
  str<<g_flukeslaveready<<GetCurrentThreadId();
  DBGTRACE("m_globalpass: %s\n",str.str().c_str());
  m_globalpass=CreateMutex(0,TRUE,str.str().c_str());

  DBGTRACE("InitInstance(%08x)\n",hmod);
  FlukeInit(hmod);
}
示例#19
0
STDCALL void KeAcquireSpinLock(KSPIN_LOCK *lock, KIRQL *irql)
{
	DBGTRACE("%s: lock = %p, *lock = %p\n", __FUNCTION__, lock, (void *)*lock);
	if (lock && *lock)
		spin_lock((spinlock_t *)(*lock));
	else
		printk(KERN_ERR "%s: lock %p is not initialized?\n",
			   __FUNCTION__, lock);
}
示例#20
0
	void Test()
	{
		DBGTRACE(_T("--------------------------------------------------"));

		Properties props;

		props.AddProperty(_T("hoge"), 0);
		props.AddProperty(_T("fuga"), 1);
		
		props[_T("piyo")].SetString(_T("piyopiyo"));

		Variant* hoge = props.GetProperty(_T("hoge"));
		DBGTRACE(_T("hoge=%d"), hoge->GetInt());

		Variant* fuga = props.GetProperty(_T("fuga"));
		DBGTRACE(_T("fuga=%d"), fuga->GetInt());

		DBGTRACE(_T("piyo=%s"), props[_T("piyo")].GetString().c_str());
	}
示例#21
0
STDCALL int IoIsWdmVersionAvailable(unsigned char major, unsigned char minor)
{
	DBGTRACE("%s: %d, %d\n", __FUNCTION__, major, minor);
	if (major == 1 &&
	    (minor == 0x30 || // Windows 2003
	     minor == 0x20 || // Windows XP
	     minor == 0x10)) // Windows 2000
		return 1;
	return 0;
}
示例#22
0
	void Test()
	{
		DBGTRACE(_T("--------------------------------------------------"));

		MyThread my1, my2;

		my1.Start();
		Sleep(10);
		my2.Start();
		if (!my2.Start()) { DBGTRACE(_T("failed.")); }

		while (!my1.IsEnd() || !my2.IsEnd()) {
			Sleep(10);
		}

		//my1.Start();
		//while (!my1.IsEnd()) {
		//	Sleep(10);
		//}
	}
示例#23
0
_FASTCALL struct slist_entry *
ExInterlockedPushEntrySList(int dummy, 
			    struct slist_entry *entry,union slist_head *head,
			    KSPIN_LOCK *lock)
{
	struct slist_entry *oldhead;
	KIRQL irql;

	DBGTRACE("%s Entry: head = %p, entry = %p\n", __FUNCTION__, head, entry);

//	__asm__ __volatile__ ("" : "=c" (head), "=d" (entry));

	KeAcquireSpinLock(lock, &irql);
	oldhead = head->list.next;
	entry->next = head->list.next;
	head->list.next = entry;
	KeReleaseSpinLock(lock, &irql);
	DBGTRACE("%s exit head = %p, oldhead = %p\n", __FUNCTION__, head, oldhead);
	return(oldhead);
}
示例#24
0
STDCALL void KeInitializeSpinLock(KSPIN_LOCK *lock)
{
	spinlock_t *spin_lock;

	DBGTRACE("%s: lock = %p, *lock = %p\n", __FUNCTION__, lock, *lock);

	if (!lock)
		printk(KERN_ERR "%s: lock %p is not valid pointer?\n",
			   __FUNCTION__, lock);
	spin_lock = wrap_kmalloc(sizeof(spinlock_t), GFP_KERNEL);
	if (!spin_lock)
		printk(KERN_ERR "%s: couldn't allocate space for spinlock\n",
			   __FUNCTION__);
	else
	{
		DBGTRACE("%s: allocated spinlock %p\n", __FUNCTION__, spin_lock);
		spin_lock_init(spin_lock);
		*lock = (KSPIN_LOCK)spin_lock;
	}
}
示例#25
0
	void Test()
	{
		DBGTRACE(_T("--------------------------------------------------"));
		Fuga fuga;
		Piyo piyo;

		Hoge* pHogeFuga = up_cast<Hoge*>(&fuga);
		Hoge* pHogePiyo = up_cast<Hoge*>(&piyo);

		Fuga* pFugaFuga = down_cast<Fuga*>(pHogeFuga);	// OK
		//Fuga* pFugaPiyo = down_cast<Fuga*>(pHogePiyo);	// NG
	}
示例#26
0
STDCALL void *MmMapIoSpace(__s64 phys_addr,
			   unsigned long size, int cache)
{
	void *virt;
	if (cache)
		virt = ioremap(phys_addr, size);
	else
		virt = ioremap_nocache(phys_addr, size);
	DBGTRACE("%s: %Lx, %lu, %d: %p\n",
		 __FUNCTION__, phys_addr, size, cache, virt);
	return virt;
}
示例#27
0
int IterativeServer::callIOhandler(int socket, fd_set &master_fds, IOHS &handlers, 
                                   fd_set &master_fds2, fd_set &master_fds3)
{
DBGTRACE();
    IOHS::iterator ioit = handlers.find(socket);
    if (ioit == handlers.end())
    {
DBGTRACE();
        return(0);
    }

    UseCntPtr<EndPoint> pendpoint = ioit->second.first;
    UseCntPtr<BaseIOHandler> phandler = ioit->second.second;

DBGTRACE();
    int status = phandler->handler(pendpoint);
DBGPRINTF("callIOHandler: status = %d\n", status);
    if (status > 0)
    {
DBGTRACE();
        // success and done with this server
        cleanup(socket, master_fds, master_fds2, master_fds3, pendpoint);
    }
    else if (status < 0)
    {
DBGTRACE();
        // some type of error. for now, close endpoint
        cleanup(socket, master_fds, master_fds2, master_fds3, pendpoint);
    }
DBGTRACE();
    return(status);
}
示例#28
0
_FASTCALL struct slist_entry *
ExInterlockedPopEntrySList(int dummy, KSPIN_LOCK *lock,union slist_head *head)
{
	struct slist_entry *first;
	KIRQL irql;
	
	DBGTRACE("%s: head = %p\n", __FUNCTION__, head);
//	__asm__ __volatile__ ("" : "=c" (head));
	KeAcquireSpinLock(lock, &irql);
	first = NULL;
	if (head)
	{
		first = head->list.next;
		if (first)
		{
			head->list.next = first->next;
		}
	}
	KeReleaseSpinLock(lock, &irql);
	DBGTRACE("%s: Exit, returning %p\n", __FUNCTION__, first);
	return first;
}
示例#29
0
文件: mcache.c 项目: deadcafe/JohnDoe
static inline void
link_cache(struct mcache *parent,
	   struct mcache *cache)
{
	if (parent) {
		DBGTRACE("%s(%d): cache:%p %s\n",
			 __func__, __LINE__, cache, cache->name);

		TAILQ_INSERT_TAIL(&parent->childs, cache, node);
		parent->child_num++;
		cache->parent = parent;
	}
}
示例#30
0
/*
 * Register a miniport with NDIS. 
 *
 * Called from driver entry
 */
STDCALL int NdisMRegisterMiniport(struct ndis_driver *ndis_driver,
	                          struct miniport_char *miniport_char,
	                          unsigned int char_len)
{
	DBGTRACE("%s driver: %08x\n", __FUNCTION__, (int)ndis_driver);

	if(miniport_char->majorVersion < 4)
	{
		return NDIS_STATUS_BAD_VERSION;
	}

	if(char_len < sizeof(struct miniport_char))
	{
		return NDIS_STATUS_BAD_CHAR;
	}

	printk(KERN_INFO "Version %d.%d\n", miniport_char->majorVersion, miniport_char->minorVersion);
	DBGTRACE("Len: %08x:%08x\n", char_len, sizeof(struct miniport_char));
	memcpy(&ndis_driver->miniport_char, miniport_char, sizeof(struct miniport_char));

	return NDIS_STATUS_SUCCESS;
}