天天看点

windows驱动开发——基础知识

1、应用程序工作在R3层,驱动工作在R0层。

2、32位系统,R3层2G,R0层2G。

3、驱动区分大小写。

4、返回码:NTSTATUS

5、KdPrint

KdPrint使用方法类似printf,注意KdPrint((" ",  ));使用的是双括号。

用KdPrint(())来代替printf 输出信息。这些信息可以在DbgView 中看到。KdPrint(())自身是一个宏,

为了完整传入参数所以使用了两重括弧。这个比DbgPrint 调用要稍好。因为在free 版不被编译。

DebugPrint格式说明符

[cpp]  view plain copy

  1.          格式说明符                类型  
  2. %c ANSI字符                 char  
  3. %C 宽字符                   wchar_t  
  4. %d,%i 十进制有符号整数       int  
  5. %D 十进制__int64            __int64  
  6. %I IRP主功能代码和次功能代码 PIRP  
  7. %l 十六进制的__int64        __int64  
  8. %L 十六进制的LARGE_INTEGER   LARGE_INTEGER  
  9. %s NULL终止的ANSI字符串      char *  
  10. %S NULL终止的宽字符串       wchar_t *  
  11. %T  UNICODE_STRING         PUNICODE_STRING  
  12. %u 十进制的ULONG            ULONG  
  13. %x 十六进制的ULONG          ULONG  

继续阅读