reactos/sdk/lib/drivers/wdf/shared/inc/primitives/km/mxdeviceobjectkm.h
Victor Perevertkin 1f377076d7
[WDF] Fix KMDF so it can compile with ReactOS SDK
Not all files are included, but these are necessary to compile cdrom driver.
So far it can only be statically linked with drivers, a proper
implementation requires wdfldr helper driver
2020-11-03 00:06:27 +03:00

193 lines
2.7 KiB
C

/*++
Copyright (c) Microsoft Corporation
ModuleName:
MxDeviceObjectKm.h
Abstract:
Kernel Mode implementation of Device Object defined in MxDeviceObject.h
--*/
#pragma once
#include "mxdeviceobject.h"
__inline
CCHAR
MxDeviceObject::GetStackSize(
VOID
)
{
return m_DeviceObject->StackSize;
}
__inline
VOID
MxDeviceObject::SetStackSize(
_In_ CCHAR Size
)
{
m_DeviceObject->StackSize = Size;
}
__inline
VOID
MxDeviceObject::ReferenceObject(
)
{
ObReferenceObject(m_DeviceObject);
}
__inline
MdDeviceObject
MxDeviceObject::GetAttachedDeviceReference(
VOID
)
{
return IoGetAttachedDeviceReference(m_DeviceObject);
}
__inline
VOID
MxDeviceObject::DereferenceObject(
)
{
ObDereferenceObject(m_DeviceObject);
}
__inline
ULONG
MxDeviceObject::GetFlags(
VOID
)
{
#ifdef _MSC_VER
#pragma warning(disable:28129)
#endif
return m_DeviceObject->Flags;
}
__inline
VOID
MxDeviceObject::SetFlags(
ULONG Flags
)
{
#ifdef _MSC_VER
#pragma warning(disable:28129)
#endif
m_DeviceObject->Flags = Flags;
}
__inline
POWER_STATE
MxDeviceObject::SetPowerState(
__in POWER_STATE_TYPE Type,
__in POWER_STATE State
)
{
return PoSetPowerState(m_DeviceObject, Type, State);
}
__inline
VOID
MxDeviceObject::InvalidateDeviceRelations(
__in DEVICE_RELATION_TYPE Type
)
{
IoInvalidateDeviceRelations(m_DeviceObject, Type);
}
__inline
VOID
MxDeviceObject::InvalidateDeviceState(
__in MdDeviceObject Fdo
)
{
//
// UMDF currently needs Fdo for InvalidateDeviceState
// FDO is not used in km.
//
// m_DeviceObject holds PDO that is what is used below.
//
UNREFERENCED_PARAMETER(Fdo);
IoInvalidateDeviceState(m_DeviceObject);
}
__inline
PVOID
MxDeviceObject::GetDeviceExtension(
VOID
)
{
return m_DeviceObject->DeviceExtension;
}
__inline
VOID
MxDeviceObject::SetDeviceExtension(
PVOID Value
)
{
m_DeviceObject->DeviceExtension = Value;
}
__inline
DEVICE_TYPE
MxDeviceObject::GetDeviceType(
VOID
)
{
return m_DeviceObject->DeviceType;
}
__inline
ULONG
MxDeviceObject::GetCharacteristics(
VOID
)
{
return m_DeviceObject->Characteristics;
}
__inline
VOID
MxDeviceObject::SetDeviceType(
DEVICE_TYPE Value
)
{
m_DeviceObject->DeviceType = Value;
}
__inline
VOID
MxDeviceObject::SetCharacteristics(
ULONG Characteristics
)
{
m_DeviceObject->Characteristics = Characteristics;
}
__inline
VOID
MxDeviceObject::SetAlignmentRequirement(
_In_ ULONG Value
)
{
m_DeviceObject->AlignmentRequirement = Value;
}
__inline
ULONG
MxDeviceObject::GetAlignmentRequirement(
VOID
)
{
return m_DeviceObject->AlignmentRequirement;
}