当前位置: 操作系统/服务器>windows
本页文章导读:
▪请教:使用signcode/signtool进行代码签名后,怎么使用API验证签名 请问:使用signcode/signtool进行代码签名后,如何使用API验证签名?请问:使用signcode/signtool进行代码签名后,如何使用API验证签名?
顶了 等待高手 ......
▪ 什么原因可以造成系统找不到U盘路径,使U盘无法访问?该怎么解决 什么原因可以造成系统找不到U盘路径,使U盘无法访问?U盘插入电脑后,系统能读出U盘已经插入,但无法打开,而且也查不出U盘使用多少空间;当要双击打开或者邮件单击后点“打开”时,.........
▪ 驱动 应用程序通信有关问题 驱动 应用程序通信问题我最近想写个用驱动遍历读取EPROCESS,从而显示系统所有进程的程序,但是数据交互中出了点问题,大家帮忙看下吧 谢谢了。应用程序部分 typedef struct _PROCESS_I.........
[1]请教:使用signcode/signtool进行代码签名后,怎么使用API验证签名
来源: 互联网 发布时间: 2014-02-18
请问:使用signcode/signtool进行代码签名后,如何使用API验证签名?
请问:使用signcode/signtool进行代码签名后,如何使用API验证签名?
顶了
等待高手
请问:使用signcode/signtool进行代码签名后,如何使用API验证签名?
顶了
等待高手
[2] 什么原因可以造成系统找不到U盘路径,使U盘无法访问?该怎么解决
来源: 互联网 发布时间: 2014-02-18
什么原因可以造成系统找不到U盘路径,使U盘无法访问?
U盘插入电脑后,系统能读出U盘已经插入,但无法打开,而且也查不出U盘使用多少空间;当要双击打开或者邮件单击后点“打开”时,系统提示“找不到U盘路径,无法访问”,请问这样的问题有什么原因造成?先行谢过!
可能的原因中毒或者u盘损坏,lz可以尝试在地址栏中直接敲U盘盘符加冒号,或者在命令提示行下用dos命令打开。也可以多用别的电脑试试能不能打开。还不行的话只能下载u盘工具低格或者修复了。
这和我的问题一样:
http://topic.csdn.net/u/20090205/12/249980e3-f7c4-49b0-a51b-057307e14fd1.html
探讨
如果所有U盘都这样,可能是USB接口供电不足或损坏。
你可以试一下其他U盘,如果可以读出来的话,那就是这个U盘坏了,如果其他U盘都一样读不出来,那就是接头有问题
可能是中病毒了,杀毒吧,瑞星比较好
U盘插入电脑后,系统能读出U盘已经插入,但无法打开,而且也查不出U盘使用多少空间;当要双击打开或者邮件单击后点“打开”时,系统提示“找不到U盘路径,无法访问”,请问这样的问题有什么原因造成?先行谢过!
可能的原因中毒或者u盘损坏,lz可以尝试在地址栏中直接敲U盘盘符加冒号,或者在命令提示行下用dos命令打开。也可以多用别的电脑试试能不能打开。还不行的话只能下载u盘工具低格或者修复了。
这和我的问题一样:
http://topic.csdn.net/u/20090205/12/249980e3-f7c4-49b0-a51b-057307e14fd1.html
探讨
如果所有U盘都这样,可能是USB接口供电不足或损坏。
你可以试一下其他U盘,如果可以读出来的话,那就是这个U盘坏了,如果其他U盘都一样读不出来,那就是接头有问题
可能是中病毒了,杀毒吧,瑞星比较好
[3] 驱动 应用程序通信有关问题
来源: 互联网 发布时间: 2014-02-18
驱动 应用程序通信问题
我最近想写个用驱动遍历读取EPROCESS,从而显示系统所有进程的程序,但是数据交互中出了点问题,大家帮忙看下吧 谢谢了。
应用程序部分
typedef struct _PROCESS_INFO
{
PUCHAR pImageFileName;
ULONG dwProcessId;
}PROCESS_INFO,*PPROCESS_INFO;
typedef struct _DEVICE_EXTENSION
{
ULONG data_num;
PROCESS_INFO process_info[30];
}DEVICE_EXTENSION;
。。。。。
DEVICE_EXTENSION dev_extentsion;
ULONG NumOfByte;
DeviceIoControl(hDev,GET_EPROCESS,NULL,0,&dev_extentsion,sizeof(DEVICE_EXTENSION),&NumOfByte,NULL);
驱动部分
DEVICE_EXTENSION dev_extension;
//将EPROCESS内容存储到结构变量dev_extension中提供给应用程序
NTSTATUS GetProcessInfo()
{
ULONG FirstProcess;
ULONG EProcess;
ULONG i = 0;
PLIST_ENTRY ActiveProcessLinks;
EProcess = FirstProcess = (ULONG)PsGetCurrentProcess();
for (i;dev_extension.data_num < MAX_PROCESS_NUM;i++)
{
dev_extension.process_info[i].dwProcessId = *(PULONG)(EProcess+PID_OFFSET);
dev_extension.process_info[i].pImageFileName = (PUCHAR)(EProcess+PNAME_OFFSET);
dev_extension.data_num++;
ActiveProcessLinks = (PLIST_ENTRY)(EProcess+PLINK_OFFSET);
EProcess = (ULONG)ActiveProcessLinks->Flink-PLINK_OFFSET;
if (EProcess == FirstProcess)
break;
}
return STATUS_SUCCESS;
}
NTSTATUS DriverIoControlDispatch(IN PDEVICE_OBJECT pDevobj,IN PIRP pIrp)
{
PIO_STACK_LOCATION stack =
IoGetCurrentIrpStackLocation(pIrp);
ULONG code;
PVOID IoBuffer = pIrp->AssociatedIrp.SystemBuffer;
ULONG DesireLength;
ULONG OutputBufferLength ;
code = stack->Parameters.DeviceIoControl.IoControlCode;
KdPrint(("enter my deviceControl\n"));
switch (code)
{
case GET_EPROCESS:
{
ULONG i = 0;
ULONG test;
GetProcessInfo();
DesireLength = sizeof(PROCESS_INFO)*MAX_PROCESS_NUM + sizeof(ULONG);
OutputBufferLength = stack->Parameters.DeviceIoControl.OutputBufferLength;
if (DesireLength > OutputBufferLength)
{
DbgPrint("desireLength = %lu
outputBufferlength = %lu",DesireLength,OutputBufferLength);
DbgPrint("the output buffer is too small");
break;
}
RtlCopyMemory(IoBuffer, &dev_extension.data_num, DesireLength);
dev_extension.data_num = 0;
break;
}
}
在驱动中用DbgPrint输出显示很正常,所以应该是传递的问题。请大家帮帮忙,或者给我说下 应该看哪个方面的东西,谢谢
占个沙发,顶一下
我最近想写个用驱动遍历读取EPROCESS,从而显示系统所有进程的程序,但是数据交互中出了点问题,大家帮忙看下吧 谢谢了。
应用程序部分
typedef struct _PROCESS_INFO
{
PUCHAR pImageFileName;
ULONG dwProcessId;
}PROCESS_INFO,*PPROCESS_INFO;
typedef struct _DEVICE_EXTENSION
{
ULONG data_num;
PROCESS_INFO process_info[30];
}DEVICE_EXTENSION;
。。。。。
DEVICE_EXTENSION dev_extentsion;
ULONG NumOfByte;
DeviceIoControl(hDev,GET_EPROCESS,NULL,0,&dev_extentsion,sizeof(DEVICE_EXTENSION),&NumOfByte,NULL);
驱动部分
DEVICE_EXTENSION dev_extension;
//将EPROCESS内容存储到结构变量dev_extension中提供给应用程序
NTSTATUS GetProcessInfo()
{
ULONG FirstProcess;
ULONG EProcess;
ULONG i = 0;
PLIST_ENTRY ActiveProcessLinks;
EProcess = FirstProcess = (ULONG)PsGetCurrentProcess();
for (i;dev_extension.data_num < MAX_PROCESS_NUM;i++)
{
dev_extension.process_info[i].dwProcessId = *(PULONG)(EProcess+PID_OFFSET);
dev_extension.process_info[i].pImageFileName = (PUCHAR)(EProcess+PNAME_OFFSET);
dev_extension.data_num++;
ActiveProcessLinks = (PLIST_ENTRY)(EProcess+PLINK_OFFSET);
EProcess = (ULONG)ActiveProcessLinks->Flink-PLINK_OFFSET;
if (EProcess == FirstProcess)
break;
}
return STATUS_SUCCESS;
}
NTSTATUS DriverIoControlDispatch(IN PDEVICE_OBJECT pDevobj,IN PIRP pIrp)
{
PIO_STACK_LOCATION stack =
IoGetCurrentIrpStackLocation(pIrp);
ULONG code;
PVOID IoBuffer = pIrp->AssociatedIrp.SystemBuffer;
ULONG DesireLength;
ULONG OutputBufferLength ;
code = stack->Parameters.DeviceIoControl.IoControlCode;
KdPrint(("enter my deviceControl\n"));
switch (code)
{
case GET_EPROCESS:
{
ULONG i = 0;
ULONG test;
GetProcessInfo();
DesireLength = sizeof(PROCESS_INFO)*MAX_PROCESS_NUM + sizeof(ULONG);
OutputBufferLength = stack->Parameters.DeviceIoControl.OutputBufferLength;
if (DesireLength > OutputBufferLength)
{
DbgPrint("desireLength = %lu
outputBufferlength = %lu",DesireLength,OutputBufferLength);
DbgPrint("the output buffer is too small");
break;
}
RtlCopyMemory(IoBuffer, &dev_extension.data_num, DesireLength);
dev_extension.data_num = 0;
break;
}
}
在驱动中用DbgPrint输出显示很正常,所以应该是传递的问题。请大家帮帮忙,或者给我说下 应该看哪个方面的东西,谢谢
占个沙发,顶一下
最新技术文章: