[quote=引用 9 楼 tanta 的回复:] 你查查SECURITY_ATTRIBUTES 结构的定义,定义这个结构,然后将lpThreadAttributes 指向这个结构。 这个我也没用过,只能帮你到这里了,抱歉。
CreateRemoteThread 编辑 目录 1函数说明 2函数原型 3参数说明 ▪ hProcess [in] ▪ lpThreadAttributes [in] ▪ dwStackSize [in] ▪ lpStartAddress [in] ▪ lpParameter [in] ▪ dwCreationFlags [in] ▪ lpThreadId [out] 4函数返回值 5要求 1函数说明 编辑 创建一个在其它进程地址空间中运行的线程(也称:创建远程线程). 2函数原型 编辑 HANDLE WINAPI CreateRemoteThread( __in HANDLE hProcess, __in LPSECURITY_ATTRIBUTES lpThreadAttributes, __in SIZE_T dwStackSize, __in LPTHREAD_START_ROUTINE lpStartAddress, __in LPVOID lpParameter, __in DWORD dwCreationFlags, __out LPDWORD lpThreadId ); [1] 3参数说明 编辑 hProcess [in] 线程所属进程的进程句柄. 该句柄必须具有 PROCESS_CREATE_THREAD, PROCESS_QUERY_INFORMATION, PROCESS_VM_OPERATION, PROCESS_VM_WRITE,和PROCESS_VM_READ 访问权限. lpThreadAttributes [in] 一个指向 SECURITY_ATTRIBUTES 结构的指针, 该结指定了线程的安全属性. dwStackSize [in] 线程初始大小,以字节为单位,如果该值设为0,那么使用系统默认大小. lpStartAddress [in] 在远程进程的地址空间中,该线程的线程函数的起始地址. lpParameter [in] 传给线程函数的参数. dwCreationFlags [in] 线程的创建标志. 值 含义 0 线程创建后立即运行 CREATE_SUSPENDED 0x00000004 线程创建后先将线程挂起,直到 ResumeThread 被调用. STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000 dwStackSize 参数指定为线程栈预订大小,如果STACK_SIZE_PARAM_IS_A_RESERVATION没有被指定,dwStackSize 参数指定为线程栈分配大小. lpThreadId [out] 指向所创建线程句柄的指针,如果创建失败,该参数为NULL. 4函数返回值 编辑 如果调用成功,返回新线程句柄. 如果失败,返回NULL. ================================================= 第二个参数lpThreadAttributes [in] 一个指向 SECURITY_ATTRIBUTES 结构的指针, 该结指定了线程的安全属性. dwStackSize [in],你直接设为0,肯定是错误的。
你查查SECURITY_ATTRIBUTES 结构的定义,定义这个结构,然后将lpThreadAttributes 指向这个结构。 这个我也没用过,只能帮你到这里了,抱歉。
110,538
社区成员
642,577
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧