草庐IT

SPI通信

全部标签

windows - 内核模式驱动程序和用户模式应用程序之间的双向通信?

我需要在内核模式WFP驱动程序和用户模式应用程序之间进行双向通信。驱动程序通过将URL传递给应用程序来启动通信,然后应用程序对该URL进行分类(娱乐、新闻、成人等)并将该类别传递回驱动程序。驱动程序需要知道过滤器功能中的类别,因为它可能会根据该信息阻止某些网页。我在应用程序中有一个线程正在发出I/O请求,驱动程序将使用URL和GUID完成,然后应用程序会将类别写入该GUID下的注册表中,驱动程序将在其中获取它。不幸的是,正如驱动程序验证者指出的那样,这是不稳定的,因为Zw注册表函数必须在PASSIVE_LEVEL运行。我正在考虑用映射内存缓冲区尝试同样的事情,但我不确定中断要求是什么。

c++ - 虚拟机ubuntu中两个c++可执行文件一个窗口和另一个窗口之间的实时数据通信

我正在运行ros以使用ubuntu控制机器人。但驱动程序仅适用于Windows。我已经设置了一个虚拟机,其中机器人Controller构建在roscpp上我想将这些使用ros生成的值传递给Windows中的cpp。它应该是实时的。数据应该来回流动。data:float32数组维度为7请帮我举个例子。 最佳答案 在两台机器之间传递实时数据的最佳方式之一是UDP套接字。您可以在MSDNUDPExample找到一些很好的Windows示例一个用于linux,地址为LinuxUDPExample

c++ - 使用 COM 在 Windows 上的本地计算机上进行进程间通信

我正在研究使用COM和C++在Windows上进行进程间通信的选项。我找到了thisarticleonMSDN,提供了Windows的进程间通信选项列表,COM就是其中之一。但是,不幸的是,COM选项只列出了很多细节。有人对如何在Windows上使用COM进行进程间通信有任何关于文档或其他资源的指示吗?我对与远程机器通信不感兴趣(所以:没有DCOM);我只对同一台本地计算机上的进程间通信感兴趣。想法是定义一些自定义的COM接口(interface)来实现一些自定义的通信协议(protocol),然后有一个服务器程序和一个客户端程序(每个程序都在自己的进程中,运行在同一台本地机器上),并

c - 服务和应用程序之间的命名管道通信

所以我有一个在启动时启动的服务,我有一个应用程序放在启动文件夹中。因此客户端有时会很晚才连接到命名管道的服务器。这是我服务中的代码。hPipe=CreateNamedPipe(TEXT("\\\\.\\pipe\\popupPipe"),PIPE_ACCESS_DUPLEX|PIPE_TYPE_BYTE|PIPE_READMODE_BYTE,//FILE_FLAG_FIRST_PIPE_INSTANCEisnotneededbutforcesCreateNamedPipe(..)tofailifthepipealreadyexists...PIPE_WAIT,1,1024*16,102

java - 两个程序之间的输入输出通信

我有一个名为kgsgtp.jar的第三方java程序,它需要与我自己的C++(但主要是C)程序通信。java程序的文档指出:=====================你只需要确保它连接到的kgsGtp的标准输入kgsGtp的引擎输出和标准输出连接到引擎的输入。通常,最简单的方法是fork和execing来自您的引擎的kgsGtp。=====================现在我是一个相当称职的程序员,我觉得只要再提供一些线索,我就可以安排所有这些。我怀疑如果描述扩展到erm,10?行而不是三行半,然后我会立即对其进行排序。我猜文档中的fork是指在我的程序中使用WinExec()或Cr

c# - Windows 服务和 Win 应用程序之间的通信

我想编写一个Windows服务,它将与我的win应用程序通信,并将运行我的Windows窗体。我该怎么做?如果您给我一个简单示例的链接,那就太好了。我还有一个问题:如果我用windows服务运行我的win窗体,如果我不关闭我的窗体,如果用户注销它就会关闭,是这样吗? 最佳答案 有很多选择:WCF.NET远程处理共享内存命名管道普通TCP…哪种机制最适合您的情况取决于大量您没有说明也可能没有考虑的要求。如果您不知道您需要从中得到什么,只需捕获任何足够简单的机制,并且您已经在谷歌上搜索了合适的教程,然后开始编码。

c++ - 如何使用 C++ 与命令提示符 (CMD) 通信?

我有一个应用程序需要向cmd发送命令,然后取回输出(捕获输出)。如何在不使用任何MSWindows特定API的情况下使用C++完成此操作?有没有一种方法可以做到跨平台(例如,对于linux终端)?顺便说一句,我正在使用WinXPSP3。我实际上是指重定向输入/输出。例如,在cmd上运行命令“make”,然后在发生错误时捕获错误消息(重定向到我的应用程序)。 最佳答案 如前所述:如果您可以避免在您的程序中启动子进程,而是适应更广泛的“工具箱隐喻”,那通常会更好......http://en.wikipedia.org/wiki/Uni

windows - lua lane 线程间通信

有没有办法让luachannel线程进行通信或从外部访问线程?不使用文档提供的繁忙循环。一个简单的例子是,一个线程使用一个变量,更新它,改变它等等,另一个线程或主程序能够访问/获取该变量。这可以用luachannel吗?我的意思是纯粹在lua中而不是在c/c++中。 最佳答案 在使用多线程时,您通常donotwantto"update/change"avariablefrommultiplethreadswithoutanysynchronization-这可能会导致由于对变量/表等的不同步访问而导致随机出现的错误。相反,您应该依靠

windows - 了解 SystemParametersInfo SPI_SETFOREGROUNDLOCKTIMEOUT

我的应用程序需要在被外部工具(通过API)调用时获得焦点,我知道默认情况下,它应该只在任务栏中闪烁,但在这种情况下,这绝对不是行为我想要的。在这种情况下,我尝试通过“this.Activate()”(C#)获得焦点。这就是ForeGroundLockTimeOut发挥作用的地方。但是,我在理解SystemParameterInfoSPI_SETFOREGROUNDLOCKTIMEOUT时遇到了一点问题。我知道它用于设置ForeGroundLockTimeOut,它定义了您的应用在获得所请求的焦点之前必须等待的时间。(有关更多信息,变量“val”是一个设置为0的IntPtr)System

解决---设备“VMnet0”上的网桥没有运行。该虚拟机无法与此主机或网络上的其他主机进行通信。 无法连接虚拟设备“Ethernet0”。

问题描述:\quad\quad由于之前安装过VMware,但是卸载后从新安装导致虚拟机的虚拟网络编辑器没有桥接模式,即只有网络适配器网络类型VMnet1Host-only(仅主机)VMnet8NAT\quad\quad这导致你所安装的虚拟机(如Ubuntu)就不能与你的电脑再同一个网段,也就是虚拟机与你的电脑不能够互相ping通,你的虚拟机里面就不能够上网。而如何从新安装好桥接模式就是我们所迫切需要解决的问题。原因分析:主要是我们之前安装过VMware,卸载后没有卸载干净。且我们需要安装的是桥接服务而不是网卡\quad注意:仅仅在VMware左上角的编辑中点击虚拟网络编辑器并通过添加网络添加V