DeviceIoControl 返回错误码1,为什么? [问题点数:100分,结帖人rokia]

Bbs5
本版专家分:3317
结帖率 100%
Bbs7
本版专家分:17499
Blank
红花 2002年9月 VC/MFC大版内专家分月排行榜第一
Bbs5
本版专家分:3317
Bbs5
本版专家分:3317
Bbs8
本版专家分:32284
Blank
黄花 2002年9月 VC/MFC大版内专家分月排行榜第二
2002年8月 VC/MFC大版内专家分月排行榜第二
Bbs5
本版专家分:3317
Bbs8
本版专家分:32284
Blank
黄花 2002年9月 VC/MFC大版内专家分月排行榜第二
2002年8月 VC/MFC大版内专家分月排行榜第二
关于DeviceIoControl实现异步的笔记【1】
一直所做的都是同步实现的。当然很多情况这并不是很好的解决问题。现在手上的问题是:用户层通知底层驱动(Filter Driver)做某件事,然后<em>返回</em>该事件执行的结果。如果该事件是一件简单的事情,这里是指极短时间内可以完成的,那么在允许范围内,我们可以用同步来完成。但是如果该事件是一件耗时的工作,而应用程序不能一直在等着该事件的完成信号,况且好像DeviceIoControl有时间限制的(?)。这就需...
DeviceIOcontrol
设备驱动程序可以被当作内核模式函数包来看待, 一 说明 功能:就是用来指定访问其中的哪个函数的。 DeviceIoControl函数的dwIoControlCode参数就是这个代码,它指出了我们需要进行的操作,以及如何进行操作。  控制代码是32位数字型常量,可以CTL_
DeviceIoControl时,总是返回失败,错误码是87(参数错误)
直接上代码,各位看看,调用时总是失败,调用GetLastError时<em>错误码</em>是87(参数错误)rnrn//---------------------------------------定义rn BULK_TRANSFER_CONTROL=recordrn pipeNum:Cardinal;//对应ULONGrn end;rnm_Usb_Handle:THandle;//已经成功打开rn//功能码是对的rnfunction IOCTL_EZUSB_BULK_WRITE:DWORD; rnbeginrn result:=CTL_CODE(FILE_DEVICE_UNKNOWN,Ezusb_IOCTL_INDEX+20,METHOD_IN_DIRECT,FILE_ANY_ACCESS);rnend;rnrn dataBuffer:Array[0..32] of Char;rn dataBufferSize,lpBytesReturned:DWORD;rn outBulkControl:BULK_TRANSFER_CONTROL;rn outPBulkControl:Pointer;rnrn//--------------------------------调用代码rn //要下发16个字节的 1rn dataBufferSize:=16;rn for i:=0 to dataBufferSize-1 dorn beginrn dataBuffer[i]:=#1;rn //dataBuffer[2*i]:='1';rn //dataBuffer[2*i+1]:='1';rn //dataBuffer[2*i+2]:=#0;rn end;rnrn outBulkControl.pipeNum:=2; //输出端点 0 Endpoint: 2 OUTrn outPBulkControl:=@outBulkControl;rn if (m_Usb_Handle<>Windows.INVALID_HANDLE_VALUE) thenrn beginrn lpBytesReturned:=0;rn if DeviceIoControl(m_Usb_Handle,IOCTL_EZUSB_BULK_WRITE,outPBulkControl,SizeOf(BULK_TRANSFER_CONTROL),rn @dataBuffer,dataBufferSize,lpBytesReturned,nil) thenrn beginrn //发送成功rn Memo1.Lines.Add(Format('发送数据成功 Result=%d',[lpBytesReturned]));rn endrn else beginrn iErrorCode:=windows.GetLastError;rn Memo1.Lines.Add(Format('发送数据失败 ErrorCode=%d(%s) Result=%d OutBufferSize=%d',[iErrorCode,getErrorTextByCode(iErrorCode),lpBytesReturned,dataBufferSize]));rn // GetLastError =87 〖87〗-参数错误。rn end;rnrn//执行后输出的结果是:rnrn打开USB成功rn发送数据失败 ErrorCode=87(参数错误) Result=0 OutBufferSize=16rnData->> 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01rn关闭USB成功rnrnrn***** IOCTL_Ezusb_GET_PIPE_INFO ****** rn获得端口点列表数据成功 Result=56rnPipe Endpoint Direction Type Sizern 0 2 IN BLK 16rn 1 6 OUT BLK 512rnrnrnrn[b]请大家帮我看看,谢谢,分数我尽量多点,我的分也不多[/b]
关于DeviceIoControl返回87
试图使用DeviceIoControl向过滤驱动发送控制代码。 源代码如下:rn#define START_FILTER CTL_CODE(FILE_DEVICE_CD_ROM_FILE_SYSTEM,XD_CTL_CODE_READONLY,METHOD_BUFFERED,FILE_ANY_ACCESS) rn#define STOP_FILTER CTL_CODE(FILE_DEVICE_CD_ROM_FILE_SYSTEM,XD_CTL_CODE_WRITABLE,METHOD_BUFFERED,FILE_ANY_ACCESS) rn//XD_CTL_CODE_READONLY 为驱动程序中定义的控制代码rn#define erron GetLastError() rn....rn //传递启动的I/O控制代码 rn if (!( DeviceIoControl(hDevice,START_FILTER,NULL,0,NULL,0,NULL,NULL))) rn rn#ifdef DEBUGMSG rn printf("XD_CTL_CODE_READONLY DeviceIoControl() GetLastError reports [%d]\n",erron); rn rn#endif rn CloseHandle(hDevice); rn return FALSE; rn rnrn//=================================================================================================rn结果DeviceIoControl函数<em>返回</em><em>错误码</em>87,即ERROR_INVALID_PARAMETER 87 (0x57) The parameter is incorrect.rnrn请指教!rn
为什么QueryInterFace总是返回错误码0x80070057?
<em>为什么</em>我调用Directx COM对象的QueryInterFace无论查什么接口都不成功,IID_IUnknown也不行,<em>返回</em>错误是0x80070057
RegisterNatives注册失败,返回错误码-1
Android4.4.2中,JNI代码调用jint RegisterNatives(jclass clazz, const JNINativeMethod* methods, jint nMethods)接口注册native接口,编译无错误,运行时<em>返回</em>错误,<em>错误码</em>为-1。 【问题原因】:cpp中JNINativeMethod methods[ ]数组中待注册的接口,在java中无对应的本地接口定
DeviceIoControl的使用说明
应用程序和驱动程序的通信过程是:应用程序使用CreateFile函数打开设备,然后用DeviceIoControl与驱动程序进行通信,包括读和写两种操作。还可以用ReadFile读数据用WriteFile写数据。操作完毕时用CloseHandle关闭设备。我们比较常用的就是用DeviceIoControl对设备进行读写操作。先看看DeviceIoControl是怎么定义的:BOOL Devic
急求,如何解决DeviceIOControl 异常5
新人请教大神! 想要DeviceIOControl 发送命令给设备,但是GetLastError=5, 网上查了一下是拒绝访问,怎么解决这个问题呢? 代码如下: typedef struct _SCS
MFC: DeviceIoControl 通过API访问设备驱动程序
DeviceIoControl的其实和ReadFile和WriteFile是一样的, 不过这个功能更强, 一次交互能够输入数据, 也可以输出数据. DeviceIoControl内部创建的IRP是IRP_MJ_DEVICE_CONTROL类型的IRP, 然后操作系统会将这个IRP转发给驱动程序的分发函数中. 就是类似Win32下面的发送自定义消息了.. 但是又有点区别, 如果发送自定义消息,
应用层与驱动层通信DeviceIoControl
驱动层与应用层通信是通过DeviceIoControl, 首先驱动层要实现: pDriverObject->DriverUnload = MyDriverUnload; pDriverObject->MajorFunction[IRP_MJ_CREATE] = MyCreate; pDriverObject->MajorFunction[IRP_MJ_CLOSE] = MyClose;
对DeviceIoControl()函数控制码的整理
以下内容全部来自于MSDN,里面部分内容一时不知道怎么翻译,为了不浪费太多的时间,所以暂时用“暂缺”代替,以后有机会再补上。内容繁多,差错难免,不当之处,敬请指正。
返回提示语、返回错误码
<em>返回</em>提示语: if (payOrder == null) { logger.info(&quot;没有交易支付单!&quot;); return new BaseResponse(RespConstants.GLOBAL_INNER_ERROR, &quot;没有交易支付单!&quot;); } <em>返回</em><em>错误码</em>: if (!iouInfo.getLoanUserId().equals(appUserId)) {// ...
安卓接入微信支付一直返回错误码-1
通常来讲这里的请求时由后台拼好给你的,但是你也可以自己拼。我这里说的是后台拼的情况。 1.看看你是否创建了一个wxapi的包,并在这个包下有WXPayEntryActivity类。 2.检查你的应用包名是否与申请开通支付时的包名一致。 3.如果包名一直,查看密钥是否一致,因为签名和不签名获取到的密钥是不一样的。 4.后台使用的api密钥是否正确,这里的api密钥不是AppSecret,是需...
错误码(1)
2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...
调用av_read_frame返回错误码
首先上代码:[cpp] view plain copy#include &amp;lt;stdio.h&amp;gt;    #define MKTAG(a,b,c,d) ((a) | ((b) &amp;lt;&amp;lt; 8) | ((c) &amp;lt;&amp;lt; 16) | ((unsigned)(d) &amp;lt;&amp;lt; 24))      #define FFERRTAG(a, b, c, d) (-(int)MKTAG(...
usb_bulk_write返回错误码含义
这边在网上找了一天都没有找到有用的干货,为了帮后来者提供一个关键字,这里贴一下关键代码 int usb_win_error_to_errno(void) { switch (GetLastError()) { case ERROR_SUCCESS: return 0; case ERROR_INVALID_PARAMETER: return EINVAL;//22 case ER...
delphi USB通讯
求个 delphi USB通讯的例子,实现简单的发送,接收数据 1,在网上看到可以用 SetupAPI.pas类单元进行通讯,但我下载的好像函数不是很全; 希望各位大大可以提供一个完整点的SetupA
DeviceIoControl 设备参数错误的问题
本人不懂 驱动核心编程 网上下了一个 sys文件 还有源代码 用的是 DeviceIoControl 来和应用层通信 但是 DeviceIoControl 每次都说参数不正确 代码如下 OpenDev
CreateCompatibleBitmap返回错误码的原因
分析 CreateCompatibleBitmap<em>返回</em><em>错误码</em>8的原因及解决方案
华为网关返回错误码
0:无错误,命令正确接收 1 :非法登录,如登录名、口令出错、登录名与口令不符等。 2 :重复登录,如在同一TCP/IP连接中连续两次以上请求登录。 3 :连接过多,指单个节点要求同时建立的连接数过多。 4 :登录类型错,指bind命令中的logintype字段出错。 5 :参数格式错,指命令中参数值与参数类型不符或与协议规定的范围不符。 6 :非法手机号码,协议中所有手机号码字段出现
curl返回常见错误码
CURL状态码转载处:http://www.cnblogs.com/wainiwann/p/3492939.html状态码 状态原因0正常访问1错误的协议未支持的协议。此版cURL 不支持这一协议。2初始化代码失败初始化失败。3URL格式不正确URL 格式错误。语法不正确。4请求协议错误5无法解析代理无法解析代理。无法解析给定代理主机。6无法解析主机地址无法解析主机。无法解析给定的远程主机。7无法
支付宝支付返回错误码4000
在测试demo的支付宝支付时 直接<em>返回</em>错误 看日志发现<em>返回</em>的<em>错误码</em>为4000 找了资料之后发现 是有个activity忘记配置了 andro
通过DeviceIoControl获取真实网卡地址
我们可以通过DeviceIoControl接口与内核驱动通信来获取真实网卡以及当前网卡的地址。 首先包含头文件 #include // 网卡标识,xp下可以在注册表下对应位置找到,本例: // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\2\ServiceName HA
驱动开发(8)处理设备I/O控制函数DeviceIoControl
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处: 在上面的两篇博文中,介绍了IRP与派遣函数,以及我们通过了一个例子“磁盘设备的绝对读写”来演示了在应用程序中是如何向一个设备发出I/O请求的。这篇博文将演示在驱动程序中处理一个非常简单的I/O请求——由DeviceIoControl这个Win32API经过一系列的调用,在内核中
用DeviceIoControl获取系统磁盘信息
原文地址:http://www.cppblog.com/dingding/archive/2008/09/23/62570.html 代码: #include #include using namespace std; int main() {  SECURITY_ATTRIBUTES secStru;  secStru.bInheritHandle=0;
使用DeviceIoControl进行通信(直接方式)
一个WDM驱动,然后caller使用DeviceIoControl进行和驱动的通信。输出buffer使用METHOD_IN_DIRECT进行数据传输。
DeviceIOControl读写硬盘设备
DeviceIoControl这个api我们用的不多,但是很重要,有时会帮助我们实现一些特别的需求, 如获取硬件设备信息、与硬件设备通信(读写数据)等,对照msdn,下面我们详细解释一下这个api的用法(有什么错误再所难免,各位不吝指教啊)。 DeviceIoControl是用来控制我们指定设备的输入输出操作,使设备按照我们发的指令去工作。 DeviceIoControl是...
http返回错误码
http<em>返回</em><em>错误码</em>HTTP响应码响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。 响应码分五种类型,由它们的第一位数字表示: 1xx:信息,请求收到,继续处理 2xx:成功,行为被成功地接受、理解和采纳 3xx:重定向,为了完成请求,必须进一步执行的动作 4xx:客户端错误,请求包含语法错误或者请求无法实现 5xx:服务器错误,服务器不能实现一种明显无效的请求
C++异常 返回错误码
一种比异常终止更灵活的方法是,使用函数的<em>返回</em>值来指出问题。例如,ostream类的get(void)成员ASCII码,但到达文件尾时,将<em>返回</em>特殊值EOF。对hmean()来说,这种方法不管用。任何树脂都是有效的<em>返回</em>值,因此不存在可用于指出问题的特殊值。在这种情况下,可使用指针参数或引用参数来将值<em>返回</em>给调用能够程序,并使用函数的<em>返回</em>值来指出成功还是失败。istream族重载&gt;&gt;运算符使用...
记录下返回错误码
* ERROR_UNKNOWN  通用错误          * ERROR_HOST_LOOKUP 服务器或代理主机查找失败(链接有问题)          * ERROR_UNSUPPORTED_AUTH_SCHEME 不支持身份验证          * ERROR_AUTHENTICATION 用户身份验证失败          * ERROR_PROXY_AUTHENTICATI
DB2错误码返回
执行DB2的语句时,通过<em>返回</em>的code值来找错
百度网盘转存返回错误码
0:成功; -1:由于您分享了违反相关法律法规的文件,分享功能已被禁用,之前分享出去的文件不受影响。; -2:用户不存在;请刷新页面后重试; ...
关于VC中DeviceIoControl问题
本人对于DeviceIoControl有一定的了解,但是,我打算在MFC中使用时出现问题,我想实现从硬盘中接受的数据能够在对话框中显示,于是我使用了SetWindowText使其在静态文本框中出现,但
DeviceIoControl 的试用
http://dev.csdn.net/develop/article/17/17296.shtm
EXE和SYS通信DeviceIoControl
IoCode.h #ifndef IOCODE_HEAD_FILE #define IOCODE_HEAD_FILE #pragma once // 内核使用 #define DRV_DEVICE L"\\Device\\helloworld" //设备名称 #define DRV_SYSLNK L"\\??\\helloworld" //符号链接 //应用层
关于DeviceIoControl的参数二dwIoControlCode的问题
请问各位朋友:DeviceIoControl的参数二dwIoControlCode是不是可以由驱动程序自己定义呢? 也就是说自己在驱动程序定义一个IoControlCode,然后在AP中通过Devic
使用DeviceIoControl读写磁盘MBR, 修改分区类型示例
[cpp] view plain copy #include    #include    #include    #include       #pragma pack(1)      #define MAX_MBR_PARTITIONS          4   #define MBR_DISK_SIGNATURE_OFFSET   440  
CURLcode 返回错误码
CURLE_OK(0) 所有罚款。继续像往常一样。 CURLE_UNSUPPORTED_PROTOCOL(1) 你的URL传递给libcurl的使用协议,这libcurl的不支持。支持可能是你没有使用一个编译时的选项,它可以是一个拼写错的协议字符串,或者只是一个协议的libcurl没有代码。 CURLE_FAILED_INIT(2) 非常早期的初始化代码失败。这可能是内部错误或...
Laravel手动返回错误码
laravel手动<em>返回</em>错误状态码
微信返回错误码
链接地址: http://mp.weixin.qq.com/wiki/10/6380dc743053a91c544ffd2b7c959166.html 具体码: <em>返回</em>码说明 -1 系统繁忙,此时请开发者稍候再试 0 请求成功 40001 获取access_token时AppSecret错误,或者access_token无效。请开发者认真比对AppSec...
C#获取返回错误码
[DllImport(&quot;TestWin32Dll.dll&quot;, EntryPoint = &quot;TestFunc&quot;,SetLastError = true)] private static extern void TestFunc(); private void TestPInvoke() { TestFunc(); int reCode = Marshal.GetLastW...
DeviceIoControl失败,错误码为31
在装有PowerDVD DX 8.3.1版本的机器上使用NDIS进行拨号上网时,始终失败。最后发现在调用DeviceIoControl函数时失败,<em>返回</em><em>错误码</em>为31。不知道是什么原因。 hDevice
实战DeviceIoControl 之四:获取硬盘的详细信息
Q 用IOCTL_DISK_GET_DRIVE_GEOMETRY或IOCTL_STORAGE_GET_MEDIA_TYPES_EX只能得到很少的磁盘参数,我想获得包括硬盘序列号在内的更加详细的信息,有什么办法呀? A 确实,用你所说的I/O控制码,只能得到最基本的磁盘参数。获取磁盘出厂信息的I/O控制码,微软在VC/MFC环境中没有开放,在DDK中可以发现一些线索。早先,Lynn McGuire
驱动开发之 用DeviceIoControl实现应用程序与驱动程序通信
驱动开发之 用DeviceIoControl实现应用程序与驱动程序通信 1. readfile和writefile可以实现应用程序与驱动程序通信,另外一个Win32 API 是DeviceIoControl。 应用程序自定义一中IO控制码,然后调用DeviceIoControl函数,IO管理器会产生一个MajorFunction 为IRP_MJ_DEVICE_CONTROL,MinorFun
DeviceIoControl 驱动交互
驱动程序通信的函数,除了ReadFile和WriteFile函数还有DeviceIoControl函数,而且DeviceIoControl函数那是相当的彪悍。因为它可以自定义控制码,你只要在IRP_MJ_DEVICE_CONTROL对应的派遣函数中读取控制码,然后针对控制码,你就可以实现自定义的功能了。   函数原型: BOOL WINAPI DeviceIoControl(
通过DeviceIoControl获取U盘或移动硬盘的出品商、制造商和版本号等信息
本文通过DeviceIoControl获取插入计算机的USB设备的vender、producter和version
Android_SDK返回错误码接口
连接<em>错误码</em>的<em>返回</em>主要有  debugSessionInfo(Camera camera, int resultCode) debugChannelInfo(Camera camera, int avChannel, int resultCode) 这两个接口<em>返回</em>resultCode; debugSessionInfo是IOTCAPIs连接<em>返回</em>的<em>错误码</em>; debugChannelInfo是
ffmpeg返回错误码
调用某函数<em>返回</em>的<em>错误码</em>: AVERROR_BSF_NOT_FOUND: -1179861752 AVERROR_BUG: -558323010 AVERROR_BUFFER_TOO_SMALL: -1397118274 AVERROR_DECODER_NOT_FOUND: -1128613112 AVERROR_DEMUXER_NOT_FOUND: -1296385272 AVERRO
GetQueuedCompletionStatus 返回错误码997
初学IOCP,遇到一个问题,GetQueuedCompletionStatus <em>返回</em>true,但调GetlastError<em>返回</em>997(重叠 I/O 操作在进行中)。rn请大家指导一下,代码如下:rnrn[code=c]unsigned int WINAPI workerFunc(void* param)rnrn printf("工作线程已运行:%d\n", GetCurrentThreadId());rnrn static DWORD dwFileSize = (DWORD)param;rn static DWORD dwStartRead = 0;rnrn DWORD dwBytesTransferred;rn OverLappedPlus ovlpPls;rn OVERLAPPED* lpOverlapped;rnrn while (1)rn rn bool bRet = GetQueuedCompletionStatus(hIocp, &dwBytesTransferred, (PULONG_PTR)&ovlpPls, &lpOverlapped, INFINITE);rn if (!bRet)rn rn printf("Error! -- %d\n",GetCurrentThreadId());rn continue;rn rn DWORD dwErr = GetLastError();rnrn if (lpOverlapped == NULL)rn rn printf("Received quit order. -- %d\n",GetCurrentThreadId());rn break;rn rn if (0 != dwErr)rn rn // printf("ThreadID:%d Error occur: %d:",GetCurrentThreadId(),dwErr);rn if (dwErr == 997)rn rn continue;rn rn elsern rn printf("Other error occur.--%d",GetCurrentThreadId());rn rn rnrn OverLappedPlus* pPlus = (OverLappedPlus*)lpOverlapped;rn if (pPlus->opType == OP_READ)rn rn printf("ThreadID:%d. %d%d\n",GetCurrentThreadId(), lpOverlapped->Offset, lpOverlapped->Offset+dwBytesTransferred);rn EnterCriticalSection(&csRead);rn if (dwStartRead >= dwFileSize)rn rn printf("已读完 _%d",GetCurrentThreadId());rn dwFileSize = 0;rn LeaveCriticalSection(&csRead);rn break;rn rn elsern rn rn DWORD iToRead = dwFileSize - dwStartRead;rn if (iToRead > BUF_LEN)rn rn iToRead = BUF_LEN;rn rnrn memset(lpOverlapped, 0, sizeof(OVERLAPPED));rn lpOverlapped->Offset = dwStartRead;rnrn dwStartRead += iToRead;rnrn ReadFile(pPlus->hFile, pPlus->buf, iToRead, NULL, lpOverlapped); rn rn LeaveCriticalSection(&csRead);rn rnrn rnrn printf("工作线程即将退出:%d\n", GetCurrentThreadId());rn return 0;rn[/code]rnrn该函数实现用IOCP读本地文件的功能。rn我在主函数里还执行了这样一句代码: ReadFile(hRead, opsR.buf, 0, NULL, &opsR.olpd); 是想先产生一个异步操作。rn现在工作线程第一次能够正确执行,GetQueuedCompletionStatus <em>返回</em>true,且GetlastError<em>返回</em>0.然后会执行下面的操作,进行另一次异步读。rn但接下来:GetQueuedCompletionStatus<em>返回</em>true,但GetLastError<em>返回</em>997了。rnrn初学IOCP,不知道怎么处理GetQueuedCompletionStatus的<em>返回</em>结果。rn我想不明白的地方:rn1、GetQueuedCompletionStatus<em>返回</em>true,而且Overlapped* 参数不为NULL,那就表示有IO操作完成了。但<em>为什么</em>调用GetLastError会<em>返回</em>997(重叠 I/O 操作在进行中)呢 ?rnrn2、如果重叠IO操作未完成且外部没有调用PostQueuedCompletionStatus,那么GetQueuedCompletionStatus<em>为什么</em><em>返回</em>呢 ?rnrn3、对GetQueuedCompletionStatus只有在<em>返回</em>FALSE的情况下,才需要调用GetLastError么 ?rnrn
DeviceIoControl 的lpOutBuffer参数值返回错误!!!
就是想实现应用程序调用iocontrol来读取nand中的数据,但lpOutBuffer<em>返回</em>的都是0xff,真是搞不懂是哪的问题,谢谢大家rn应用rnhFunction = CreateFile( TEXT("DSK1:"),rn FILE_WRITE_ATTRIBUTES,rn 0,rn NULL,rn OPEN_EXISTING,rn FILE_ATTRIBUTE_NORMAL ,rn NULL);rnDeviceIoControl(hFunction,READ_FAT, NULL,rn 0,rn &PageBuffer,rn KernelPageBase, rn NULL,rn NULL);rn驱动iocontrol中rnunsigned int FATPageBase = (unsigned int)nOutBufSize;rn case READ_FAT:rn rn InitNandCfg(); rn ReadPage(FATPageBase, (unsigned char *)pOutBuf);rn DsNandFlash(); rn return(FALSE);rn
为什么socket 返回-1?
#include rnrn class serverrnpublic:rn virtual int run(int argc,char ** argv);rn protected:rn virtual int open(short port=0);rn virtual int wait_for_multiple_events();rnrn virtual int handle_data(int sock=0);rnrn private:rn int serverfd;rn ;rn int server::run(int argc,char ** argv)rnrn if (open(argc>1?atoi(argv[1]):10000)==-1) return -1;rnrn for(;;)rn rn if(wait_for_multiple_events()==-1) return -1;rnrn rn return 0;rnrnrnserver::open(short port)rnrn struct sockaddr_in serveraddr;rnrn if((serverfd=socket(AF_INET,SOCK_STREAM,0))==-1)rn printf("socket error!");return -1;//单步运行到这里serverfd==-1,<em>为什么</em>??rn serveraddr.sin_family=AF_INET;rn serveraddr.sin_port=htons(port);rn serveraddr.sin_addr.s_addr=INADDR_ANY;rn // bzero(&(serveraddr.sin_zero),8);rn if (bind(serverfd,(struct sockaddr*)&serveraddr,sizeof(struct sockaddr))==-1)rn printf("bind error!");return -1;rn if (listen(serverfd,1)==-1)printf("bind error!");return -1;rnrnrn return 0;rn ;rnrn int server::handle_data(int sock)rn char buf[22],spare[22];rn int n;rn return 0;rn ;rnrn int server::wait_for_multiple_events()rn int newfd,size;rn struct sockaddr_in clientaddr;rn size=sizeof(struct sockaddr_in);rn newfd=accept(serverfd,(struct sockaddr *)&clientaddr,&(size));rnrn handle_data(newfd);rn return 0;rn ;rnrnint main(int argc, char* argv[])rnrn server s;rn s.run(argc,argv);rn return 0;rn
IOCTL_STORAGE_QUERY_PROPERTY
-
DeviceIoControl解读
设备驱动程序可以被当作内核模式函数包来看待,I/O控制代码就是用来指定访问其中的哪个函数的。DeviceIoControl函数的dwIoControlCode参数就是这个代码,它指出了我们需要进行的操作,以及如何进行操作。  控制代码是32位数字型常量,可以CTL_CODE宏来定义,它们定义在winioctl.inc和ntddk.inc文件中。  控制代码中各数据位字段的含义如下:  ◎
GetVolumeInformation获取磁盘信息与DeviceIoControl获取硬盘信息
硬盘序列号: 英文名 Hard Disk Serial Number, 该号是出厂时生产厂家为区别产品而设置的, 是唯一的, 是只读的, 利用硬盘序列号的加密往往是利用其唯一和只读的特性, 大多是针对有序列号的 IDE HDD而言, 对于没有序列号或SCSI HDD硬盘则无能为力, 这也是利用它进行加密的局限性.        卷的序列号: 英文名 Volume Serial Number,
DeviceIoControl使用说明
DeviceIoControl的使用说明 16:29 15972人阅读 评论(0) 收藏 举报 应用程序和驱动程序的通信过程是:应用程序使用CreateFile函数打开设备,然后用DeviceIoControl与驱动程序进行通信,包括读和写两种操作。还可以用ReadFile读数据用WriteFile写数据。操作完毕时用CloseHandle关闭设备。我们比较常用的就是用De
read 返回 -1, 为什么
[code=c]#includern#includern#includern#includernrnint main()rnrn char file[] = "/root/b.c";rn int flags = O_RDONLY;rn flags |= O_DIRECT;rn flags |= O_SYNC;rn int fd = open(file, flags);rn char buff[4096];rn printf("%d\n", read(fd, buff, 2));rn while(read(fd, buff, 2) > 0)rn rn printf("aaaa\n");rn printf("%s", buff);rn rn close(fd);rn[/code]rnrnrn我这样读文件,read <em>为什么</em><em>返回</em> -1。rn哪里错了。
为什么老师返回-1?
string srns = trim(sle_1.text)rnrnmessagebox("",s)rnlong i=Len(s)rnmessagebox("字符串长度",i)rnrn总是<em>返回</em>-1,难道是程序的错误吗?
glGetUniformLocation为什么返回-1
SDL2+OpenGL ES2编程,Linux4.2.5,mesa11.0.4,Intel集成显卡,gdb调试发现glGetUniformLocation<em>返回</em>-1,窗口黑屏,怎么办?如果直接删掉uniform变量相关的代码就能正常显示三角形,GLSL代码是不是写错了?rn我正在学着用OpenGL ESrn[code=c]rn#include rn#include rn#include rnrnvoid changemvp(GLfloat mvp[16]);rnrnint main(int argc, char **argv)rn SDL_Init(SDL_INIT_VIDEO);rnrn SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);rn SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);rn SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);rn SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);rn SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);rn SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);rn SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);rnrn SDL_DisplayMode dm;rn SDL_GetDesktopDisplayMode(0, &dm);rnrn SDL_Window *win = SDL_CreateWindow("Hello", 0, 0, dm.w, dm.h, SDL_WINDOW_OPENGL);rn SDL_GLContext glc = SDL_GL_CreateContext(win);rnrn const GLchar * vShaderStr = rn "attribute vec4 vPosition;"rn "attribute vec4 vColor;"rn "uniform mat4 mvp"rn "varying vec4 v_color;"rn "void main() "rn " "rn " gl_Position = mvp * vPosition;"rn " v_color = vColor;"rn "";rn rn const GLchar * fShaderStr = rn "precision mediump float;"rn "varying vec4 v_color;"rn "void main()"rn ""rn " gl_FragColor = v_color;"rn "";rnrn GLuint vertexShader;rn GLuint fragmentShader;rn GLuint programObject;rnrn vertexShader = glCreateShader(GL_VERTEX_SHADER);rn fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);rnrn glShaderSource(vertexShader, 1, &vShaderStr, NULL);rn glShaderSource(fragmentShader, 1, &fShaderStr, NULL);rn glCompileShader(vertexShader);rn glCompileShader(fragmentShader);rnrn programObject = glCreateProgram ( );rnrn glAttachShader ( programObject, vertexShader );rn glAttachShader ( programObject, fragmentShader );rnrn glLinkProgram ( programObject );rn glDeleteShader(vertexShader);rn glDeleteShader(fragmentShader);rnrn glUseProgram(programObject);rnrn glClearColor ( 0.0f, 0.0f, 0.0f, 0.0f );rn glClear(GL_COLOR_BUFFER_BIT);rn glViewport(0,0,dm.w,dm.h);rnrnrn GLfloat vVertices[] = 0.0f, 0.5f, 0.0f, 0.67f, 0.4f, 0.47f,rn -1.0f, -0.5f, 0.0f, 1.0f, 0.4f, 0.97f,rn 0.5f, -0.5f, 0.0f, 0.0f, 0.4f, 0.57frn ;rn #define stride 6rn #define vPosition_offset 0rn #define vPosition_size 3rn #define vColor_offset 3rn #define vPosition_size 3rnrn GLfloat mvp[16]=1,0,0,0,rn 0,1,0,0,rn 0,0,1,0,rn 0,0,0,1rn ;rn glBindAttribLocation ( programObject, 0, "vPosition" );rn glBindAttribLocation ( programObject, 1, "vColor" );rn glVertexAttribPointer ( 0, vPosition_size, GL_FLOAT, GL_FALSE, stride*sizeof(float), vVertices+vPosition_offset );rn glVertexAttribPointer ( 1, vPosition_size, GL_FLOAT, GL_FALSE, stride*sizeof(float), vVertices+vColor_offset );rn int mvploc = glGetUniformLocation(programObject, "mvp");rn glUniformMatrix4fv(mvploc, 1, GL_FALSE, mvp);rn glEnableVertexAttribArray ( 0 );rn glEnableVertexAttribArray ( 1 );rn glDrawArrays(GL_TRIANGLES, 0, 3);rn SDL_GL_SwapWindow(win);rnrnrn SDL_Event e;rn while(1)rn int r = SDL_PollEvent(&e);rn if(!r)continue;rn if(e.type == SDL_KEYDOWN)goto quit;rn if(e.type == SDL_MOUSEMOTION)rn changemvp(mvp);rn rn rnrn quit:rn SDL_GL_DeleteContext(glc);rn SDL_DestroyWindow(win);rn SDL_Quit();rnrnrnvoid changemvp(GLfloat mvp[16])rnrn[/code]
为什么返回是-1????????????/
set conn=server.CreateObject("adodb.connection")rn str="provider=sqloledb;user id=sa;initial catalog=master;data source=administrator"rn conn.Open strrnset rs=server.CreateObject("adodb.recordset")rn sql="select * from euroa"rn rs.Open sql,conn,1,3rn Response.Write rs(0) '正确rn Response.Write rs.RecordCount '<em>返回</em> -1rnrn这个库里有两条记录.如果我设一个字段为主键就会显示正确.<em>为什么</em>呀.能不能不设呀.rn论坛里相关的帖子我都查了.没有找到相关的.rn
为什么select返回-1
模仿别人的程序,客户端和服务器通信,但是老是连接上了,信息发送不过去,后来调试的时候是在使用select()的时候它<em>返回</em>了-1,直接跳出了程序,没有发送数据,代码为:rnBOOL CDealCMDThread::SOKCET_Select(SOCKET hSocket,int nTimeOut,BOOL bWrite)rnrn fd_set fdset;rn struct timeval tv;rn FD_ZERO(&fdset);rn FD_SET(hSocket, &fdset);rn tv.tv_sec = nTimeOut;rn tv.tv_usec = 0;rn rn int nRes = 0;rn if(bWrite)rn nRes = select(hSocket + 1, NULL , &fdset, NULL, &tv);rn elsern nRes = select(hSocket + 1, &fdset, NULL , NULL, &tv);rn rn if(nRes == 0)rn rn// DW(_T("SOKCET_Select Time Out"));rn return FALSE;rn rn rn if(nRes < 0)rn rn int nErr = WSAGetLastError();rn// DW(_T("SOKCET_Select Select Error = %d"),nErr);rn return FALSE;rn rn rn if(FD_ISSET(hSocket, &fdset))rn return TRUE;rn rn return FALSE;rnrn<em>为什么</em>nRes的<em>返回</em>值为-1啊,<em>返回</em>-1代表什么出错呢??rn请各位帮帮我!
DeviceIoControl与驱动交互
与驱动程序通信的函数,除了ReadFile和WriteFile函数还有DeviceIoControl函数,而且DeviceIoControl函数那是相当的彪悍。因为它可以自定义控制码,你只要在IRP_MJ_DEVICE_CONTROL对应的派遣函数中读取控制码,然后针对控制码,你就可以实现自定义的功能了。   函数原型: BOOL WINAPI DeviceIoControl(  __
DeviceIoControl 直接从磁盘扇区读文件
好久没写博客了,最近看了下DeviceIoControl  关于磁盘的应用,特记一文,以备久后查阅。 首先介绍下,文件在磁盘的存储结构(具体可以到网上查询NTFS文件系统相关的教程后者数据恢复方面教程的介绍)。下面介绍的仅与此文相关。 文件属性(头): (Ps: 截图摘自[数据重现文件系统原理精解与数据恢复最佳实践].(马林)) 然后我们需要认识两个结构:
USB编程研究之三(DeviceIoControl函数和控制码)
在对USB研究的过程中,不得已不停的在网上搜索资料,但得到的都是相互抄袭,对用途和方法解释得很少,大概很多人抱着不同的心里吧,有些人想炫耀一下自己的水平,有不想教别人,而有些人自以为懂了,其实至少掌握了几段源码,对里面的东西根本就没有认真的研究。   对于USB编程,其中一个函数叫做: BOOL DeviceIoControl(   HANDLEhDevice,             /
关于DeviceIoControl实现异步的笔记
链接地址 : http://yexin218.iteye.com/blog/638445 一直所做的都是同步实现的。当然很多情况这并不是很好的解决问题。现在手上的问题是:用户层通知底层驱动(Filter Driver)做某件事,然后<em>返回</em>该事件执行的结果。如果该事件是一件简单的事情,这里是指极短时间内可以完成的,那么在允许范围内,我们可以用同步来完成。但是如果该事件是一件耗时的工作,而应用
【Android】微信支付错误码 -1
微信支付的实现非常简单,核心代码就十几行,但是一旦出问题,就很难找到问题所在 简单介绍一下: 引入包 implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+' 在appliction中注册 IWXAPI api = WXAPIFactory.createWXAPI(this, null,fal...
DeviceIoControl求助!为什么总是失败?
HANDLE hVol=CreateFileA(fileNameStr.data(),rn 0,rn FILE_SHARE_READ|FILE_SHARE_WRITE,rn NULL,rn OPEN_EXISTING,rn FILE_ATTRIBUTE_READONLY,rn NULL);rn if(hVol==INVALID_HANDLE_VALUE)printf("获取驱动盘句柄失败--handle:%x error:%d\n",hVol,GetLastError());rn else printf("success\n");rnrnULONG br; rnCREATE_USN_JOURNAL_DATA cujd; rncujd.MaximumSize = 0; // 0表示使用默认值 rncujd.AllocationDelta = 0; // 0表示使用默认值 rnBYTE bTemp[512];rnrn//初始化USN日志文件rnBOOL status = DeviceIoControl(hVol, rn FSCTL_CREATE_USN_JOURNAL, rn &cujd, rn sizeof(cujd), rn bTemp, rn sizeof(bTemp), rn &br, rn NULL); rn rnif(0!=status) rn printf("success\n");rnelse rn printf("初始化USN日志文件失败 —— status:%x error:%d\n", status, GetLastError()); rn rnrnCreateFile可以成功!当后面 DeviceIoControl总是<em>返回</em>:初始化USN日志文件失败,error:1
oracle错误码大全1
Oracle错误代码一览表 Oracle错误代码一览表,方便大家查询! (字数比较多,发布不了全部的,剩下的在1楼沙发里) ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附...
DeviceIoControl实现异步的方法总结
DeviceIoControl实现异步的方法总结 前面我们谈到了关于异步I/O的实现:关于DeviceIoControl实现异步的笔记【1】。可是实现起来,你会发现你的程序在DevieIoControl已经被挂起,而且<em>返回</em>的结果是非0。这就与真正的异步调用<em>返回</em>结果有出入,理论上应该<em>返回</em>0,且GetLastError()值为ERROR_IO_PENDING。C代码/**    Send the packets defined by users */  BOOL 
DeviceIOcontrol(1)
Q 在NT/2000/XP中,我想用VC编写应用程序访问硬件设备,如获取磁盘参数、读写绝对扇区数据、测试光驱实际速度等,该从哪里入手呢?A 在NT/2000/XP中,应用程序可以通过API函数DeviceIoControl来实现对设备的访问—获取信息,发送命令,交换数据等。利用该接口函数向指定的设备驱动发送正确的控制码及数据,然后分析它的响应,就可以达到我们的目的。DeviceIoCont
DeviceIoControl的返回结果判断
DeviceIoControl的使用 不应该以ret来判断DeviceIoControl的结果,而应该以lpBytesReturned。 READ操作,lpBytesReturned<em>返回</em>实际读的字节数;WRITE操作,lpBytesReturned<em>返回</em>实际写的字节数。
restful 常见的返回错误码总结
HTTP 400 - 请求错误:bad_request HTTP 406 错误 – 无法接受 (Not acceptable) 422 Unprocessable Entity - 请求格式正确 附:对照表 Response Class HTTP Status Code Symbol 消息 100 :continue 101 :switching...
postgresql 中如何返回错误码
客户端如(php)中执行postgresql命令,出错的话,如何<em>返回</em><em>错误码</em>。使用pg_last_error好像只<em>返回</em>错误信息。请多指教。
deviceiocontrol
最近作一个手机和pc的通信 pc是个stardard devicernrn所以只要用<em>deviceiocontrol</em>发送scsi指令就可以rnrn于是有个问题rnrn对于<em>deviceiocontrol</em>的参数<em>为什么</em>很多资料上都使用SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER这个结构体, rn<em>为什么</em>我们不自己定义自己的结构体呢rn这么做有什么好处呢?
微信分享返回 错误码 -6 的情况!
<em>错误码</em> -6在官方的文档里面并没有的 有的说是 微信缓存,可我卸载了N多次都是不行的 当然如果key百分百正确的情况下不排除以上方法的有效性 这个时候我开始考虑key是否错了,因为不是自己申请的,最终果然如此啦主要会可能有两个原因, 第一是 申请时 MD5的值不对 下面有查看方法 第二是 本地的微信Key值可能会不对 ,这是我遇到的两个主要的原因中间还有一次,是因为 MD5 的
curl常见返回错误码
curl常见<em>返回</em><em>错误码</em>说明: curl常见的<em>返回</em><em>错误码</em>,中文的翻译好像不是很详细,因此把英文的贴在下面了。有空再翻译下。中文:CURLE_OK (0) – 都正确,像往常一样 CURLE_UNSUPPORTED_PROTOCOL (1) – 您传送给 libcurl 的网址使用了此 libcurl 不支持的协议。 可能是您没有使用的编译时选项造成了这种情况(可能是协议字符串拼写有误,或没
iOS 网络请求返回错误码汇总
enum { NSURLErrorUnknown = -1, NSURLErrorCancelled = kCFURLErrorCancelled, NSURLErrorBadURL = kCFURLErrorBadURL, NSURLErrorTimedOut = kCFURLErrorTimedOut, NSURLErrorUn
异常处理,abort(),exit(),返回错误码
abort函数位于cstdlib头文件里,它会终止程序,并根据具体实现<em>返回</em>一个值给调用这个程序的系统或进程,而exit函数单纯终止程序,不会<em>返回</em>消息。 abort的具体实现: #include #include using namespace std; double hmean(double a,double b){ if(a==-b){ cout<
ajax后台返回指定的错误码
js: $.ajax({ type: "POST", url: 'post.php', data: serialNumber + "&amp;getSerialNumber=" + 1, dataType: 'json', success: function(da...
WeiBo返回错误码的二种方式
    OAuth2.0 <em>错误码</em> 新浪微博OAuth2.0实现中,授权服务器在接收到验证授权请求时,会按照OAuth2.0协议对本请求的请求头部、请求参数进行检验,若请求不合法或验证未通过,授权服务器会<em>返回</em>相应的错误信息,包含以下几个参数: error: <em>错误码</em> error_code: 错误的内部编号 error_description: 错误的描述信息 error_url: 可...
LoadLibray失败,返回错误码193
最近开发中遇到loadlibrary失败的问题,困扰了很久,最近终于解决了,做个笔记同时也希望遇到此类问题的人多一种尝试的途径。 正题:在c++的开发中,需要加载java虚拟机(jvm.dll),我用的是loadlibrary,一直也是相安无事。直到遇到在一台机器程序崩溃,问题才暴露出来;我的应用程序是64位的,jvm.dll也是64位的(depends查看),所以不是64位程序加载32位dll
acedssget返回错误码-5001原因
原因可能是没有指定过滤机对象 也可能是对象dwgin out函数有问题!
jsp的一些习题很简单下载
jsp的一些习题很简单,虽然不是很多很全面但是认为大家提供一点方便 相关下载链接:[url=//download.csdn.net/download/w282755311/2365157?utm_source=bbsseo]//download.csdn.net/download/w282755311/2365157?utm_source=bbsseo[/url]
藏式风格图片下载
有好多藏式风格的图片,用于网站的建设,网站的前台都很有用,希望能帮助大家 相关下载链接:[url=//download.csdn.net/download/zwx513143432/4811105?utm_source=bbsseo]//download.csdn.net/download/zwx513143432/4811105?utm_source=bbsseo[/url]
MySQL-client-5.5.16-1.rhel5.x86_64.rpm下载
MySQL-client-5.5.16-1.rhel5.x86_64.rpm linux 64位 mysql 安装包 相关下载链接:[url=//download.csdn.net/download/sun_aichao/5091629?utm_source=bbsseo]//download.csdn.net/download/sun_aichao/5091629?utm_source=bbsseo[/url]
相关热词 c#串口测试应用程序 c# 匹配 正则表达式 c#防止窗体重绘 c#读写txt文件 c#挖地雷源代码 c#弹框选项 c# 移除 队列 c# 密码写入配置文件 c# 获取可用内存大小 c# 嵌入excel编辑
我们是很有底线的