As I know that if IRQL level is dispatch then you can access memory from non paged pool. if we will try to access memory from paged pool.just wanted to know why ?
why we can access memory from non paged pool at or above DISPATCH LEVEL
3.6k Views Asked by MM WDD At
1
There are 1 best solutions below
Related Questions in WINDOWS
- Get Maximum Log Size
- Debugging Windows Services while starting
- Possible consequences of duplicate ProgId for different classes
- How to chain BCryptEncrypt and BCryptDecrypt calls using AES in GCM mode?
- mingw-64 conflicting declarations when cross-compiling
- I run an EXE program from a Windows Service but I can't see form C#?
- Why is PowerShell "not recognized" when installing Chocolatey?
- How to check if Windows device is phone or tablet/pc?
- How to add directories to Cygwin gcc default search path
- Can't install anything with pip2 on Windows 7 due to UnicodeDecodeError
- Active directory and linux nslcd binding without extending the AD schema
- How To Prevent Over Scrolling in Scroll Viewer Windows Phone 8.1
- Unicode error from pip install
- Where is the 'EnablePinning' property in the ribbon framework's recent items?
- How can I implement the same models and data across ASP.NET and Windows Apps
Related Questions in KERNEL
- Are Berkeley Packet Filter opcode values implementation defined?
- Raspberry PI Compute Module - SPI1
- Is there any way to get a lru list in Linux kernel?
- Android Studio - HAX kernel Module not installed
- How to determine system value for _POSIX_PATH_MAX
- Different privileges in kernel module execution
- Buildroot custom kernel under 1MB
- Add/remove process from kernel runqueue
- Is it possible to limit data traffic in kernel USB drivers?
- "Segmentation fault" when `rmmod` or `modprobe -r`
- Intercept ELF loader in linux kernel: fs/binfmt_elf.c file via loadable kernel module
- Best way to handle ERESTARTSYS in kthread?
- Purpose and usage of firmware packages on Linux
- In linux every process is given a 4GB of virtual address space considering a 32-bit architecture
- How to make a scanf() type function in a 32bit os in c?
Related Questions in DRIVER
- C++ Mongodb driver, not working
- Raspberry PI Compute Module - SPI1
- Insert element into nested array in Mongodb
- Loading a Windows Driver Class other than NetService to act as an NDIS Filter
- where to find oneplus one binaries (Device tree, Vendor, Kernel) to build rom from AOSP?
- Why does this static funtion have three prefixes?
- Is it possible to limit data traffic in kernel USB drivers?
- Twain driver scanner integration in Windows 8.1
- USB3 Controller & Kinect 2
- Connecting R from JSP
- Universal Drivers will run inside Universal Apps in Windows 10?
- USB keeps disconnecting...only for mobile devices
- IoCreateDeviceSecure function denies the access from member in Administrators
- Intel OpenGL Driver bug?
- CoreMediaIO camera driver not detected until restart of application
Related Questions in NDIS
- Loading a Windows Driver Class other than NetService to act as an NDIS Filter
- Need help for windows 10 support for my NDIS 5.1 IM driver
- NdisChainBufferAtBack substitution in NDIS 6
- BSOD due to DRIVER_POWER_STATE_FAILURE (9f) with virtual NIC driver
- Transfer data using NDIS
- Does a NIC 'know' its MAC address?
- A machine gets frozen when installing a LWF driver
- canceling oid request in NDIS driver
- How to handle buffer overflow in ndis driver
- why we can access memory from non paged pool at or above DISPATCH LEVEL
- Windows Network Device Driver: Set link UP/DOWN from within the driver
- How to redirect TCP packets from protocol layer using NDIS filter driver?
- Why does NdisFRegisterFilterDriver return NDIS_STATUS_FAILURE?
- NDIS6 modifying filter
- The problem of FwpsCalloutRegister function registration failure in WPF driver
Related Questions in WDM
- Determining the chain of parent devices connected to a USB mass storage device
- Windows Error code 38 suggests a device driver failed to unload
- Does anyone know where to get the old WDM version of the toaster driver sample?
- Extracting USB PID VID from DevicePath
- Iterating over WDM device stack
- why we can access memory from non paged pool at or above DISPATCH LEVEL
- Sending audio data to a user mode application from Virtual Audio Driver
- Guard Silently Exits When Using WDM Gem
- Catch a hardware interrupt
- Windows Server debugging: view User Mode Stack in WDM Kernel Mode Driver Breakpoint
- How do you explicitly link a .sys file
- The problem of FwpsCalloutRegister function registration failure in WPF driver
- How can I get file mime type in kernel mode
- Windows Driver programming, Thread function data argument gets corrupted?
- Apply aero glass blur to a specific control area in WPF
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
"why we can access memory from non paged pool at or above DISPATCH LEVEL" is a statement, question is why we cannot access memory from paged pool IRQL >= DISPATCH_LEVEL?
Well...
-- http://msdn.microsoft.com/en-us/library/windows/hardware/ff554368(v=vs.85).aspx
Why is this:
suppose your driver is servicing an interrupt, and while at it, it holds a spin lock. Now, you want to access some data structure that resides on the paged pool and as you are already out of luck, that data is on a page that has been paged-out by the memory manager.
Now, your driver has to wait until the memory manager page-in your data. You are blocking/waiting/sleeping, actually your driver is.
Now, another interrupt occurs, but since you are still waiting for the data to be paged-in, what do you think what will happen now?
Know this,
as your driver waits longer for something to happen, your kernel will go to freeze.
Also,
-- https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/synchronization/synchronization.html
anyway, read this further:
-- http://msdn.microsoft.com/en-us/library/windows/hardware/ff554368(v=vs.85).aspx
Page fault is an exception that needs to be serviced quickly by the memory manager. While your driver holds spinlock and holds that processor hostage, that processor is as good as dead right now.
MSDN says:
-- http://msdn.microsoft.com/en-us/library/windows/hardware/ff559854(v=vs.85).aspx
All this answers what will happen, or what can happen. As to answer Why we cannot use paged memory above or at DISPATCH_LEVEL:
I have tried to fetch as much relevant information as possible, if you are still not sold, try reading on spin-locks, re-entrant functions, interrupt handling, Paging. Try reading for Linux, Windows, and Apple's OS's kernel. They all say same things with varying details.