mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
48 lines
2.2 KiB
C
48 lines
2.2 KiB
C
#ifndef _RX_NTDEFS_DEFINED_
|
|
#define _RX_NTDEFS_DEFINED_
|
|
|
|
#define INLINE __inline
|
|
#ifndef INVALID_HANDLE_VALUE
|
|
#define INVALID_HANDLE_VALUE ((HANDLE)-1)
|
|
#endif
|
|
|
|
#ifndef MINIRDR__NAME
|
|
#define RxCaptureFcb PFCB __C_Fcb = (PFCB)(RxContext->pFcb)
|
|
#define RxCaptureFobx PFOBX __C_Fobx = (PFOBX)(RxContext->pFobx)
|
|
#else
|
|
#define RxCaptureFcb PMRX_FCB __C_Fcb = (RxContext->pFcb)
|
|
#define RxCaptureFobx PMRX_FOBX __C_Fobx = (RxContext->pFobx)
|
|
#endif
|
|
|
|
#define RxCaptureParamBlock PIO_STACK_LOCATION __C_IrpSp = RxContext->CurrentIrpSp
|
|
#define RxCaptureFileObject PFILE_OBJECT __C_FileObject = __C_IrpSp-> FileObject
|
|
|
|
#define capFcb __C_Fcb
|
|
#define capFobx __C_Fobx
|
|
#define capPARAMS __C_IrpSp
|
|
#define capFileObject __C_FileObject
|
|
|
|
#define RxAllocatePoolWithTag ExAllocatePoolWithTag
|
|
#define RxFreePool ExFreePool
|
|
|
|
#define RxIsResourceOwnershipStateExclusive(Resource) (FlagOn((Resource)->Flag, ResourceOwnedExclusive))
|
|
|
|
#define RxMdlIsLocked(Mdl) ((Mdl)->MdlFlags & MDL_PAGES_LOCKED)
|
|
#define RxMdlSourceIsNonPaged(Mdl) ((Mdl)->MdlFlags & MDL_SOURCE_IS_NONPAGED_POOL)
|
|
|
|
#define RxGetRequestorProcess(RxContext) IoGetRequestorProcess(RxContext->CurrentIrp)
|
|
|
|
#define RxAdjustAllocationSizeforCC(Fcb) \
|
|
{ \
|
|
if ((Fcb)->Header.FileSize.QuadPart > (Fcb)->Header.AllocationSize.QuadPart) \
|
|
{ \
|
|
PMRX_NET_ROOT NetRoot = (Fcb)->pNetRoot; \
|
|
ULONGLONG ClusterSize = NetRoot->DiskParameters.ClusterSize; \
|
|
ULONGLONG FileSize = (Fcb)->Header.FileSize.QuadPart; \
|
|
ASSERT(ClusterSize != 0); \
|
|
(Fcb)->Header.AllocationSize.QuadPart = (FileSize + ClusterSize) &~ (ClusterSize - 1); \
|
|
} \
|
|
ASSERT ((Fcb)->Header.ValidDataLength.QuadPart <= (Fcb)->Header.FileSize.QuadPart); \
|
|
}
|
|
|
|
#endif
|