I have several questions:

1. Are "major functions" (DriverObject->MajorFunction[IRP_MJ_XXX]), which are attached to device object on the init step, being executed in kernel-mode? In other words, can I expect that all the code inside these functions will be executed in the kernel-mode?

2. If #1 = yes, then I would like to know if it is possible to use inline assembly with, for instance, 13h interruption and many others (which are restricted in user-mode) inside those major functions?

3. If #2 = yes, then could you reference me some useful links/sources/books where I can learn how to read/write physical Hard Drive within LBA-style, using this inline assembly?

In case if you are curious: I don't like that "CreateFile("\\\\.\\PhysicalDriveX",...)" functions requires administrator rights...