Chapter 3
We begin our understanding of the Windows API by examining kernel objects and their handles. This chapter covers relatively abstract concepts—we're not going to discuss the particulars of any specific kernel object. Instead, we're going to discuss features that apply to all kernel objects.
I would have preferred to start off with a more concrete topic, but a solid understanding of kernel objects is critical to becoming a proficient Windows software developer. Kernel objects are used by the system and by the applications we write to manage numerous resources such as processes, threads, and files (to name just a few). The concepts presented in this chapter will appear throughout most of the remaining chapters in this book. However, I do realize that some of the material covered in this chapter won't sink in until you start manipulating kernel objects using actual functions. So, as you read various other chapters in this book, you'll probably want to refer back to this chapter from time to time.