Windows API——进程和线程函数

CancelWaitableTimer
  功能:这个函数用于取消一个可以等待下去的计时器操作。计时器保持它当前的状态,而且除非用SetWaitableTimer函数明确启动,否则它不会重新启动
  返回值:非零表示成功,零表示失败。会设置GetLastError
  注意:适用Windows NT平台

CallNamedPipe
  功能:这个函数由一个希望通过管道通信的一个客户进程调用
  返回值:非零表示成功,零表示失败。会设置GetLastError

ConnectNamedPipe
  功能:指示一台服务器等待下去,直至客户机同一个命名管道连接
  返回值:lpOverlapped为NULL,那:
  如管道已连接,就返回Ture(非零);
  如发生错误,或者管道已经连接,就返回零(GetLastError此时会返回ERROR_PIPE_CONNECTED)
  lpOverlapped有效,就返回零;
  如管道已经连接,GetLastError会返回ERROR_PIPE_CONNECTED;
  如重叠操作成功完成,就返回ERROR_IO_PENDING。
  在这两种情况下,倘若一个客户已关闭了管道,且服务器尚未用DisconnectNamedPipe函数同客户断开连接,那么GetLastError都会返回ERROR_NO_DATA

CreateEvent
  功能:创建一个事件对象
  返回值:执行成功,返回事件对象句柄;零表示出错。会设置GetLastError。即使返回一个有效的句柄,但同时指出指定的名字已经存在,GetLastError也会设为ERROR_ALREADY_EXISTS

CreateMailslot
  功能:创建一个邮路。返回的句柄由邮路服务器使用(收件人)
  返回值:执行成功,返回邮路的句柄;INVALID_HANDLE_VALUE表示失败。会设置GetLastError

CreateMutex
  功能:创建一个互斥体(MUTEX)
  返回值:执行成功,就返回互斥体对象的句柄;零表示出错。会设置GetLastError。即使返回的是一个有效句柄,但倘若指定的名字已经存在,GetLastError也会设为ERROR_ALREADY_EXISTS

CreateNamedPipe
  功能:创建一个命名管道。返回的句柄由管道的服务器端使用
  返回值:执行成功,返回管道的句柄。INVALID_HANDLE_VALUE表示失败。会设置GetLastError

CreatePipe
  功能:创建一个匿名管道
  返回值:非零表示成功,零表示失败。会设置GetLastError
  注意:匿名管道不允许异步操作,所以如在一个管道中写入数据,且缓冲区已满,那么除非另一个进程从管道中读出数据,从而腾出了缓冲区的空间,否则写入函数不会返回

CreateProcess
  功能:创建一个新进程(比如执行一个程序)
  返回值:非零表示成功,零表示失败。会设置GetLastError

CreateSemaphore
  功能:创建一个新的信号机
  返回值:执行成功,返回信号机对象的句柄;零表示出错。会设置GetLastError。即使返回一个有效的句柄,但倘若它指出同名的一个信号机已经存在,那么GetLastError也会返回ERROR_ALREADY_EXISTS

CreateWaitableTimer
  功能:创建一个可等待的计时器对象
  返回值:执行成功,返回可等待计时器对象的句柄;零表示出错。会设置GetLastError。即使返回一个有效的句柄,但倘若它指出同名的一个计时器对象已经存在,那么GetLastError也会返回ERROR_ALREADY_EXISTS

DisconnectNamedPipe
  功能:断开一个客户与一个命名管道的连接
  返回值:非零表示成功,零表示失败。会设置GetLastError

DuplicateHandle
  功能:在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄。当前句柄可能位于一个不同的进程
  返回值:非零表示成功,零表示失败。会设置GetLastError
  注意:在一个进程中,这个函数可根据位于不同进程内的现有句柄创建一个新句柄。可以从这两个进程中发出对这个函数的调用。进程必须提供PROCESS_DUP_HANDLE访问权限,否则函数执行不能成功
句柄可以重复的对象包括控制台、文件(包括通信设备)、文件映射、事件、可等待计时器、互斥体、管道、进程、注册表项、信号机以及线程

ExitProcess
  功能:中止一个进程
  返回值:
  注意:在VB中使用应尽量避免用该函数来关闭进程。不要在自己的VB程序中使用它。此时,应试着向要关闭的那个程序的主窗口投递一条WM_CLOSE消息

FindCloseChangeNotification
  功能:关闭一个改动通知对象
  返回值:非零表示成功,零表示失败。会设置GetLastError

FindExecutable
  功能:查找与一个指定文件关联在一起的程序的文件名。可用Windows注册表编辑器将文件类型与特定的应用程序关联到一起。比如,扩展名为.TXT的文本文件通常与Windows记事本(Notepad.exe)关联到一起。如在文件管理器中双击含.TXT扩展名的一个文件,会自动启动记事本,并在其中载入文本文件
  返回值:

FindFirstChangeNotification
  功能:创建一个文件通知对象。该对象用于监视文件系统发生的变化
  返回值:成功,返回一个改变通知对象的句柄;INVALID_HANDLE_VALUE表示失败。会设置GetLastError
  注意:用FindCloseChangeNotification函数关闭句柄,不要用CloseHandle函数

FindNextChangeNotification
  功能:重设一个文件改变通知对象,令其继续监视下一次变化
  返回值:非零表示成功,零表示失败。会设置GetLastError

FreeLibrary
  功能:释放指定的动态链接库,是用LoadLibrary API函数装载的
  返回值:非零表示成功,零表示失败。会设置GetLastError
  注意:在VB中只能用这个函数释放那些由应用程序明确装载的DLL。对LoadLibrary的每一次调用都应该有一个对应的FreeLibrary调用

GetCurrentProcess
  功能:获取当前进程的一个伪句柄
  返回值:当前进程的伪句柄
  注意:只要当前进程需要一个进程句柄,就可以使用这个伪句柄。该句柄可以复制,但不可继承。不必调用CloseHandle函数来关闭这个句柄

GetCurrentProcessId
  功能:获取当前进程一个唯一的标识符
  返回值:当前的进程标识符

GetCurrentThread
  功能:获取当前线程的一个伪句柄
  返回值:当前线程的伪句柄
  注意:只要当前线程需要使用一个线程句柄,就可以使用这个伪句柄(但在其他任务线程中都无效)。该句柄可以复制,但不可继承。不必调用CloseHandle函数来关闭这个句柄

GetCurrentThreadId
  功能:获取当前线程一个唯一的线程标识符
  返回值:当前的线程标识符

GetExitCodeProces
  功能:获取一个已中断进程的退出代码
  返回值:非零表示成功,零表示失败。会设置GetLastError

GetExitCodeThread
  功能:获取一个已中止线程的退出代码
  返回值:非零表示成功,零表示失败。会设置GetLastError

GetHandleInformation
  功能:获取与一个系统对象句柄有关的信息
  返回值:非零表示成功,零表示失败。会设置GetLastError

GetMailslotInfo
  功能:获取与一个邮路有关的信息
  返回值:非零表示成功,零表示失败。会设置GetLastError

GetModuleFileName
  功能:获取一个已装载模板的完整路径名称
  返回值:执行成功,返回复制到lpFileName的实际字符数量;零表示失败。会设置GetLastError
  注意:在Windows 95下,函数会核查应用程序的内部版本号是否为4.0或更大的一个数字。如果是,就返回一个长文件名,否则返回短文件名

GetModuleHandle
  功能:获取一个应用程序或动态链接库的模块句柄
  返回值:执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
  注意:只有在当前进程的场景中,这个句柄才会有效

GetPriorityClass
  功能:获取特定进程的优先级别
  返回值:进程的优先级,零表示失败。会设置GetLastError

GetProcessShutdownParameters
  功能:调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
  返回值:非零表示成功,零表示失败。
  注意:适用于Windows NT平台

GetProcessTimes
  功能:获取与一个进程的经过时间有关的信息
  返回值:非零表示成功,零表示失败。会设置GetLastError
  注意:适用于Windows NT平台

GetProcessWorkingSetSize
  功能:了解一个应用程序在运行过程中实际向它交付了多大容量的内存
  返回值:非零表示成功,零表示失败。会设置GetLastError
  注意:适用于Windows NT平台

GetSartupInfo
  功能:获取一个进程的启动信息
  返回值:

GetThreadPriority
  功能:获取特定线程的优先级别
  返回值:返回带有THREAD_PRIORITY_???前缀的某个函数,它规定了线程的优级。 THREAD_PRIORITY_ERROR_RETURN表示出错
  注意:线程的优先级同进程的优先级类组合在一起就决定了线程的实际优先级

GetTheardTimes
  功能:获取与一个线程的经过时间有关的信息
  返回值:非零表示成功,零表示失败。会设置GetLastError
  注意:适用于Windows NT平台

GetWindowThreadProcessId
  功能:获取与指定窗口关联在一起的一个进程和线程标识符
  返回值:拥有窗口的线程的标识符

LoadLibrary
  功能:载入指定的动态链接库,并将它映射到当前进程使用的地址空间
  返回值:成功则返回库模块的句柄,零表示失败。会设置GetLastError

LoadLibraryEx
  功能:装载指定的动态链接库,并为当前进程把它映射到地址空间
  返回值:成功则返回库模块的句柄,零表示失败。会设置GetLastError

LoadModule
  功能:载入一个Windows应用程序,并在指定的环境中运行
  返回值:大于32表示成功;31表示不存在文件类型的关联;0表示系统内存或资源不足;ERROR_FILE_NOT_FOUND表示指定的文件不存在;ERROR_PATH_NOT_FOUND表示指定的路径不存在;ERROR_BAD_FORMAT表示执行格式无效

MsgWaitForMultipleObjects
  功能:等侯单个对象或一系列对象发出信号,标志着规定的超时已经过去,或特定类型的消息已抵达线程的输入队列。如返回条件已经满足,则立即返回
  返回值:如fWaitAll设为TRUE,则下述任何一个常数都标志着成功:
  WAIT_ABANDONED_0:所有对象都发出消息,而且其中一个或多个属于互斥体(一但拥有它门的进程中止,就会发出信号)。
  WAIT_TIMEOUT:对象保持未发信号的状态,但规定的等待超时时间已经超过
  WAIT_OBJECT_0:所有的对象都发出信号
  WAIT_TO_COMPLETION(仅适用于WaitForSingleObjectEx),由于一个I/O完成操作已准备好执行,从而造成了函数的返回。
  返回WAIT_FALIED表示函数执行失败。会设置GetLastError
如fWaitAll设为FALSE,那返回结果与前面说的相似,只是可能还会返回相对于WAIT_ABANDONED_0或WAIT_OBJECT_0的一个正偏移量,指出哪个对象是被抛弃还是发出信号。
  如果是由于dwWakeMask指定的,符合特殊标准的一条消息的到达而造成了函数的返回,则返回WAIT_OBJECT_0 + nCount

  注意:如果函数是由于对象发出信号而返回,这个函数还会得到一些额外的效果:
  信号机:递增信号机计数
  互斥体:将互斥体的所有权限赋于发出调用的线程
  自动重设事件:将事件发信状态设为FALSE
  自动重设可等待计时器:将计时器状态设为FALSE

SetPriorityClass
  功能:设置一个进程的优先级别
  返回值:进程的优先级,零表示失败。会设置GetLastError

SetProcessShutdownParameters
  功能:在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
  返回值:非零表示成功,零表示失败。
  注意:适用于Windows NT平台

SetProcessWorkingSetSize
  功能:设置操作系统实际划分给进程使用的内存容量
  返回值:非零表示成功,零表示失败。会设置GetLastError
  注意:适用于Windows NT平台

SetThreadPriority
  功能:设定线程的优先级别
  返回值:非零表示成功,零表示失败。会设置GetLastError
  注意:线程的优先级同进程的优先级类组合在一起就决定了线程的实际优先级

ShellExecute
  功能:查找与指定文件关联在一起的程序的文件名
  返回值:非零表示成功,零表示失败。会设置GetLastError

TerminateProcess
  功能:结束一个进程
  返回值:非零表示成功,零表示失败。会设置GetLastError

WinExec
  功能:运行指定的程序
  返回值:大于32表示成功;31表示不存在文件类型的关联;0表示系统内存或资源不足;ERROR_FILE_NOT_FOUND表示指定的文件不存在;ERROR_PATH_NOT_FOUND表示指定的路径不存在;ERROR_BAD_FORMAT表示执行格式无效
  注意:参考对CreateProcess函数的说明,了解在目录中查找指定文件的顺序

原文地址:https://www.cnblogs.com/Sheenagh/p/12228695.html

时间: 2024-10-24 13:57:16

Windows API——进程和线程函数的相关文章

API 进程、线程函数

CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 CreateEvent 创建一个事件对象 CreateMailslot 创建一个邮路.返回的句柄由邮路服务器使用(收件人) CreateMutex 创建一个互斥体(MUTEX) CreateNamedPipe 创建一个命名管道.返回的句柄由管道的服

[笔记]linux下和windows下的 创建线程函数

linux下和windows下的 创建线程函数 1 #ifdef __GNUC__ 2 //Linux 3 #include <pthread.h> 4 #define CreateThreadEx(tid,threadFun,args) pthread_create(tid, 0, threadFun, args) 5 #define CloseHandle(ph) 6 7 int pthread_create( 8 //指向线程标识符的指针. 9 pthread_t *restrict t

Windows API中几个函数的总结

[DllImport("User32.dll", EntryPoint = "FindWindow")] public static extern IntPtr FindWindow(String className, String captionName); [DllImport("User32.dll", EntryPoint = "FindWindowEx")] public static extern IntPtr F

windows下进程与线程剖析

进程与线程的解析 进程:一个正在运行的程序的实例,由两部分组成: 1.一个内核对象,操作系统用它来管理进程.内核对象也是系统保存进程统计信息的地方. 2.一个地址空间,其中包含所有可执行文件或DLL模块的代码和数据.此外,它还包含动态内存分配,比如线程堆栈和堆的分配. 进程要做任何事情,都必须让一个线程在它的上下文中运行.该线程负责执行进程地址空间包含的代码.事实上,一个进程可以有多个线程,所有线程都在进程的地 址空间中"同时"执行代码.为此,每个线程都有它自己的一组CPU寄存器和它自

windows和linux进程与线程的理解

对于windows来说,进程和线程的概念都是有着明确定义的,进程的概念对应于一个程序的运行实例(instance),而线程则是程序代码执行的最小单元.也就是说windows对于进程和线程的定义是与经典OS课程中所教授的进程.线程概念相一致的. 提供API,CreateThread()用于建立一个新的线程,传递线程函数的入口地址和调用参数给新建的线程,然后新线程就开始执行了. windows下,一个典型的线程拥有自己的堆栈.寄存器(包括程序计数器PC,用于指向下一条应该执行的指令在内存中的位置),

WINDOWS API 函数(超长,值得学习)

一.隐藏和显示光标 函数: int ShowCursor ( BOOL bShow );  参数 bshow,为布尔型,bShow的值为False时隐藏光标,为True时显示光标:该函数的返回值为整型,为鼠标隐藏或显示的指数器:返回值大于等于0时显示光标,否则隐藏鼠标:如果安装了鼠标初值为0. 二.交换鼠标左右键和恢复 函数:BOOL SwapMouseButton ( BOOL fSwap );  参数 fSwap,为布尔型,TRUE表示交换鼠标左右键,FALSE表示恢复系统默认左右手习惯:返

WINDOWS API函数说明

Windows API函数大全,从事软件开发的朋友可以参考下 1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNetConnectionDialog 启动一个

Windows API 大全

常用Windows API1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConnection3 创建同一个网络资源的连接WNetCancelConnection 结束一个网络连接WNetCancelConnection2 结束一个网络连接WNetCloseEnum 结束一次枚举操作WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接WNetDis

windows客户端开发--windows api大全

网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 WNetDisconnectDialo