mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
- Fix kernel32 and ntoskrnl build issues.
- Define public version of DEVOBJ_EXTENSION in DDK. svn path=/trunk/; revision=17650
This commit is contained in:
parent
a4d8aa2194
commit
118aa9fba3
8 changed files with 29 additions and 19 deletions
|
@ -167,10 +167,12 @@ SetMailslotInfo(HANDLE hMailslot,
|
|||
DWORD lReadTimeout)
|
||||
{
|
||||
FILE_MAILSLOT_SET_INFORMATION Buffer;
|
||||
LARGE_INTEGER Timeout;
|
||||
IO_STATUS_BLOCK Iosb;
|
||||
NTSTATUS Status;
|
||||
|
||||
Buffer.ReadTimeout.QuadPart = lReadTimeout * -10000;
|
||||
Timeout.QuadPart = lReadTimeout * -10000;
|
||||
Buffer.ReadTimeout = &Timeout;
|
||||
|
||||
Status = NtSetInformationFile(hMailslot,
|
||||
&Iosb,
|
||||
|
|
|
@ -336,17 +336,17 @@ IoAttachDeviceToDeviceStackSafe(IN PDEVICE_OBJECT SourceDevice,
|
|||
OUT PDEVICE_OBJECT *AttachedToDeviceObject)
|
||||
{
|
||||
PDEVICE_OBJECT AttachedDevice;
|
||||
PDEVOBJ_EXTENSION SourceDeviceExtension;
|
||||
PEXTENDED_DEVOBJ_EXTENSION SourceDeviceExtension;
|
||||
|
||||
DPRINT("IoAttachDeviceToDeviceStack(SourceDevice 0x%p, TargetDevice 0x%p)\n",
|
||||
SourceDevice, TargetDevice);
|
||||
|
||||
/* Get the Attached Device and source extension */
|
||||
AttachedDevice = IoGetAttachedDevice(TargetDevice);
|
||||
SourceDeviceExtension = SourceDevice->DeviceObjectExtension;
|
||||
SourceDeviceExtension = (PEXTENDED_DEVOBJ_EXTENSION)SourceDevice->DeviceObjectExtension;
|
||||
|
||||
/* Make sure that it's in a correct state */
|
||||
if (!(AttachedDevice->DeviceObjectExtension->ExtensionFlags &
|
||||
if (!(((PEXTENDED_DEVOBJ_EXTENSION)AttachedDevice->DeviceObjectExtension)->ExtensionFlags &
|
||||
(DOE_UNLOAD_PENDING | DOE_DELETE_PENDING |
|
||||
DOE_REMOVE_PENDING | DOE_REMOVE_PROCESSED)))
|
||||
{
|
||||
|
@ -624,7 +624,7 @@ IoDeleteDevice(PDEVICE_OBJECT DeviceObject)
|
|||
}
|
||||
|
||||
/* I guess this should be removed later... but it shouldn't cause problems */
|
||||
DeviceObject->DeviceObjectExtension->ExtensionFlags |= DOE_DELETE_PENDING;
|
||||
((PEXTENDED_DEVOBJ_EXTENSION)DeviceObject->DeviceObjectExtension)->ExtensionFlags |= DOE_DELETE_PENDING;
|
||||
|
||||
/* Make the object temporary. This should automatically remove the device
|
||||
from the namespace */
|
||||
|
@ -650,7 +650,7 @@ IoDetachDevice(PDEVICE_OBJECT TargetDevice)
|
|||
DPRINT("IoDetachDevice(TargetDevice 0x%p)\n", TargetDevice);
|
||||
|
||||
/* Remove the attachment */
|
||||
TargetDevice->AttachedDevice->DeviceObjectExtension->AttachedTo = NULL;
|
||||
((PEXTENDED_DEVOBJ_EXTENSION)TargetDevice->AttachedDevice->DeviceObjectExtension)->AttachedTo = NULL;
|
||||
TargetDevice->AttachedDevice = NULL;
|
||||
}
|
||||
|
||||
|
@ -758,7 +758,7 @@ STDCALL
|
|||
IoGetDeviceAttachmentBaseRef(IN PDEVICE_OBJECT DeviceObject)
|
||||
{
|
||||
/* Return the attached Device */
|
||||
return (DeviceObject->DeviceObjectExtension->AttachedTo);
|
||||
return (((PEXTENDED_DEVOBJ_EXTENSION)DeviceObject->DeviceObjectExtension)->AttachedTo);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -790,7 +790,7 @@ STDCALL
|
|||
IoGetDiskDeviceObject(IN PDEVICE_OBJECT FileSystemDeviceObject,
|
||||
OUT PDEVICE_OBJECT *DiskDeviceObject)
|
||||
{
|
||||
PDEVOBJ_EXTENSION DeviceExtension;
|
||||
PEXTENDED_DEVOBJ_EXTENSION DeviceExtension;
|
||||
PVPB Vpb;
|
||||
KIRQL OldIrql;
|
||||
|
||||
|
@ -801,7 +801,7 @@ IoGetDiskDeviceObject(IN PDEVICE_OBJECT FileSystemDeviceObject,
|
|||
IoAcquireVpbSpinLock(&OldIrql);
|
||||
|
||||
/* Get the Device Extension */
|
||||
DeviceExtension = FileSystemDeviceObject->DeviceObjectExtension;
|
||||
DeviceExtension = (PEXTENDED_DEVOBJ_EXTENSION)FileSystemDeviceObject->DeviceObjectExtension;
|
||||
|
||||
/* Make sure this one has a VPB too */
|
||||
Vpb = DeviceExtension->Vpb;
|
||||
|
@ -825,7 +825,7 @@ PDEVICE_OBJECT
|
|||
STDCALL
|
||||
IoGetLowerDeviceObject(IN PDEVICE_OBJECT DeviceObject)
|
||||
{
|
||||
PDEVOBJ_EXTENSION DeviceExtension = DeviceObject->DeviceObjectExtension;
|
||||
PEXTENDED_DEVOBJ_EXTENSION DeviceExtension = (PEXTENDED_DEVOBJ_EXTENSION)DeviceObject->DeviceObjectExtension;
|
||||
PDEVICE_OBJECT LowerDeviceObject = NULL;
|
||||
|
||||
/* Make sure it's not getting deleted */
|
||||
|
|
|
@ -618,8 +618,8 @@ IoRegisterDeviceInterface(
|
|||
ASSERT(PdoNameInfo->Name.Length);
|
||||
|
||||
/* Create base key name for this interface: HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses\{GUID} */
|
||||
ASSERT(PhysicalDeviceObject->DeviceObjectExtension->DeviceNode);
|
||||
InstancePath = &PhysicalDeviceObject->DeviceObjectExtension->DeviceNode->InstancePath;
|
||||
ASSERT(((PEXTENDED_DEVOBJ_EXTENSION)PhysicalDeviceObject->DeviceObjectExtension)->DeviceNode);
|
||||
InstancePath = &((PEXTENDED_DEVOBJ_EXTENSION)PhysicalDeviceObject->DeviceObjectExtension)->DeviceNode->InstancePath;
|
||||
BaseKeyName.Length = wcslen(BaseKeyString) * sizeof(WCHAR);
|
||||
BaseKeyName.MaximumLength = BaseKeyName.Length
|
||||
+ GuidString.Length;
|
||||
|
|
|
@ -751,7 +751,7 @@ IoCreateFile(OUT PHANDLE FileHandle,
|
|||
PFILE_OBJECT FileObject = NULL;
|
||||
PDEVICE_OBJECT DeviceObject;
|
||||
PIRP Irp;
|
||||
PIO_STACK_LOCATION StackLoc;
|
||||
PEXTENDED_IO_STACK_LOCATION StackLoc;
|
||||
IO_SECURITY_CONTEXT SecurityContext;
|
||||
KPROCESSOR_MODE AccessMode;
|
||||
HANDLE LocalHandle;
|
||||
|
@ -999,7 +999,7 @@ IoCreateFile(OUT PHANDLE FileHandle,
|
|||
* Get the stack location for the new
|
||||
* IRP and prepare it.
|
||||
*/
|
||||
StackLoc = IoGetNextIrpStackLocation(Irp);
|
||||
StackLoc = (PEXTENDED_IO_STACK_LOCATION)IoGetNextIrpStackLocation(Irp);
|
||||
StackLoc->MinorFunction = 0;
|
||||
StackLoc->Flags = (UCHAR)Options;
|
||||
StackLoc->Control = 0;
|
||||
|
|
|
@ -439,7 +439,7 @@ IopGetRelatedDevice(PPLUGPLAY_CONTROL_RELATED_DEVICE_DATA RelatedDeviceData)
|
|||
if (DeviceObject == NULL)
|
||||
return STATUS_NO_SUCH_DEVICE;
|
||||
|
||||
DeviceNode = DeviceObject->DeviceObjectExtension->DeviceNode;
|
||||
DeviceNode = ((PEXTENDED_DEVOBJ_EXTENSION)DeviceObject->DeviceObjectExtension)->DeviceNode;
|
||||
}
|
||||
|
||||
switch (RelatedDeviceData->Relation)
|
||||
|
@ -518,7 +518,7 @@ IopDeviceStatus(PPLUGPLAY_CONTROL_STATUS_DATA StatusData)
|
|||
if (DeviceObject == NULL)
|
||||
return STATUS_NO_SUCH_DEVICE;
|
||||
|
||||
DeviceNode = DeviceObject->DeviceObjectExtension->DeviceNode;
|
||||
DeviceNode = ((PEXTENDED_DEVOBJ_EXTENSION)DeviceObject->DeviceObjectExtension)->DeviceNode;
|
||||
|
||||
switch (StatusData->Operation)
|
||||
{
|
||||
|
@ -559,7 +559,7 @@ IopGetDeviceDepth(PPLUGPLAY_CONTROL_DEPTH_DATA DepthData)
|
|||
if (DeviceObject == NULL)
|
||||
return STATUS_NO_SUCH_DEVICE;
|
||||
|
||||
DeviceNode = DeviceObject->DeviceObjectExtension->DeviceNode;
|
||||
DeviceNode = ((PEXTENDED_DEVOBJ_EXTENSION)DeviceObject->DeviceObjectExtension)->DeviceNode;
|
||||
|
||||
DepthData->Depth = DeviceNode->Level;
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ PDEVICE_NODE FASTCALL
|
|||
IopGetDeviceNode(
|
||||
PDEVICE_OBJECT DeviceObject)
|
||||
{
|
||||
return DeviceObject->DeviceObjectExtension->DeviceNode;
|
||||
return ((PEXTENDED_DEVOBJ_EXTENSION)DeviceObject->DeviceObjectExtension)->DeviceNode;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
|
@ -619,7 +619,7 @@ IopCreateDeviceNode(PDEVICE_NODE ParentNode,
|
|||
|
||||
Node->PhysicalDeviceObject = PhysicalDeviceObject;
|
||||
|
||||
PhysicalDeviceObject->DeviceObjectExtension->DeviceNode = Node;
|
||||
((PEXTENDED_DEVOBJ_EXTENSION)PhysicalDeviceObject->DeviceObjectExtension)->DeviceNode = Node;
|
||||
|
||||
if (ParentNode)
|
||||
{
|
||||
|
|
|
@ -2668,6 +2668,13 @@ typedef struct _ERESOURCE {
|
|||
KSPIN_LOCK SpinLock;
|
||||
} ERESOURCE, *PERESOURCE;
|
||||
|
||||
typedef struct _DEVOBJ_EXTENSION
|
||||
{
|
||||
CSHORT Type;
|
||||
USHORT Size;
|
||||
PDEVICE_OBJECT DeviceObject;
|
||||
} DEVOBJ_EXTENSION, *PDEVOBJ_EXTENSION;
|
||||
|
||||
typedef struct _DRIVER_EXTENSION {
|
||||
struct _DRIVER_OBJECT *DriverObject;
|
||||
PDRIVER_ADD_DEVICE AddDevice;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#define RESTRICTED_POINTER
|
||||
|
||||
#define NTAPI __stdcall
|
||||
|
||||
#define OBJ_INHERIT 0x00000002
|
||||
#define OBJ_PERMANENT 0x00000010
|
||||
#define OBJ_EXCLUSIVE 0x00000020
|
||||
|
|
Loading…
Reference in a new issue