请教个内核对象句柄继承的问题

shiweifu shiweifu 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
按照《WINDOWS核心编程》中的说法,把父进程中打开的内核对象句柄设置成可继承的
然后在子进程中写入字符串,之后释放

上代码:

先贴子进程的:


int main(int argc, char* argv[])
{
int n = 0;
HANDLE hFile = (HANDLE)argv[1];
/*if (argc != 2)
{
puts("caller.exe filename");
}*/

puts("i'm called");
// hFile = CreateFile("abc",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);


//szFileName = (HANDLE)argv[1];
// Creat


Sleep(5000);
BOOL b = WriteFile(hFile,"hello world",12,(unsigned long *)&n,NULL);
CloseHandle(hFile);
DWORD d = GetLastError();



printf("%d\r\n",d);
//printf("Hello World!\n");
printf("%x\r\n",hFile);
return 0;
}



再来父进程的:

int _tmain(int argc, _TCHAR* argv[])
{

// char buff[MAX_BUFF];
// char buff[256];
HANDLE hFile;

//安全属性
SECURITY_ATTRIBUTES fSa;
ZeroMemory(&fSa,sizeof(fSa));
fSa.nLength = sizeof(fSa);
fSa.bInheritHandle = TRUE;
fSa.lpSecurityDescriptor = NULL;
char pline[sizeof(HANDLE)];




//创建文件句柄
hFile = CreateFileA("c:\\test",GENERIC_WRITE,FILE_SHARE_WRITE,&fSa,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD n = GetLastError();
if(n != 0)
{
puts("CreateFile Error");
exit(-1);
}

sprintf(pline," %x",hFile);
// strcat(chPath,path);

//启动信息
STARTUPINFOA si;

//子进程信息
PROCESS_INFORMATION pi;

//清空
ZeroMemory( &pi, sizeof(pi) );
ZeroMemory( &si, sizeof(si) );

si.cb = sizeof(si);

// Start the child process

// if(CreateProcessA("D:\\source\\kernel_obj\\app1\\called\Debug\\called.exe",NULL , NULL, &fSa, TRUE, 0, NULL, NULL, &si, &pi))
if(CreateProcessA("D:\\called.exe",pline ,&fSa,NULL, TRUE, 0, NULL, NULL, &si, &pi))

{

//按键之后再释放
getchar();
//Sleep(5000);
TerminateProcess(pi.hProcess,0);


CloseHandle( pi.hProcess );

CloseHandle( pi.hThread );

}

else

{

CloseHandle(hFile);
MessageBox(NULL,_T("创建失败!"),NULL,MB_OK);

HANDLE hProcess = GetCurrentProcess();//get current process

TerminateProcess(hProcess,0); //close process

}
//free(wBuf);
CloseHandle(hFile);
// Sleep(5000);

return 0;
}




无法写入文件。。求教
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
shiweifu
VC/MFC 16,550 成员 421,606 内容