mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-26 19:33:31 +00:00
[NTOS:IO] Use IoGetDevObjExtension/IoGetDrvObjExtension macros instead of unreadable casts
This commit is contained in:
@@ -1571,10 +1571,10 @@ FsRtlAcquireFileExclusiveCommon(IN PFILE_OBJECT FileObject,
|
||||
/* Get master FsRtl lock */
|
||||
FsRtlEnterFileSystem();
|
||||
|
||||
DriverExtension = (PEXTENDED_DRIVER_EXTENSION)DeviceObject->DriverObject->DriverExtension;
|
||||
DriverExtension = IoGetDrvObjExtension(DeviceObject->DriverObject);
|
||||
FilterCallbacks = DriverExtension->FsFilterCallbacks;
|
||||
|
||||
/* Check if Filter Cllbacks are supported */
|
||||
/* Check if Filter Callbacks are supported */
|
||||
if (FilterCallbacks && FilterCallbacks->PreAcquireForSectionSynchronization)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
@@ -2038,7 +2038,7 @@ FsRtlRegisterFileSystemFilterCallbacks(
|
||||
RtlCopyMemory(NewCallbacks, Callbacks, Callbacks->SizeOfFsFilterCallbacks);
|
||||
|
||||
/* Set the callbacks in the driver extension */
|
||||
DriverExtension = (PEXTENDED_DRIVER_EXTENSION)FilterDriverObject->DriverExtension;
|
||||
DriverExtension = IoGetDrvObjExtension(FilterDriverObject);
|
||||
DriverExtension->FsFilterCallbacks = NewCallbacks;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
|
||||
@@ -118,24 +118,23 @@ typedef struct _FILE_OBJECT_EXTENSION
|
||||
// Determines if the IRP is Synchronous
|
||||
//
|
||||
#define IsIrpSynchronous(Irp, FileObject) \
|
||||
((Irp->Flags & IRP_SYNCHRONOUS_API) || \
|
||||
(!(FileObject) ? \
|
||||
FALSE : \
|
||||
FileObject->Flags & FO_SYNCHRONOUS_IO)) \
|
||||
(((Irp)->Flags & IRP_SYNCHRONOUS_API) || \
|
||||
(!(FileObject) ? FALSE : \
|
||||
(FileObject)->Flags & FO_SYNCHRONOUS_IO))
|
||||
|
||||
//
|
||||
// Returns the internal Device Object Extension
|
||||
//
|
||||
#define IoGetDevObjExtension(DeviceObject) \
|
||||
((PEXTENDED_DEVOBJ_EXTENSION) \
|
||||
(DeviceObject->DeviceObjectExtension)) \
|
||||
((DeviceObject)->DeviceObjectExtension))
|
||||
|
||||
//
|
||||
// Returns the internal Driver Object Extension
|
||||
//
|
||||
#define IoGetDrvObjExtension(DriverObject) \
|
||||
((PEXTENDED_DRIVER_EXTENSION) \
|
||||
(DriverObject->DriverExtension)) \
|
||||
((DriverObject)->DriverExtension))
|
||||
|
||||
/*
|
||||
* VOID
|
||||
|
||||
@@ -1522,10 +1522,9 @@ IoGetLowerDeviceObject(IN PDEVICE_OBJECT DeviceObject)
|
||||
|
||||
/* Make sure it's not getting deleted */
|
||||
DeviceExtension = IoGetDevObjExtension(DeviceObject);
|
||||
if (!(DeviceExtension->ExtensionFlags & (DOE_UNLOAD_PENDING |
|
||||
DOE_DELETE_PENDING |
|
||||
DOE_REMOVE_PENDING |
|
||||
DOE_REMOVE_PROCESSED)))
|
||||
if (!(DeviceExtension->ExtensionFlags &
|
||||
(DOE_UNLOAD_PENDING | DOE_DELETE_PENDING |
|
||||
DOE_REMOVE_PENDING | DOE_REMOVE_PROCESSED)))
|
||||
{
|
||||
/* Get the Lower Device Object */
|
||||
LowerDeviceObject = DeviceExtension->AttachedTo;
|
||||
|
||||
@@ -962,7 +962,7 @@ IoGetDeviceInterfaces(IN CONST GUID *InterfaceClassGuid,
|
||||
if (PhysicalDeviceObject != NULL)
|
||||
{
|
||||
/* Parameters must pass three border of checks */
|
||||
DeviceObjectExtension = (PEXTENDED_DEVOBJ_EXTENSION)PhysicalDeviceObject->DeviceObjectExtension;
|
||||
DeviceObjectExtension = IoGetDevObjExtension(PhysicalDeviceObject);
|
||||
|
||||
/* 1st level: Presence of a Device Node */
|
||||
if (DeviceObjectExtension->DeviceNode == NULL)
|
||||
@@ -1463,7 +1463,7 @@ IoRegisterDeviceInterface(IN PDEVICE_OBJECT PhysicalDeviceObject,
|
||||
PhysicalDeviceObject, ReferenceString);
|
||||
|
||||
/* Parameters must pass three border of checks */
|
||||
DeviceObjectExtension = (PEXTENDED_DEVOBJ_EXTENSION)PhysicalDeviceObject->DeviceObjectExtension;
|
||||
DeviceObjectExtension = IoGetDevObjExtension(PhysicalDeviceObject);
|
||||
|
||||
/* 1st level: Presence of a Device Node */
|
||||
if (DeviceObjectExtension->DeviceNode == NULL)
|
||||
@@ -1512,8 +1512,8 @@ IoRegisterDeviceInterface(IN PDEVICE_OBJECT PhysicalDeviceObject,
|
||||
ASSERT(PdoNameInfo->Name.Length);
|
||||
|
||||
/* Create base key name for this interface: HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses\{GUID} */
|
||||
ASSERT(((PEXTENDED_DEVOBJ_EXTENSION)PhysicalDeviceObject->DeviceObjectExtension)->DeviceNode);
|
||||
InstancePath = &((PEXTENDED_DEVOBJ_EXTENSION)PhysicalDeviceObject->DeviceObjectExtension)->DeviceNode->InstancePath;
|
||||
ASSERT(IoGetDevObjExtension(PhysicalDeviceObject)->DeviceNode);
|
||||
InstancePath = &(IoGetDevObjExtension(PhysicalDeviceObject)->DeviceNode->InstancePath);
|
||||
BaseKeyName.Length = (USHORT)wcslen(BaseKeyString) * sizeof(WCHAR);
|
||||
BaseKeyName.MaximumLength = BaseKeyName.Length
|
||||
+ GuidString.Length;
|
||||
|
||||
@@ -136,14 +136,12 @@ IopCheckDeviceAndDriver(IN POPEN_PACKET OpenPacket,
|
||||
IN PDEVICE_OBJECT DeviceObject)
|
||||
{
|
||||
/* Make sure the object is valid */
|
||||
if ((IoGetDevObjExtension(DeviceObject)->ExtensionFlags &
|
||||
(DOE_UNLOAD_PENDING |
|
||||
DOE_DELETE_PENDING |
|
||||
DOE_REMOVE_PENDING |
|
||||
DOE_REMOVE_PROCESSED)) ||
|
||||
(DeviceObject->Flags & DO_DEVICE_INITIALIZING))
|
||||
if ((DeviceObject->Flags & DO_DEVICE_INITIALIZING) ||
|
||||
(IoGetDevObjExtension(DeviceObject)->ExtensionFlags &
|
||||
(DOE_UNLOAD_PENDING | DOE_DELETE_PENDING |
|
||||
DOE_REMOVE_PENDING | DOE_REMOVE_PROCESSED)))
|
||||
{
|
||||
/* It's unloading or initializing, so fail */
|
||||
/* It's initializing or unloading, so fail */
|
||||
DPRINT1("You are seeing this because the following ROS driver: %wZ\n"
|
||||
" sucks. Please fix it's AddDevice Routine\n",
|
||||
&DeviceObject->DriverObject->DriverName);
|
||||
@@ -156,7 +154,6 @@ IopCheckDeviceAndDriver(IN POPEN_PACKET OpenPacket,
|
||||
{
|
||||
return STATUS_ACCESS_DENIED;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
/* Increase reference count */
|
||||
@@ -1488,8 +1485,8 @@ IopGetDeviceAttachmentBase(IN PDEVICE_OBJECT DeviceObject)
|
||||
PDEVICE_OBJECT PDO = DeviceObject;
|
||||
|
||||
/* Go down the stack to attempt to get the PDO */
|
||||
for (; ((PEXTENDED_DEVOBJ_EXTENSION)PDO->DeviceObjectExtension)->AttachedTo != NULL;
|
||||
PDO = ((PEXTENDED_DEVOBJ_EXTENSION)PDO->DeviceObjectExtension)->AttachedTo);
|
||||
while (IoGetDevObjExtension(PDO)->AttachedTo != NULL)
|
||||
PDO = IoGetDevObjExtension(PDO)->AttachedTo;
|
||||
|
||||
return PDO;
|
||||
}
|
||||
|
||||
@@ -136,11 +136,9 @@ IoStartTimer(IN PDEVICE_OBJECT DeviceObject)
|
||||
PIO_TIMER IoTimer = DeviceObject->Timer;
|
||||
|
||||
/* Make sure the device isn't unloading */
|
||||
if (!(((PEXTENDED_DEVOBJ_EXTENSION)(DeviceObject->DeviceObjectExtension))->
|
||||
ExtensionFlags & (DOE_UNLOAD_PENDING |
|
||||
DOE_DELETE_PENDING |
|
||||
DOE_REMOVE_PENDING |
|
||||
DOE_REMOVE_PROCESSED)))
|
||||
if (!(IoGetDevObjExtension(DeviceObject)->ExtensionFlags &
|
||||
(DOE_UNLOAD_PENDING | DOE_DELETE_PENDING |
|
||||
DOE_REMOVE_PENDING | DOE_REMOVE_PROCESSED)))
|
||||
{
|
||||
/* Lock Timers */
|
||||
KeAcquireSpinLock(&IopTimerLock, &OldIrql);
|
||||
|
||||
@@ -27,7 +27,7 @@ FASTCALL
|
||||
IopGetDeviceNode(
|
||||
_In_ PDEVICE_OBJECT DeviceObject)
|
||||
{
|
||||
return ((PEXTENDED_DEVOBJ_EXTENSION)DeviceObject->DeviceObjectExtension)->DeviceNode;
|
||||
return IoGetDevObjExtension(DeviceObject)->DeviceNode;
|
||||
}
|
||||
|
||||
PDEVICE_NODE
|
||||
@@ -66,7 +66,7 @@ PipAllocateDeviceNode(
|
||||
{
|
||||
/* Link it and remove the init flag */
|
||||
DeviceNode->PhysicalDeviceObject = PhysicalDeviceObject;
|
||||
((PEXTENDED_DEVOBJ_EXTENSION)PhysicalDeviceObject->DeviceObjectExtension)->DeviceNode = DeviceNode;
|
||||
IoGetDevObjExtension(PhysicalDeviceObject)->DeviceNode = DeviceNode;
|
||||
PhysicalDeviceObject->Flags &= ~DO_DEVICE_INITIALIZING;
|
||||
}
|
||||
|
||||
@@ -294,7 +294,7 @@ IopCreateDeviceNode(
|
||||
|
||||
Node->PhysicalDeviceObject = PhysicalDeviceObject;
|
||||
|
||||
((PEXTENDED_DEVOBJ_EXTENSION)PhysicalDeviceObject->DeviceObjectExtension)->DeviceNode = Node;
|
||||
IoGetDevObjExtension(PhysicalDeviceObject)->DeviceNode = Node;
|
||||
|
||||
if (ParentNode)
|
||||
{
|
||||
@@ -391,7 +391,7 @@ IopFreeDeviceNode(
|
||||
ExFreePool(DeviceNode->BootResources);
|
||||
}
|
||||
|
||||
((PEXTENDED_DEVOBJ_EXTENSION)DeviceNode->PhysicalDeviceObject->DeviceObjectExtension)->DeviceNode = NULL;
|
||||
IoGetDevObjExtension(DeviceNode->PhysicalDeviceObject)->DeviceNode = NULL;
|
||||
ExFreePoolWithTag(DeviceNode, TAG_IO_DEVNODE);
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
|
||||
@@ -545,7 +545,7 @@ IopGetDeviceProperty(PPLUGPLAY_CONTROL_PROPERTY_DATA PropertyData)
|
||||
}
|
||||
|
||||
|
||||
DeviceNode = ((PEXTENDED_DEVOBJ_EXTENSION)DeviceObject->DeviceObjectExtension)->DeviceNode;
|
||||
DeviceNode = IoGetDevObjExtension(DeviceObject)->DeviceNode;
|
||||
|
||||
if (Property == PNP_PROPERTY_POWER_DATA)
|
||||
{
|
||||
@@ -787,7 +787,7 @@ IopGetRelatedDevice(PPLUGPLAY_CONTROL_RELATED_DEVICE_DATA RelatedDeviceData)
|
||||
if (DeviceObject == NULL)
|
||||
return STATUS_NO_SUCH_DEVICE;
|
||||
|
||||
DeviceNode = ((PEXTENDED_DEVOBJ_EXTENSION)DeviceObject->DeviceObjectExtension)->DeviceNode;
|
||||
DeviceNode = IoGetDevObjExtension(DeviceObject)->DeviceNode;
|
||||
}
|
||||
|
||||
switch (Relation)
|
||||
|
||||
Reference in New Issue
Block a user