小编Eri*_*rik的帖子

如果WinDbg附带断点,则驱动程序加载/卸载失败

我刚开始开发驱动程序.对于一些加载,卸载和调试的实验,我编写了以下简单的驱动程序:

#include <ntddk.h> 

void DriverUnload(PDRIVER_OBJECT pDriverObject) 
{ 
    UNREFERENCED_PARAMETER(pDriverObject);
    DbgPrint("Driver unloading\n"); 
} 

NTSTATUS DriverEntry( 
    PDRIVER_OBJECT DriverObject, 
    PUNICODE_STRING RegistryPath) 
{ 
    UNREFERENCED_PARAMETER(DriverObject);
    UNREFERENCED_PARAMETER(RegistryPath);

    DriverObject->DriverUnload = DriverUnload; 
    DbgPrint("Hello, World\n"); 

    return STATUS_SUCCESS; 
}
Run Code Online (Sandbox Code Playgroud)

我编译了我的目标系统驱动程序,Windows 7 64位,带有调试符号,将其复制到目标系统并加载并使用OSR Driver Loader运行它.

一切正常,我可以卸载并加载驱动程序:在此输入图像描述

我可以使用串行连接与WinDbg连接,并可以成功中断并运行目标系统.但是,当我尝试设置断点时会出现问题.

我最初尝试像这样设置断点:

kd> bp MyDriver1!DriverEntry

但问题是,如果我重新加载驱动程序并检查断点:

kd> bl
0 e fffff880`03572010 0001(0001)<Unloaded_MyDriver1.sys> + 0x1010

对于我作为初学者,它看起来不好(卸载?)并且在加载时没有发生中断.

所以,我发现在加载模块时可以设置断点:

kd> bu MyDriver1

0 e fffff880`03578000 0001(0001)MyDriver1!DriverEntry <PERF>(MyDriver1 + 0x0)

当我在上述命令之后继续系统执行并加载驱动程序(net start MyDriver1)时,系统崩溃:

中断指令异常 - 代码80000003(第一次机会)


  • *
  • 您看到此消息是因为您按了*
  • CTRL + C(如果你运行控制台内核调试器)或*
  • CTRL + BREAK(如果你运行GUI内核调试器),*
  • 在调试器机器的键盘上.*
  • *
  • 这不是一个BUG或系统崩溃*
  • *
  • 如果您不打算进入调试器,请按"g"键,然后按*
  • 现在按"Enter"键.此消息可能会立即重新出现.如果它* …

windbg driver wdk device-driver

3
推荐指数
1
解决办法
2150
查看次数

带有C类型的NSArray?

我想知道是否可以使用带有C类型的NSArray/NSMuatbleArray作为元素,即CGLayerRef?

如果将CGLayerRef对象添加到NSMutableArray,则代码会编译,但会抛出警告:

警告:传递'objectForKey:'的参数1使得整数指针没有强制转换

因此我的问题是:如何在可变数组中存储C类型?

最好,

海因里希

iphone objective-c

2
推荐指数
2
解决办法
3554
查看次数

'hg strip'创建的补丁已损坏

我曾经hg strip从我的历史中删除了一些提交.现在我想重新应用在strip命令期间作为备份的补丁:.hg/strip-backup/68a8f24f62d0-backup.hg

不幸的是,当我尝试推送补丁时,补丁似乎已损坏:

$:~/sc2$ hg init --mq
adding .hg/patches/68a8f24f62d0-backup.hg
68a8f24f62d0-backup.hg: up to 582 MB of RAM may be required to manage this file
(use 'hg revert 68a8f24f62d0-backup.hg' to cancel the pending addition)
$:~/sc2$ hg qpush
applying 68a8f24f62d0-backup.hg
patch 68a8f24f62d0-backup.hg is empty
transaction abort!
rollback completed
cleaning up working directory...done
abort: decoding near 'h91AY&SY???S??????': 'utf8' codec can't decode byte 0xb1 in position 16: invalid start byte!
Run Code Online (Sandbox Code Playgroud)

有人有这个问题还是可以给我一个如何应用补丁的建议?如果不可能我不仅仅是搞砸......

也许这是一个python问题?

我试过hg unbundle得到这个:

adding changesets
adding manifests
adding file changes
transaction …
Run Code Online (Sandbox Code Playgroud)

python mercurial tortoisehg utf-8

2
推荐指数
1
解决办法
1195
查看次数

自定义@RequestParam类型处理程序

简单而简短的问题:有没有办法在Spring MVC中为自定义@RequestParam类型创建处理程序?

我知道我可以注册自定义WebArgumentResolver但我不能将这些绑定到参数.让我来描述一下我的用例:

考虑我已经定义了一个模型类Account:

public class Account {
    private int id;
    private String name;
    private String email;
}
Run Code Online (Sandbox Code Playgroud)

我的请求处理方法如下所示:

@RequestMapping("/mycontroller")
public void test(Account account1, Account account2) { 
    //... 
}
Run Code Online (Sandbox Code Playgroud)

如果我发出请求mydomain.com/mycontroller?account1=23&account2=12我想从数据库中自动加载Account对象,如果它们不存在则返回错误.

java spring spring-mvc java-ee

2
推荐指数
1
解决办法
2113
查看次数

等待异步请求完成

我想用boost编程一个HTTP客户端。如果可以执行以下操作,则可以使用异步模型:

  • 第一步,将请求发送到服务器。
  • 在第二步中,要么读取已经到达的响应,要么同步等待直到到达。

这是一个与我产生的类相似的类:

class HTTPClient {
public:
    void sendTheRequest(...) {
        // Send the HTTP request
    }

    std::string getTheResponse(...) {
        // return the already (asynchronously) received response, or wait for it
        // in this function
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以指出如何实现这一点吗?我担心我缺乏增强知识。

编辑以澄清问题:将在某个时间点调用sendTheRequest方法。也许直接在getTheResponse之后会被调用,但这也可能在几毫秒后发生。这就是为什么我要异步发送请求,但也需要同步等待它的原因。

c++ boost boost-asio

2
推荐指数
1
解决办法
3877
查看次数

Hibernate"ON UPDATE CURRENT TIMESTAMP"列

在MySQL中,可以在每次更新操作时更新TIMESTAMP行.有没有办法用Hibernate实现这一点并将其映射到POJO属性?

所以我有这样的事情:

@Column
private Date updated;
Run Code Online (Sandbox Code Playgroud)

java hibernate java-ee

1
推荐指数
1
解决办法
2792
查看次数

MSVC中的功能大小

可能重复:
有没有办法获得交流功能的大小?

我需要在运行时确定ac函数的字节大小.我正在使用MSVC,我可以使用此编译器提供的任何技术.

我知道这个问题已被问到很多,但我只能找到人们说"不,它不可能".不过,也许我已经监督了一个解决方案.如果是这种情况,请指出我.

c visual-c++

1
推荐指数
1
解决办法
226
查看次数

以编程方式创建具有"包含[cd]"约束的NSPredicate

从使用contains运算符的字符串创建NSPredicate是可能的,而且很容易,如下所示:

[NSPredicate predicateWithFormat:@"name contains[cd] \"Hello!\""];
Run Code Online (Sandbox Code Playgroud)

我想以编程方式创建这个谓词,因为可以与NSComparisonPredicate进行比较.有关于此的任何想法?

我以编程方式执行此操作的动机是,它不易出错,因为搜索字符串包含用户输入且未预定义.

海因里希

iphone objective-c

0
推荐指数
1
解决办法
1751
查看次数