Articles of pipe理员

命名pipe道名称是否有反斜杠?

根据MSDN , [pipe道名称]必须具有以下forms: \\.\pipe\pipename 名称的pipe道名部分可以包含除反斜杠以外的任何字符,包括数字和特殊字符。 整个pipe道名称string最多可以有256个字符。 pipe道名称不区分大小写。 但有很多例子,我已经看到命名pipe道名称与反斜杠在其中。 例如,SQL Server的标准pipe道名称是\\.\pipe\sql\query 。 从SysInternals运行PipeList显示我的机器上的名字包含一个反斜杠的pipe道很多。 那么,pipe道名称是否可以带有反斜杠呢? 我问,因为我正在用几个这样的名字创build一个服务: \\.\pipe\MyApp \\.\pipe\MyApp\0 \\.\pipe\MyApp\1 \\.\pipe\MyApp\2 在创build第一个pipe道之后,创build其他pipe道将失败,并显示Windows错误123(ERROR_INVALID_NAME)。 如果我跳过创build第一个pipe道,所有其他的,在名称中的反斜杠字符,将工作得很好。 看起来,pipe道是像文件系统一样的层次结构,如果你有一个具有特定名称的pipe道,那么这个名称就不能再用作其他pipe道的“文件夹”或容器。 当试图弄清楚这一点,我遇到了MSDN文章,现在质疑我是否应该使用反斜杠。 有什么build议?

有没有什么API来确定Linux中的虚拟地址的物理地址?

在Linux操作系统中有没有用于从虚拟地址确定物理地址的API?

Windows命令解释器:如何获取第一个pipe道命令的退出码

在下面提供的示例中,我执行nmake,然后将STDOUT / STDERRredirect到tee,然后将它发送到屏幕以及日志文件。 问题是,我试图捕获nmake退出代码,而不是三通。 我需要的是从nmake退出代码,而不是三通。 nmake | tee output.txt

UNIX与Windows内存释放

我的理解是,在unix中,当内存被释放时,内存不会被返回到操作系统,它留在进程中再次用于下一次调用malloc。 在Windows上,我知道内存实际上被返回到操作系统。 这两种做事方式有没有很大的区别,还是做同一件事情的两种不同方式? 如果这两种方法有什么优点/缺点,它们是什么? 编辑:谢谢澄清。 我一直认为这是一个操作系统的东西(因为在类似UNIX的系统中,进程似乎不会减小,而是在Windows中)。

Delphipipe理员权限D7 W7

可能重复: Delphi:需要时提示UAC提升 我用Delphi 7编写的用于Windows 7的应用程序需要pipe理员权限来执行某些function。 我怎样才能从源代码提升到pipe理员? 我用这个代码检查用户权限: function IsUserAdmin : boolean; const CAdminSia : TSidIdentifierAuthority = (value: (0, 0, 0, 0, 0, 5)); var sid : PSid; ctm : function (token: dword; sid: pointer; var isMember: bool) : bool; stdcall; b1 : bool; begin result := false; ctm := GetProcAddress(LoadLibrary('advapi32.dll'), 'CheckTokenMembership'); if (@ctm <> nil) […]

驱动器盘符和冒号后没有斜杠的path – 它指向什么?

我打错了一个path,而不是c:\foo.txt写了c:foo.txt 。 我预料它要么失败,要么parsing为c:\foo.txt ,而是似乎在当前用户的home文件夹中parsing为foo.txt 。 Powershell返回: PS C:\> [System.IO.Path]::GetFullPath("c:\foo.txt") c:\foo.txt PS C:\> [System.IO.Path]::GetFullPath("c:foo.txt") C:\Users\Administrator\foo.txt PS C:\> [System.IO.Path]::GetFullPath("g:foo.txt") G:\foo.txt 从命令行运行explorer.exe并将以上任何一个结果传递给C:\ Users \ Administrator \ Documents以打开。 我还没有find任何文件,我完全困惑,请解释行为。

列出所有用户在非域系统上的最后一次Windows密码更改

对于连接到AD域控制器的系统,我已经find了这个问题的答案。 但是,这个问题适用于无法连接到域控制器的独立系统。 基本上,气隙系统。 简短而又甜蜜:有没有办法列出每个用户最后一次将非密码空间系统(Windows 7或10)的Windows密码更改为batch file或PowerShell脚本? 我知道,净用户{用户名} | find/我“密码上次设置”将一次为他们做。 然而,每台机器运行多次会很繁琐,而且我们有超过60个这种types的系统。 所以我一直在寻找一种方法来做到这一点,如果可能的话。 作为一个警告,我们没有select在PowerShell中为此安装activedirectory模块。 另外,由于大多数系统都是Windows 7,我们无法访问Windows 10中可用的Bash命令行工具。 任何和所有这方面的帮助表示赞赏。

没有从命名pipe道服务器得到任何回应

我在Windows服务中创build了一个NamedPipe并手动启动服务,或者在系统启动时启动。 编辑: lpszPipename = TEXT("\\\\.\\pipe\\1stPipe"); OVERLAPPED m_OverLaped; HANDLE hEvent; hPipe=CreateNamedPipe (lpszPipename, PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_NOWAIT, PIPE_UNLIMITED_INSTANCES,BUFSIZE, BUFSIZE,0,NULL); m_OverLaped.hEvent=CreateEvent(NULL,TRUE,TRUE,NULL); m_OverLaped.Internal=0; m_OverLaped.InternalHigh=0; m_OverLaped.Offset=0; m_OverLaped.OffsetHigh=0; ConnectNamedPipe(hPipe,&m_OverLaped); 现在我想访问命名pipe道,写一些消息和回应。 LPTSTR lpszPipename = TEXT("\\\\.\\pipe\\1stPipe"); OVERLAPPED m_OverLaped; m_OverLaped.hEvent=CreateEvent(NULL,TRUE,TRUE,NULL); m_OverLaped.Internal=0; m_OverLaped.InternalHigh=0; m_OverLaped.Offset=0; m_OverLaped.OffsetHigh=0; hPipe=CreateFile (lpszPipename, // Gets the Pipename GENERIC_READ | GENERIC_WRITE,// Client only writes to this pipe. 0, […]

内存密集型应用中的内存pipe理

如果您在Windows上使用C ++开发一个内存密集型应用程序,您是否select编写自己的自定义内存pipe理器来从虚拟地址空间分配内存,还是允许CRT控制并为您执行内存pipe理? 我特别关心堆上的小对象的分配和释放造成的碎片。 正因为如此,我认为这个过程将会耗尽内存,尽pipe有足够的内存但是是分散的。

获取随机SIGTRAP信号(在MinGW-gdb中)是内存损坏的标志?

我写了我自己的引用计数的内存pipe理器c + +(为了好玩),我相信它不完美;)。 而现在当我尝试使用它时,我得到了随机的SIGTRAP信号。 如果我注释掉与内存pipe理器有关的每一行,一切运行良好。 获取SIGTRAP-s而不是SIGSEGV是相当奇怪的。 我知道SIGTRAP-s在程序遇到断点时抛出,但没有设置断点。 我在另一个线程读取的exe和DLL的debugging版本必须是最新的。 他们是最新的,所以这不是原因。 有谁知道为什么会发生这种情况?