- 博客(139)
- 资源 (12)
- 收藏
- 关注
原创 handling IRPs 17: Call to Action and Resources
Call to Action and ResourcesCall to action for driver developers: · Return STATUS_CONTINUE_COMPLETION or STATUS_MORE_PROCESSING_REQUIRED from all IoCompletion routines.·
2013-06-15 17:42:58 808
原创 handling IRPs 16: Debugging I/O Problems
Debugging I/O ProblemsDriver writers can use the Driver Verifier and extensions to the Microsoft debuggers to debug problems in handling IRPs.Driver Verifier can catch errors in every aspect of
2013-06-15 17:41:24 773
原创 handling IRPs 15: Building IRPs
Building IRPsDrivers can create two types of IRPs:· Threaded IRPs, also called synchronous requests.· Nonthreaded IRPs, also called asynchronous requests.Threaded IRPsT
2013-06-15 17:40:22 899
原创 handling IRPs 14: Success, Error, and Warning Status for IRP Completion
Success, Error, and Warning Status for IRP CompletionWhen a driver completes an IRP with a success or warning status, the I/O Manager: · Copies the data from the buffer specified in th
2013-06-15 17:37:47 927
原创 handling IRPs 13: I/O Control Codes (IOCTLs)
I/O Control Codes (IOCTLs)The I/O Manager sends an I/O control code (IOCTL) as part of the IRP for requests other than read or write requests. An IOCTL is a 32-bit control code that identifies an
2013-06-15 17:36:54 1077
原创 handling IRPs 12: Data Transfer Mechanisms
Data Transfer MechanismsThe Windows family of operating systems supports three data transfer mechanisms:· Buffered I/O operates on a kernel-mode copy of the user’s data.· D
2013-06-15 17:35:44 699
原创 Handling IRPs 11: Life Cycle of a File Object
Life Cycle of a File Object A file object is created each time a device is opened. Each file object represents a single use of an individual file, and maintains state information for that use (suc
2013-06-15 17:33:58 1059
原创 Handling IRPs 10: Optimizations
OptimizationsBy testing the value of the Irp->PendingReturned field, a driver can take advantage of the pending bit to optimize post-processing work for an I/O request. For example, a driver can u
2013-06-15 17:31:04 738
原创 Handling IRPs 9: Summary of Guidelines for Pending IRPs
smmary of Guidelines for Pending IRPsDriver writers must follow certain guidelines when handling IRPs for which STATUS_PENDING can be returned. Ignoring these guidelines may cause post-processing to
2013-06-15 17:30:35 754
原创 Handling IRPs 8: Propagating the Pending Bit
Propagating the Pending BitAny time a driver handling an I/O request returns the response of the next-lower driver, the value of the pending bit in its I/O stack location (SL_PENDING_RETURNED in the
2013-06-15 17:28:55 930
原创 Handling IRPs 7: IoCompletion Routines and Asynchronous I/O Responses
IoCompletion Routines and Asynchronous I/O ResponsesIf a driver sets an IoCompletion routine for an IRP, theIoCompletion routine can check the value of the Irp->PendingReturned field to determine
2013-06-15 17:28:08 1082
原创 Handling IRPs 6: Asynchronous I/O Responses
Asynchronous I/OResponsesA driver should return STATUS_PENDING from a dispatch routine when it cannot complete an I/O request synchronously in a timely manner. Understanding when to return STATU
2013-06-15 17:27:19 943
原创 Handling IRPs 5: Synchronous I/O Responses
Synchronous I/OResponsesAlthough the Windows operating system is designed for asynchronous I/O, most applications issue synchronous I/O requests. Drivers can also issue both synchronous and asyn
2013-06-15 17:25:26 1051
原创 Handling IRPs 4: Completing an IRP
Completing an IRPWhen I/O is complete, the driver that completed the I/O calls theIoCompleteRequest routine. This routine moves the IRP stack pointer to point to the next higher location in the
2013-06-15 17:22:35 802
原创 Handling IRPs 3: Passing an IRP to the Next Lower Driver
Passing an IRP to the Next Lower DriverPassing an IRP to the next lower driver (also calledforwarding an IRP) is the IRP equivalent of a subroutine call. When a driver forwards an IRP, it must p
2013-06-15 17:20:42 688
原创 Handling IRPs: Definition 2: IRP as a Thread-Independent Call Stack
Definition 2: IRP as a Thread-Independent Call StackPerforming an I/O operation typically requires more than one driver for a device. Each driver for a device creates a device object, and these de
2013-06-15 17:19:19 873
原创 Handling IRPs: Introduction
IntroductionThe Microsoft® Windows® family of operating systems communicates with drivers by sending I/O request packets (IRPs). The data structure that encapsulates the IRP not only describes an
2013-06-14 20:38:08 687
原创 从Boost退出的库
从Boost退出的库compose - 用于STL的函数组合适配器,来自 Nicolai Josuttis. 从 Boost version 1.32 起删除。请使用 Bind 或 Lambda 来替代
2013-06-14 20:18:35 699
原创 boost 杂项概述
杂项base-from-member - 用成员来初始基类的惯用法,来自 Daryle Walker. compressed_pair - 空成员优化,来自 John Maddock, Howard Hinnant 等人. conversion - 多态和字面转换,来自 Dave Abrahams 和 Kevlin Henney. crc - 循环冗余码,来自 Daryle Walker.
2013-06-14 20:17:37 623
原创 boost 编程接口概述
编程接口function - 延期调用和回调的函数对象包装,来自 Doug Gregor. parameter - 用于编写以名字来接受参数的函数,来自 David Abrahams 和 Daniel Wallin
2013-06-14 20:16:52 747
原创 boost 内存概述
内存pool - 内存池管理,来自 Steve Cleary. smart_ptr - 五种智能指针类模板,来自 Greg Colvin, Beman Dawes, Peter Dimov, 和 Darin Adler.utility - 类 noncopyable 和 checked_delete(),checked_array_delete(), next(), prior(
2013-06-14 20:16:16 618
原创 boost 交叉语言支持概述
交叉语言支持python - 将C++的类和函数反射到 Python, 来自 Dave Abrahams. lua -
2013-06-14 20:15:42 675
原创 boost 输入/输出概述
输入/输出asio - 可移植的网络和其它底层I/O,包括 sockets, 定时器, 主机名解释,socket 输入输出流,串行端口,文件描述符和 Windows HANDLEs,来自 Chris Kohlhoff.assign - 以从所未有如此容易的方法将常数或生成的数据填入容器,来自 Thorsten Ottosen. format - 类型安全的 '类printf' 的格式化
2013-06-14 20:14:20 1013
原创 boost 数据结构概述
数据结构any - 保存具有不同值类型的单个值的一种安全、泛型的容器,来自 Kevlin Henney. bimap - 双向 maps, 来自 Matias Capeletto. compressed_pair - 空成员优化,来自 John Maddock, Howard Hinnant 等人. fusion - 与 tuples 一起使用的库,包括多种容器、算法等。来自 Joel d
2013-06-14 20:13:39 817
原创 boost 正确性和测试概述
正确性和测试concept check - 泛型编程的工具,来自 Jeremy Siek. static_assert - 静态断言(编译期断言), 来自 John Maddock. test - 支持简单的程序测试、全单元测试,以及程序执行监控,来自 Gennadiy Rozental
2013-06-14 20:12:36 665
原创 boost 数学与数字概述
数学与数字accumulators - 进行累增计算的框架,以及一组统计学的累加器,来自 Eric Niebler. integer - 头文件,使得处理整型类型更为容易. interval - 将常用的算术函数扩展至数学区间,来自 Guillaume Melquiond, Herv´ Brönnimann 和 Sylvain Pion.math - 数学领域的几个贡献,来自多个作者.
2013-06-14 20:12:02 1111
原创 boost 并行编程概述
并行编程asio - 可移植的网络和其它底层I/O,包括 sockets, 定时器, 主机名解释,socket 输入输出流,串行端口,文件描述符和 Windows HANDLEs,来自 Chris Kohlhoff. interprocess - 共享内存、内存映射文件、进程共享互斥体、条件变量、容器和分配器,来自 Ion Gaztañaga. MPI - 消息传送接口库,用于分布式内
2013-06-14 20:11:20 1323
原创 boost 预处理元编程概述
预处理元编程preprocessor - 预处理器元编程工具,包含循环和递归,来自 Vesa Karvonen 和 Paul Mensonides
2013-06-14 20:10:31 1301
原创 boost 模板元编程概述
模板元编程function_types - 用于可调用、内建类型的类型 traits, 来自 Tobias Schwinger. fusion - 与 tuples 一起使用的库,包括多种容器、算法等。来自 Joel de Guzman, Dan Marsden 和 Tobias Schwinger.mpl - 模板元编程框架,编译期算法、序列和元函数类,来自 Aleksey Gurt
2013-06-14 20:09:35 1180
原创 boost 泛型编程库概述
泛型编程call_traits - 定义用于传递参数的类型,来自 John Maddock, Howard Hinnant 等人. concept check - 泛型编程的工具,来自 Jeremy Siek. enable_if - 函数模板重载的选择性内含物,来自 Jaakko Järvi, Jeremiah Willcock, 和 Andrew Lumsdaine.functio
2013-06-14 20:08:58 743
原创 boost 函数对象和高阶编程概述
函数对象和高阶编程bind and mem_fn - 泛型绑定器,用于函数/对象/指针和成员函数,来自 Peter Dimov. function - 延期调用和回调的函数对象包装,来自 Doug Gregor. functional - 增强的函数对象适配器,来自 Mark Rodgers. functional/hash - 一个 TR1 的散列函数对象,可以扩展为对用户定义类型进行散
2013-06-14 20:08:03 775
原创 boost 算法概述
算法foreach - BOOST_FOREACH 宏可以很容易地遍历一个序列的所有元素,来自 Eric Niebler. gil - 通用图像库,来自 Lubomir Bourdev 和 Hailin Jin. graph - 通用的图组件和算法,来自 Jeremy Siek 和一个Notre Dame大学的团队;目前由 Andrew Sutton 和 Jeremiah Willcock
2013-06-14 20:01:38 686
原创 boost 迭代器概述
迭代器gil - 通用图像库,来自 Lubomir Bourdev 和 Hailin Jin. graph - 通用的图组件和算法,来自 Jeremy Siek 和一个Notre Dame大学的团队;目前由 Andrew Sutton 和 Jeremiah Willcock 维护。iterators - 迭代器构造框架,适配器、概念及其它,来自 Dave Abrahams, Jeremy
2013-06-14 20:00:56 927
原创 boost 容器概述
容器array - 兼容STL的容器,是固定大小的数组的包装,来自 Nicolai Josuttis. bimap - 双向 maps, 来自 Matias Capeletto. circular_buffer - STL 兼容的环或循环缓冲区容器,来自 Jan Gaspar. dynamic_bitset - 一个在运行期可变大小的 std::bitset 版本,来自 Jeremy Si
2013-06-14 20:00:10 779
原创 boost 字符串和文本处理库概述
字符串和文本处理conversion/lexical_cast - lexical_cast 类模板,来自 Kevlin Henney. format - 类型安全的 '类printf' 的格式化操作,来自 Samuel Krempp. iostreams - 一个框架,用于定义流、流缓冲和i/o过滤器,来自 Jonathan Turkanis. regex - 正则表达式库,来自 Joh
2013-06-14 19:59:25 753
原创 Boost库索引
accumulators - 进行累增计算的框架,以及一组统计学的累加器,来自 Eric Niebler. any - 保存具有不同值类型的单个值的一种安全、泛型的容器,来自 Kevlin Henney. array - 兼容STL的容器,是固定大小的数组的包装,来自 Nicolai Josuttis. asio - 可移植的网络和其它底层I/O,包括 sockets, 定时器, 主
2013-06-14 19:55:24 754
原创 打造你成为交际大师12
101、取众家之长三人行必有我师,你身边有许多可以学习的人。102、建立良好的师徒关系成功的师徒关系需要效果与热情。效果意味着你可以让老师可以看到他对你产生的影响。激情意味着你的导师会为了你的进步而投入。103、找几个徒弟当你不断努力向上发展时,一定要回过头来帮助其它人。你会从你的学生身上学会很多东西104、坚持原则交际应当是向前发展,而不是向后妥协。与人交往决不能违背
2013-06-13 16:18:56 665
原创 打造你成为交际大师11
91、共同写作如果你写作技巧不佳,你可以和别人一起写。通过这样共同写作,你原来不多联系的人,可以让你的人际网络程指数增长。92、写文章写文章可以极大的促进你的职业发展。让你在短时间里就成为被人关注。93、坚持写作以成为好的写手要成为好的写手:”写作,再写作。当你写完了,继续写作”94、和名人交往你只与无名小辈保持联系?你需要把注意力传到一些重要人物上,这样会对你以及周围
2013-06-13 16:18:33 640
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人