Windows核心编程学习笔记(8)--作业

Drecik学习经验分享

转载请注明出处:http://blog.csdn.net/drecik__/article/details/8085844

 

什么是作业?

作业是一个Windows提供的内核对象,它允许我们将进程组合在一起并创建一个“沙箱”来限制进程能够做什么。可以将作业对象想象成一个进程容器。

作业的相关函数

// 查询线程是否在某个线程是否在指定作业中;
BOOL IsProcessInJob (
	HANDLE	ProcessHandle,	// 查询的线程句柄;
	HANDLE	JobHandle,		// 指定的作业,为NULL表示进程是否在作业中;
	PBOOL	Result			// 返回查询结果;
	);

// 创建作业对象;
HANDLE CreateJobObjectW(
	LPSECURITY_ATTRIBUTES lpJobAttributes,	// 安全属性;
	LPCWSTR lpName		// 作业名称;
	);

// 打开一个作业对象;
HANDLE OpenJobObjectW(
	DWORD	dwDesiredAccess,// 访问权限;
	BOOL	bInheritHandle,	// 是否继承;
	LPCWSTR lpName			// 作业名称;
	);

// 对作业中的进程进行限制;
// 该函数功能很多,具体可以查看MSDN;
BOOL SetInformationJobObject(
	HANDLE hJob,									// 作业句柄;
	JOBOBJECTINFOCLASS JobObjectInformationClass,	// 要施加的类型,具体见下文;
	LPVOID lpJobObjectInformation,					// 包含具体的限制设置;
	DWORD cbJobObjectInformationLength				// 数据结构大小;
	);

// 将进程放入到作业中;
BOOL AssignProcessToJobObject(
	HANDLE hJob,		// 作业句柄;
	HANDLE hProcess		// 线程句柄;
	);

// 终止作业中所有进程;
BOOL TerminateJobObject(
	HANDLE hJob,	// 作业句柄;
	UINT uExitCode	// 退出代码;
	);


你可能感兴趣的:(数据结构,编程,windows,null,作业,attributes)