首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这两个结构究竟哪位高手是正确的

2012-02-13 
这两个结构究竟谁是正确的?问题1C/C++ codetypedef struct _INITIAL_TEB{PVOID PreviousStackBasePVOID

这两个结构究竟谁是正确的?
问题1>

C/C++ code
typedef struct _INITIAL_TEB{    PVOID PreviousStackBase;    PVOID PreviousStackLimit;    PVOID StackBase;    PVOID StackLimit;    PVOID AllocatedStackBase;} INITIAL_TEB, *PINITIAL_TEB;typedef struct _INITIAL_TEB {  PVOID                StackBase;  PVOID                StackLimit;  PVOID                StackCommit;  PVOID                StackCommitMax;  PVOID                StackReserved;} INITIAL_TEB, *PINITIAL_TEB;


如AllocatedStackBase和StackReserved名称有歧义.

哪个定义比较准确呢?



问题2>
C/C++ code
HANDLE APIENTRY CreateRemoteThread(HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId){    NTSTATUS Status;    OBJECT_ATTRIBUTES Obja;    POBJECT_ATTRIBUTES pObja;    HANDLE Handle;    CONTEXT ThreadContext;    INITIAL_TEB InitialTeb;    CLIENT_ID ClientId;    // Allocate a stack for this thread    Status = BaseCreateStack(hProcess, dwStackSize, 0L, &InitialTeb );    // Create an initial context    BaseInitializeContext( &ThreadContext, lpParameter, (PVOID)lpStartAddress, InitialTeb.StackBase, BaseContextTypeThread);    pObja = BaseFormatObjectAttributes(&Obja, lpThreadAttributes, NULL);    Status = NtCreateThread( &Handle, THREAD_ALL_ACCESS, pObja, hProcess, &ClientId, &ThreadContext, &InitialTeb, TRUE ); }


NtCreateThread究竟怎么使用?
我找不到BaseCreateStack、BaseContextTypeThread、BaseFormatObjectAttributes的定义。

[解决办法]
问题1
感觉第一个结构的名称比较准确

问题2
得自定义这些结构
所谓的undocument的结构和函数,就是得自己声明这些结构和函数,并从dll中动态加载

热点排行