reactos/sdk/lib/drivers/wdf/shared/inc/private/km/fxioqueuekm.hpp

60 lines
1 KiB
C++
Raw Normal View History

/*++
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