C++ CreateThread和#x27;s和CreateRemoteThread';LPS参数?

C++ CreateThread和#x27;s和CreateRemoteThread';LPS参数?,c++,winapi,C++,Winapi,CreateThread和CreateRemoteThread的lpParameter之间有什么区别?从CreateThread和CreateRemoteThread中,lpParameter是“指向要传递给线程函数的变量的指针” 对于CreateRemoteThread,lpParameter是指向一个有意义的空对象的指针。它可能是内存中某个地方的某个地址 HANDLE CreateRemoteThread( HANDLE hProcess,

CreateThread
CreateRemoteThread
lpParameter
之间有什么区别?从
CreateThread
CreateRemoteThread
中,
lpParameter
是“指向要传递给线程函数的变量的指针”

对于
CreateRemoteThread
lpParameter
是指向一个有意义的空对象的指针。它可能是内存中某个地方的某个地址

HANDLE CreateRemoteThread(
      HANDLE                 hProcess,
      LPSECURITY_ATTRIBUTES  lpThreadAttributes,
      SIZE_T                 dwStackSize,
      LPTHREAD_START_ROUTINE lpStartAddress,
      LPVOID                 lpParameter,
      DWORD                  dwCreationFlags,
      LPDWORD                lpThreadId
 );
关于
CreateThread
lpParameter
是指向“\uu drv\u aliasesMem”LPVOID对象的指针。为什么要添加“\uu drv\u aliassem”

这两个参数之间没有功能上的差异。它们只是任意的
void*
指针,没有什么特别之处


\uu drv\u别名em
是一个。它通知SAL感知解析器参数引用的内存地址未泄漏:


使用指针和别名(从而避免泄漏)的函数应使用
\uu drv\u aliasesMem
进行注释。如果创建的函数将对象插入全局结构,或将其传递给执行此操作的系统函数,则应添加
\uu drv\u aliasesMem
注释

SAL注释对C或C++编译器没有影响,因为它们是作为空预处理器宏实现的。


请参阅。

没有任何区别
CreateThread
call
CreateRemoteThread
或两者都使用相同的lpParameter
调用CreateRemoteThreadEx
\uuu drv\u aliasestem并不意味着什么。文章的作者犯了一个错误,没有正确地删除SAL注释。这是一个名为的别名。新的文档在这种情况下相当草率。
HANDLE CreateThread(
      LPSECURITY_ATTRIBUTES   lpThreadAttributes,
      SIZE_T                  dwStackSize,
      LPTHREAD_START_ROUTINE  lpStartAddress,
      __drv_aliasesMem LPVOID lpParameter,
      DWORD                   dwCreationFlags,
      LPDWORD                 lpThreadId
);