草庐IT

handling-authorization-result

全部标签

c++ - 在 CreateProcess 之后调用 GetModuleFileNameEx 时出现 ERROR_INVALID_HANDLE

成功调用CreateProcess后,我尝试使用GetModuleFileNameEx获取创建的进程的路径(lpApplicationName和lpCommandLine参数可以变化或为空,因此在这种情况下它们不可靠)。问题是GetModuleFileNameEx失败并出现错误6(ERROR_INVALID_HANDLE),从而使其缓冲区中包含无效数据。我无法理解原因,因为CreateProcess成功并且进程句柄应该已正确保存在pi.hProcess中。希望您能有所启发,在此先感谢您!编辑:更新:我注意到删除CREATE_SUSPENDED也可以解决此问题,但我需要设置该标志。我该怎

windows - WebSphere MQ 错误 MQRC_NOT_AUTHORIZED 2035 即使使用 CHLAUTH(DISABLED)

我正在尝试将Windows客户端应用程序连接到测试环境中的远程WebSphereMQ管理器。客户端Windows7SP1x64WebSphereMQ7.5客户端服务器(虚拟机)Windows2008R2WebSphereMQ7.5服务器两台机器都在同一个域中。队列管理器QM1是在WebSphereMQExplorer(提升为管理员)中创建的。出于测试目的,我对身份验证不感兴趣,因此我使用ALTERQMGRCHLAUTH(DISABLED)禁用了MQ身份验证。C:\ProgramFiles(x86)\IBM\WebSphereMQ\bin64>runmqscQM15724-H72(C)C

c++ - 将 32 位值转换为 HANDLE

我正在处理一个提供32位自定义句柄的组件,我想使用标准的WindowsHANDLE类型来包装它。在遗留组件中,我看到了以下两种转换方法的使用://valueis32-bitsautovalue=GetCustomHandle();HANDLEhA=HANDLE(value);HANDLEhB=(void*)(SIZE_T)value;hA和hB总是等价的吗?如果不是,在什么情况下不是?在这种情况下,我认为它们总是等价的,因为:函数式转换和类C转换之间没有区别。HANDLE等同于void*。void*和SIZE_T的大小在32位系统上为32位,在64位系统上为64位。谢谢。

windows - 是否存在函数 CreateFile 返回 INVALID_HANDLE_VALUE 而 GetLastError() 返回 ERROR_ALREADY_EXISTS 的情况

我在MSDN上搜索了一下HANDLEWINAPICreateFile(_In_LPCTSTRlpFileName,_In_DWORDdwDesiredAccess,_In_DWORDdwShareMode,_In_opt_LPSECURITY_ATTRIBUTESlpSecurityAttributes,_In_DWORDdwCreationDisposition,_In_DWORDdwFlagsAndAttributes,_In_opt_HANDLEhTemplateFile);如果dwCreationDisposition==CREATE_ALWAYS或OPEN_ALWAYS,它表

php - curl 窗口 : the provided file handle is not writable

我在执行curl请求时随机“无错误地挂起”。我正在尝试检测来源,因为Web服务器和php日志没有显示任何错误,所以我尝试启用CURLOT_STDERR。我有以下代码:$file='curl.txt';$curl=curl_init();$curl_log=fopen($file,'rw');var_export(is_writable($file));$url='http://www.google.com';curl_setopt_array($curl,array(CURLOPT_URL=>$url,CURLOPT_VERBOSE=>1,CURLOPT_STDERR=>$curl_l

string - 批处理 : Handle numbers above 2^32

我想在依赖于我的可用存储空间的批处理文件中执行操作,但它失败了(有趣的是,只是有时),因为可用空间超过2GB,使得变量无法设置。这是批处理文件:cd"C:\Users\Fabian\Desktop\ScreenRecordings\Auto"for/F"usebackqdelims==tokens=2"%%xin(`wmiclogicaldiskwhere"DeviceID='C:'"getFreeSpace/format:value`)do(setFreeSpace=%%x)if(%FreeSpace%)LSS(2499522027520)(for/F"delims="%%ain('

c++ - 为什么错误 1400 Invalid window handle?

#include#include#includeHWNDWindowHandle;HINSTANCEInstance;constwchar_tWindowClassName[]=L"TempProjcet";LRESULTCALLBACKWindowProc(HWND_windowHandle,UINT_msg,WPARAM_param,LPARAM_param1){switch(_msg){caseWM_PAINT:{PAINTSTRUCTps;HDChdc=BeginPaint(WindowHandle,&ps);FillRect(hdc,&ps.rcPaint,(HBRUSH)(

Windows 内核驱动程序 : Does the "HANDLE UniqueThread" in "CLIENT_ID CreatingThreadId" is the same during the process loading?

我正在尝试编写一个APCdll注入(inject)驱动程序,我找到了this示例并考虑根据我的需要对其进行修改。在我理解了代码之后,我想到了如何修改它(我的问题由此而来)。在code,作者使用了PsLookupThreadByThreadId接收指向目标进程的ETHREAD结构的引用指针。PsLookupThreadByThreadId(pSpi->Threads[0].ClientId.UniqueThread,&Thread)但要得到SYSTEM_THREAD_INFORMATION对于UniqueThreadhandle,他用过ZwQuerySystemInformation我想

windows - 是什么导致 WriteFile 返回错误 38 (ERROR_HANDLE_EOF)?

什么会导致WriteFile返回错误38(ERROR_HANDLE_EOF,已到达文件末尾)?本例中的"file"是一个邮槽。我的程序的工作方式是我有一个创建多个子进程的进程(作为Windows服务运行)。每个child都打开一个同名的邮槽,以便将状态信息发送回其parent。在我的小规模测试中,这工作正常,但我看到了当我有多个进程时的情况运行(如16)我收到此错误。下面的代码显示了我如何在子进程中打开和写入邮槽。可能是因为父级读取邮槽的速度不够快?有没有办法增加邮槽的容量,从而永远不会到达文件末尾?我真的不明白邮槽怎么会变满,只要因为有磁盘空间(有很多)。chargLocalSlot

c++ - 以用户 : "NT AUTHORITY/Network Service" without knowing the credentials? 身份运行的 CreateProcess

我有一个作为本地系统运行的Windows服务。我希望该服务产生一个进程作为“NTAUTHORITY/网络服务”。但是,我没有此帐户的凭据。如何使用C++作为“网络服务”用户生成进程。 最佳答案 我不在我的win32开发箱前,所以我无法确认,但我会提供两种可能的方法:遍历进程列表调用OpenProcess()获取现有网络服务进程的句柄调用OpenProcessToken()使用该句柄从他的进程中获取安全token调用CreateProcessAsUser()使用token创建一个进程作为NETWORKSERVICE或者,您可以:调用C