Sixth C/C++ Programmers Meeting

Written by

in

The start of the year is always the same rush. After we begin to get used to the idea that the long Christmas and New Year holidays are over, Carnival soon comes and throws everything off. I took advantage of this beginning of the year to take a well-deserved vacation, since my Computer Engineering course has finally ended. As a nice start for my reintegration into society, nothing better than a trip to the Brazilian northeast. Weeks before this trip I found out about the new meeting of the C/C++ programmers community. Because of the trip I would miss the event.

A month went by and last week I saw that the event was postponed to next March sixth. Very good news, since besides being able to attend the event I will also speak a little. I already took part in another meeting of programmers and I was very happy to be able to speak to so many people about this subject that is so mysterious to many: the development of drivers for Windows.

From my point of view the results were very good. The talk gave an introduction to the subject of driver development and obviously the 60 minutes of the talk were not enough to explain the subject in detail, but it was interesting to show the tip of the iceberg and to be able to answer some questions from those present. I wrote a post that comments on the meeting, but I recommend the post by my friend Lesma, which turned out very good.

Dealing with Virtual Memory in Drivers

Well, in this new meeting I am not going to give an introduction to the subject again, but I will comment on some characteristics and curiosities about Virtual Memory in driver development. Understand that I am not going to make a summary of chapter 9 of Windows Internals, “Memory Management”, which talks about Page Table Entries and Working Sets, but rather to demonstrate that, unlike a User-Mode application, drivers need to be aware of the fundamental concepts of virtual memory and paging, controlling the paging of objects and meeting the requirements of memory paging and address space.

The topics to be discussed in the talk will be the following:

  • Overview of Virtual Memory and Paging.
  • I/O operations and Buffer handling.
  • Thread priority and memory access.
  • Allocation pools, Tags and Quotas.
  • Avoiding Fragmentation.
  • Drivers in the paging path.
  • Controlling the paging of functions.
  • Obtaining real memory addresses.
  • Direct memory access (DMA) devices.
  • Driver Verifier features.
  • Hands on: Memory operations by drivers in WinDbg.
  • Questions.

This is the official page of the event and registration is open. See you there!

Download the slides

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *