mirror of
https://github.com/reactos/reactos.git
synced 2025-03-10 10:14:44 +00:00
59 lines
1 KiB
C++
59 lines
1 KiB
C++
/*++
|
|
|
|
Copyright (c) Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
FxIoQueueKm.hpp
|
|
|
|
Abstract:
|
|
|
|
This module implements km specific functions for FxIoQueue.
|
|
|
|
Author:
|
|
|
|
|
|
|
|
Environment:
|
|
|
|
Kernel mode only
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _FXIOQUEUEKM_HPP_
|
|
#define _FXIOQUEUEKM_HPP_
|
|
|
|
__inline
|
|
BOOLEAN
|
|
FxIoQueue::IsPagingIo(
|
|
__in MdIrp Irp
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
Paging IO is treated especially depending on what Forward Progress policy
|
|
was set on the Queue
|
|
--*/
|
|
{
|
|
//
|
|
// NOTE: IRP_INPUT_OPERATION has the same value as IRP_SYNCHRONOUS_PAGING_IO
|
|
// and IRP_MOUNT_COMPLETION the same as IRP_PAGING_IO so how does one know if
|
|
// the IO is a paging IO ?
|
|
//
|
|
|
|
// One can assume that if IRP_PAGING_IO is set and the MJ code is not
|
|
// FILE_SYSTEM_CONTROL then it is a paging I/O.
|
|
//
|
|
if (Irp->Flags & IRP_PAGING_IO) {
|
|
if (IoGetCurrentIrpStackLocation(Irp)->MajorFunction
|
|
!= IRP_MJ_FILE_SYSTEM_CONTROL) {
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
#endif // _FXIOQUEUEKM_HPP
|