I/O prioritization improves the responsiveness of the system without significantly decreasing the throughput of the system. Typically, any topic related to I/O and threads requires a good understanding of Windows synchronization because of that, I will try to discuss everything from the ground up.

In this paper, I am going to discuss how can we as the application or device driver developers take advantage of I/O prioritization in the Windows OS. Finally (in the next paper, I will discuss the I/O completion mechanism of Windows) which is a magical feature.


As you may know, after introducing Windows Vista (NTkernel release…

As you know, We can write and develop programs with C++ by different variants of paradigms like procedural, object-oriented, functional and also concurrency.

Today, I wanted to discuss why we should care about using std::async when we want to develop software with the concurrency paradigm (especially multithreaded approach of concurrency, not multiprocessing).

When we want to develop a program which their threads are executing concurrently, we can use thread, async, packaged_task and … that all of them have cons and pros.

As I realized until now when concurrent programming, std::thread is a good worker, std::async is a bad worker and…

Why we need the functions/classes template and how/why this concept created by C++ compiler engineers? In this medium post, I want to go through the steps which made c++ experts think about the template concept and auto deduction in the modern days of software development.

As you know, when we write programs with C language, our software is nothing more than tons of functions and structures. With C language, we should implement various functions for every task. For example, consider we want to implement a calculator with C language.

We should implement multiple variants of the add or mul or…

I decided to write an article about the Substitution Failure for people who are looking for a clear and step by step introduction about it.

Note: if you have found out errors or misconceptions in this article, please fix it.

Name Lookup:

The first thing we should understand before we digging into the SFINAE concept is the Name Lookup mechanism. What is that?

When we start to write a program, our final program is nothing more than lots of functions/methods/classes/structs or …, in which all of these components have not any meaning for the dynamic loader of the operating system except their…

As you know, a naming convention is a set of rules for choosing the character sequence to be used for identifiers which denote variables, types, functions, classes, objects and other entities in source code and documentation.

The most important reason for using a naming convention is to reduce the effort needed to read and understand source code; also many companies have also established their own set of conventions.

In this medium post, I want to share with you a set of simple and straightforward rules to write better, beautiful, effective and most readable CPP code in both Windows and Linux…

In the previous article, I explained the whole story of Stuxnet and why NSA scientists with the contribution of cybersecurity scientists of GCHQ and 1100 unit designed such malicious software to sabotage Iranian Centrifuges which did uranium enrichment in Natanz.

Yeap, You guess right, I didn’t want to continue that story anymore because it is related to security/intelligence services war and I didn’t want to cross the red lines.

Also, I explained why this malware is changed the whole perspective of militarism and national security of countries nowadays. In this article, I am going to discuss the principal concepts and…

Yes. Stuxnet, the strange creature of the most advanced and frightening Intelligence services of the world. I mean Mossad, CIA, and MI5.

But before I start to explain the Stuxnet story, I have to clear something for both sides. I am not a Politician. I am not a social activist. I am not a Security/Intelligence officer. Simply, I am not a guy who is looking for trouble.

I am just a Mathematics Student, Security (Militarism and Cybernetics) Researcher, and an Independent Consultant. This article is totally a research-based paper and all information gathered by the public documents and media.

Since computer memory is limited, you cannot store numbers with infinite precision, no matter whether you use binary fractions or decimal ones: at some point, you have to cut off. But how much accuracy is needed? And where is it needed? How many integer digits and how many fraction digits?

However, when you are going to write a program which It is dealing with floating numbers and making a decision based on floating values, you have to care about losing precision. As it is obvious, losing precision is like losing your mind and your decision making logic.

For example, consider…

Let me summarize a lot of things for you here. When you load a Library, for example, Milad.dll and then try to call a function from that like MPrint, dynamic loader of the windows operating system has to resolve the address of the MPrint function and then call it.

How can OS resolve the address of that function?

Windows go through some really complicated stuff which I want to tell you those steps with a simple tongue. …

PE is the native windows 32-bit file format and PE+ is the native windows 64-bit file format. Every windows 32-bit executable (except VxDs and 16-bit DLLs) uses PE file format.

32-bit DLLs, COM files, OCX controls, Control Panel Applets (.CPL files) Scren Servers and .NET executable are all PE format. Even NT’s kernel mode drivers use PE file format.

Nevertheless, Why do we need to know about it? There are multiple reasons. For example, adding code to an executable, change original entry point of a program to an compressor, manually unpacking an executable and stuff like that. …

Milad Kahsari Alhadi

System Security Student and Researcher.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store