Articles of pipe理员

标准用户login时启动pipe理交互式进程

我有一个系统服务,以pipe理员身份创build一个辅助交互过程,以便访问一些与桌面相关的资源,包括无法从服务运行的BlockInput()函数和NVIDIA的NVAPI函数。 当login用户是pipe理员的成员时,以下工作: 设置权限级别,包括SE_TCB_NAME 使用WTSGetActiveConsoleSessionId()获取活动的会话ID 使用WTSQueryUserToken()从会话ID获取login用户 带有TokenLinkedToken的GetTokenInformation() DuplicateTokenEx()与SecurityImpersonation 使用CreateProcessAsUser()启动进程 但是,当我有当前login会话是一个标准的用户而不是pipe理员中的一个,步骤4.失败,大概是因为标准用户没有与它链接的pipe理级别令牌。 这里有什么解决scheme? 我假设我需要得到一个pipe理员用户的令牌,但我该怎么做呢? 如果该用户不是login的用户,它是否仍然可以访问与当前桌面交互的function?

Windows上下文菜单shell图标

我使用registry和键创build了一个新的Windows shell上下文菜单项 HKLM\Software\Classes\Folder\shell\appname HKLM\Software\Classes\Folder\shell\appname\command 现在我想添加一个图标到这个命令。 我怎么做?

操作系统重新启动,关机,hibernate,睡眠,唤醒(Windows Python)

我正在寻找一种自动执行Windows电源pipe理function的方法: – 重新启动 – 关机 – hibernate – 睡眠 – 唤醒 有没有一个Python模块来覆盖这个function? 当然任何其他的解决scheme也赞赏…

在Windows上的os.pipe上无阻塞读取

这个问题 – 如何从os.pipe()读取而不被阻塞? – 显示了一个解决scheme如何检查os.pipe是否有Linux的任何数据,为此,您需要将pipe道置于非阻塞模式: import os, fcntl fcntl.fcntl(thePipe, fcntl.F_SETFL, os.O_NONBLOCK) 在Windows上,我们有这样的: ImportError: No module named fcntl 但os.pipe在那里: >>> os.pipe() (3, 4) 那么,是否可以在Windows上进行非阻塞式的读取或os.pipe的内容呢?

Windows上命名pipe道与IPC的UDP

为什么命名pipe道在本地Windows机器上通过UDP更适合IPC(进程间通信)? 或UDP有时可能会更好?

(Windows)C中的特定进程的CPU和内存消耗情况?

我想监视一个给定的进程在Windows(nt体系结构 – XP中,Vista,WIN7)的CPU和内存消耗,每隔几秒做一个图,我已经search周围,但只发现非C解决scheme(Java,C# C ++等)我知道有一个PerformanceCounter类,但显然它不是在C中可用。 谢谢

如何从用户空间访问内核空间?

用户内存和内核内存在Linux内核中究竟有什么区别 (就内核空间的安全性而言)? 有什么不同的方式可以在用户空间的内核地址空间写入? 我知道的一个方法是通过系统调用 。 有多个系统调用我们可以使用,但最后他们都是系统调用。 即使在系统调用中,我们也发送一个数据到内核空间,在那里它(驱动程序或相应的模块)调用函数copy_from_user()将数据从用户空间复制到内核空间。 这里我们完全没有写入地址空间。 我们只是传递一个包含需要复制到内核缓冲区的数据的用户指针。 我的问题是有什么办法可以访问内核空间中的物理地址,并对其进行操作? 其次, 除了系统调用之外,还有其他的方式可以从用户应用程序写入内核空间吗? 我从stackoverflow引用这个链接 。 但是我觉得我的问题没有在那里回答,而是从不同的angular度来看。 因此我想问一个不同的问题。 请分享你的知识…谢谢。

什么时候由.NET进程分配的内存被释放回Windows

安装程序 .NET为分段的每一代堆(0,1,2,LOH)分配内存,以便在启动时获得连续的内存块,并在收集之后尝试满足分配请求。 这个分配给每个堆的内存可能会随着应用程序“升温”而平稳下来,除了第2代和大对象堆以外。 在垃圾收集期间,每个堆(0,1,2)都被扫描和压缩,除了刚刚扫过的大对象堆(LOH)之外。 我理解集合的“扫描”部分意味着GC确定哪些对象不再是根源,并且可用于收集(或定稿),而“紧凑”意味着在堆中仍然活着的地址被重新组织可用的剩余堆有更多可用的连续内存。 由于超过了堆中每个段的预算,.NET将分配另一个段来完成分配(如果可能的话)。 问题 我的问题归结为每个堆中的内存会发生什么情况,而不是由应用程序 (提交)使用,但仍保留.NET? 什么时候释放回操作系统? 。 我相信这是一个过程可能会消耗大量内存的情况(虚拟大小非常大,但是私有字节很小),但是在检查其堆时大部分是可用空间 。 另外需要注意的是,堆的总大小也可能相当小 ,并且不考虑进程消耗的内存。 没有阻塞的终结器,所有看起来都很健康的进程 – 它可能已经运行了几个星期,然后触发监视器警报(例如)。 尝试进一步澄清问题,如果您阅读了Tess .NET内存pipe理 – 餐厅类比 ,如果表是堆段,那么餐厅是否会丢失表(例如,免费的堆段)? 编辑 删除了工作组和鸡只的混淆参考 添加了对Tess餐厅类比的参考

如果我调用GlobalLock(),然后调用GlobalUnlock(),会发生什么?

在Win32中,为了将数据粘贴到剪贴板,我必须调用GlobalAlloc() ,然后使用GlobalLock()来获取指针,然后复制数据,然后调用GlobalUnlock()和SetClipboardData() 。 如果代码是用C ++编写的,那么在调用GlobalLock()和GlobalUnlock()之间可能会抛出一个exception,如果我不关心这个GlobalUnlock()将不会被调用。 这是一个问题? 如果我调用GlobalLock() ,出于什么原因跳过配对的GlobalUnlock()调用,到底发生了什么?

如何创build一个右键单击上下文shell快捷方式“编辑Emacs”?

记事本+ +自动添加一个shell快捷方式,以便当您在Windows资源pipe理器,您可以右键单击一个文件,并select“用记事本++编辑”。 我该怎么做与emacs一样? 我正在使用Windows的GNU Emacs 22.3。