
Windows System Programming
ShineSpark
这个作者很懒,什么都没留下…
展开
-
进程间通信——匿名管道(也可称 异步管道)
<br />匿名管道概述<br />既然是匿名管道的话,自然,就是没有名字的管道了,还有一种管道呢,叫做命名管道,<br />命名管道的功能是很强大的,匿名管道在命名管道面前,功能那是简陋的不行的,<br />至于命名管道的话,会留到下一篇博文中介绍的,<br />匿名管道正因为提供的功能很单一,所以它所需要的系统的开销也就比命名管道小很多,<br />在本地机器上可以使用匿名管道来实现父进程和子进程之间的通信,<br />这里需要注意两点,第一就是在本地机器上,这是因为匿名管道不支持跨网络之间的两个进程之原创 2011-01-05 13:36:00 · 5187 阅读 · 0 评论 -
利用匿名管道实现CMD回显
<br />SECURITY_ATTRIBUTES sa;<br /> HANDLE hRead,hWrite;<br /> <br /> sa.nLength = sizeof(SECURITY_ATTRIBUTES); <br /> sa.lpSecurityDescriptor = NULL; //使用系统默认的安全描述符 <br /> sa.bInheritHandle = TRUE; //创建的进程继承句柄<br /> if (!CreatePipe(&hRead,&hWrite,&sa,原创 2011-01-11 11:10:00 · 6470 阅读 · 0 评论 -
关于CreateProcess的问题
<br />这两天一直在搞cmd回显的问题,虽然已经搞定,但还是存在一些问题,这就是CreateProcess的问题<br />首先问题描述:<br />CreateProcess这个函数非常熟悉,再熟悉不过了 创建进程 具体说明如下:<br />BOOL CreateProcess( <br /> LPCWSTR pszImageName, <br /> LPCWSTR pszCmdLine, <br /> LPSECURITY_ATTRIBUTES psaProcess, <br /> LPSE原创 2011-01-12 00:38:00 · 6398 阅读 · 4 评论 -
WM消息详解
<br /><br />WM_NULL = $0000;<br />WM_CREATE = $0001;应用程序创建一个窗口<br />WM_DESTROY = $0002;一个窗口被销毁<br />WM_MOVE = $0003;移动一个窗口<br />WM_SIZE = $0005;改变一个窗口的大小<br />WM_ACTIVATE = $0006;一个窗口被激活或失去激活状态;<br />WM_SETFOCUS = $0007;获得焦点后<br />WM_KILLFOCUS = $0008;失去焦点转载 2011-02-14 16:52:00 · 5564 阅读 · 1 评论 -
解开 Windows 下的临界区中的代码死锁
show toc欢迎来到 MSDN解开 Windows 下的临界区中的代码死锁发布日期: 1/13/2005 | 更新日期: 1/13/2005Matt Pietrek和Russ Osterlund本文假定您熟悉 Win32、C++ 和多线程处理。下载本文的代码:CriticalSections.exe (415KB)摘要临界区是转载 2012-02-11 16:01:10 · 1412 阅读 · 0 评论 -
获取网卡地址
//可把以下定义UNICODE的宏注释掉 #ifndef UNICODE #define UNICODE #endif #ifdef UNICODE #ifndef _UNICODE #define _UNICODE #endif #endif #include #include #include #include #i原创 2012-11-28 13:39:44 · 2279 阅读 · 0 评论 -
WSAGetLastError()部分常见返回值
10004 —WSAEINTR函数调用中断。该错误表明由于对W S A C a n c e l B l o c k i n g C a l l的调用,造成了一次调用被强行中断。10009 —WSAEBADF文件句柄错误。该错误表明提供的文件句柄无效。在Microsoft Windows CE 下,s o c k e t函数可能返回这个错误,表明共享串口处于“忙”状态。10013转载 2012-12-06 17:34:43 · 27260 阅读 · 0 评论