diff --git a/reactos/apps/tests/lpc/lpcsrv.c b/reactos/apps/tests/lpc/lpcsrv.c index 31cc4193fef..244a24a3bd2 100644 --- a/reactos/apps/tests/lpc/lpcsrv.c +++ b/reactos/apps/tests/lpc/lpcsrv.c @@ -1,4 +1,4 @@ -/* $Id: lpcsrv.c,v 1.11 2002/09/08 10:21:58 chorns Exp $ +/* $Id: lpcsrv.c,v 1.12 2003/08/07 11:47:32 silverblade Exp $ * * DESCRIPTION: Simple LPC Server * PROGRAMMER: David Welch @@ -74,7 +74,7 @@ int main(int argc, char* argv[]) printf("%s: Received connection request 0x%08x on port 0x%x.\n", MyName, ConnectMsg.Header.MessageId, NamedPortHandle); printf("%s: Request from: PID=%x, TID=%x.\n", MyName, - ConnectMsg.Header.Cid.UniqueProcess, ConnectMsg.Header.Cid.UniqueThread); + ConnectMsg.Header.ClientId.UniqueProcess, ConnectMsg.Header.ClientId.UniqueThread); printf("%s: Accepting connection request 0x%08x...\n", MyName, ConnectMsg.Header.MessageId); diff --git a/reactos/drivers/fs/cdfs/dirctl.c b/reactos/drivers/fs/cdfs/dirctl.c index 3315d16551e..2423e34f3dd 100644 --- a/reactos/drivers/fs/cdfs/dirctl.c +++ b/reactos/drivers/fs/cdfs/dirctl.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: dirctl.c,v 1.12 2003/02/13 22:24:15 hbirr Exp $ +/* $Id: dirctl.c,v 1.13 2003/08/07 11:47:32 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -544,14 +544,14 @@ CdfsQueryDirectory(PDEVICE_OBJECT DeviceObject, PCCB Ccb; FCB TempFcb; BOOLEAN First = FALSE; - PIO_STACK_LOCATION Stack; + PEXTENDED_IO_STACK_LOCATION Stack; PFILE_OBJECT FileObject; NTSTATUS Status = STATUS_SUCCESS; DPRINT("CdfsQueryDirectory() called\n"); DeviceExtension = DeviceObject->DeviceExtension; - Stack = IoGetCurrentIrpStackLocation(Irp); + Stack = (PEXTENDED_IO_STACK_LOCATION) IoGetCurrentIrpStackLocation(Irp); FileObject = Stack->FileObject; Ccb = (PCCB)FileObject->FsContext2; diff --git a/reactos/drivers/fs/cdfs/fcb.c b/reactos/drivers/fs/cdfs/fcb.c index 47a08d38e15..795c10cf036 100644 --- a/reactos/drivers/fs/cdfs/fcb.c +++ b/reactos/drivers/fs/cdfs/fcb.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: fcb.c,v 1.14 2003/07/21 21:53:47 royce Exp $ +/* $Id: fcb.c,v 1.15 2003/08/07 11:47:32 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -29,6 +29,7 @@ /* INCLUDES *****************************************************************/ #include +#include #define NDEBUG #include diff --git a/reactos/drivers/fs/ms/fsctrl.c b/reactos/drivers/fs/ms/fsctrl.c index 78979a839ef..232e42a28f9 100644 --- a/reactos/drivers/fs/ms/fsctrl.c +++ b/reactos/drivers/fs/ms/fsctrl.c @@ -1,4 +1,4 @@ -/* $Id: fsctrl.c,v 1.3 2002/09/08 10:22:10 chorns Exp $ +/* $Id: fsctrl.c,v 1.4 2003/08/07 11:47:32 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -22,7 +22,7 @@ NTSTATUS STDCALL MsfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp) { - PIO_STACK_LOCATION IoStack; + PEXTENDED_IO_STACK_LOCATION IoStack; PFILE_OBJECT FileObject; PMSFS_MAILSLOT Mailslot; PMSFS_FCB Fcb; @@ -30,14 +30,14 @@ MsfsFileSystemControl(PDEVICE_OBJECT DeviceObject, DPRINT1("MsfsFileSystemControl(DeviceObject %p Irp %p)\n", DeviceObject, Irp); - IoStack = IoGetCurrentIrpStackLocation(Irp); + IoStack = (PEXTENDED_IO_STACK_LOCATION) IoGetCurrentIrpStackLocation(Irp); FileObject = IoStack->FileObject; Fcb = FileObject->FsContext; Mailslot = Fcb->Mailslot; DPRINT1("Mailslot name: %wZ\n", &Mailslot->Name); - switch (IoStack->Parameters.FileSystemControl.IoControlCode) + switch (IoStack->Parameters.FileSystemControl.FsControlCode) { #if 0 case FSCTL_WAIT_PIPE: diff --git a/reactos/drivers/fs/np/fsctrl.c b/reactos/drivers/fs/np/fsctrl.c index e23818179de..47214609c6f 100644 --- a/reactos/drivers/fs/np/fsctrl.c +++ b/reactos/drivers/fs/np/fsctrl.c @@ -1,4 +1,4 @@ -/* $Id: fsctrl.c,v 1.10 2002/09/08 10:22:11 chorns Exp $ +/* $Id: fsctrl.c,v 1.11 2003/08/07 11:47:32 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -395,7 +395,7 @@ NTSTATUS STDCALL NpfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp) { - PIO_STACK_LOCATION IoStack; + PEXTENDED_IO_STACK_LOCATION IoStack; PFILE_OBJECT FileObject; NTSTATUS Status; PNPFS_DEVICE_EXTENSION DeviceExt; @@ -405,7 +405,7 @@ NpfsFileSystemControl(PDEVICE_OBJECT DeviceObject, DPRINT("NpfsFileSystemContol(DeviceObject %p Irp %p)\n", DeviceObject, Irp); DeviceExt = (PNPFS_DEVICE_EXTENSION)DeviceObject->DeviceExtension; - IoStack = IoGetCurrentIrpStackLocation(Irp); + IoStack = (PEXTENDED_IO_STACK_LOCATION) IoGetCurrentIrpStackLocation(Irp); DPRINT("IoStack: %p\n", IoStack); FileObject = IoStack->FileObject; DPRINT("FileObject: %p\n", FileObject); @@ -415,7 +415,7 @@ NpfsFileSystemControl(PDEVICE_OBJECT DeviceObject, DPRINT("Pipe: %p\n", Pipe); DPRINT("PipeName: %wZ\n", &Pipe->PipeName); - switch (IoStack->Parameters.FileSystemControl.IoControlCode) + switch (IoStack->Parameters.FileSystemControl.FsControlCode) { case FSCTL_PIPE_ASSIGN_EVENT: DPRINT("Assign event\n"); diff --git a/reactos/drivers/fs/ntfs/attrib.c b/reactos/drivers/fs/ntfs/attrib.c index 43836158c9b..8b015e5d7da 100644 --- a/reactos/drivers/fs/ntfs/attrib.c +++ b/reactos/drivers/fs/ntfs/attrib.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: attrib.c,v 1.4 2003/07/21 21:53:47 royce Exp $ +/* $Id: attrib.c,v 1.5 2003/08/07 11:47:32 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -29,6 +29,8 @@ #include +#include + //#define NDEBUG #include diff --git a/reactos/drivers/fs/ntfs/dirctl.c b/reactos/drivers/fs/ntfs/dirctl.c index aeccfcacc20..3c8436ce702 100644 --- a/reactos/drivers/fs/ntfs/dirctl.c +++ b/reactos/drivers/fs/ntfs/dirctl.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: dirctl.c,v 1.5 2003/02/13 22:24:16 hbirr Exp $ +/* $Id: dirctl.c,v 1.6 2003/08/07 11:47:32 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -494,14 +494,14 @@ NtfsQueryDirectory(PDEVICE_OBJECT DeviceObject, PCCB Ccb; FCB TempFcb; BOOLEAN First = FALSE; - PIO_STACK_LOCATION Stack; + PEXTENDED_IO_STACK_LOCATION Stack; PFILE_OBJECT FileObject; NTSTATUS Status = STATUS_SUCCESS; DPRINT1("NtfsQueryDirectory() called\n"); DeviceExtension = DeviceObject->DeviceExtension; - Stack = IoGetCurrentIrpStackLocation(Irp); + Stack = (PEXTENDED_IO_STACK_LOCATION) IoGetCurrentIrpStackLocation(Irp); FileObject = Stack->FileObject; Ccb = (PCCB)FileObject->FsContext2; diff --git a/reactos/drivers/fs/ntfs/fcb.c b/reactos/drivers/fs/ntfs/fcb.c index 4fd1cfc815f..f640994e779 100644 --- a/reactos/drivers/fs/ntfs/fcb.c +++ b/reactos/drivers/fs/ntfs/fcb.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: fcb.c,v 1.8 2003/07/21 21:53:47 royce Exp $ +/* $Id: fcb.c,v 1.9 2003/08/07 11:47:32 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -32,6 +32,8 @@ //#define NDEBUG #include +#include + #include "ntfs.h" diff --git a/reactos/drivers/fs/vfat/dir.c b/reactos/drivers/fs/vfat/dir.c index 1373155ba83..862a4ef3ffd 100644 --- a/reactos/drivers/fs/vfat/dir.c +++ b/reactos/drivers/fs/vfat/dir.c @@ -1,5 +1,5 @@ /* - * $Id: dir.c,v 1.30 2003/07/24 20:52:58 chorns Exp $ + * $Id: dir.c,v 1.31 2003/08/07 11:47:32 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -207,6 +207,8 @@ NTSTATUS DoQuery (PVFAT_IRP_CONTEXT IrpContext) VFATFCB tmpFcb; PVFATCCB pCcb; BOOLEAN First = FALSE; + + PEXTENDED_IO_STACK_LOCATION Stack = (PEXTENDED_IO_STACK_LOCATION) IrpContext->Stack; pCcb = (PVFATCCB) IrpContext->FileObject->FsContext2; pFcb = (PVFATFCB) IrpContext->FileObject->FsContext; @@ -218,11 +220,11 @@ NTSTATUS DoQuery (PVFAT_IRP_CONTEXT IrpContext) } // Obtain the callers parameters - BufferLength = IrpContext->Stack->Parameters.QueryDirectory.Length; - pSearchPattern = IrpContext->Stack->Parameters.QueryDirectory.FileName; + BufferLength = Stack->Parameters.QueryDirectory.Length; + pSearchPattern = Stack->Parameters.QueryDirectory.FileName; FileInformationClass = - IrpContext->Stack->Parameters.QueryDirectory.FileInformationClass; - FileIndex = IrpContext->Stack->Parameters.QueryDirectory.FileIndex; + Stack->Parameters.QueryDirectory.FileInformationClass; + FileIndex = Stack->Parameters.QueryDirectory.FileIndex; if (pSearchPattern) { if (!pCcb->DirectorySearchPattern) diff --git a/reactos/drivers/fs/vfat/fcb.c b/reactos/drivers/fs/vfat/fcb.c index ab92c371e83..fb78c6f3cd3 100644 --- a/reactos/drivers/fs/vfat/fcb.c +++ b/reactos/drivers/fs/vfat/fcb.c @@ -1,4 +1,4 @@ -/* $Id: fcb.c,v 1.32 2003/07/24 20:52:58 chorns Exp $ +/* $Id: fcb.c,v 1.33 2003/08/07 11:47:32 silverblade Exp $ * * * FILE: fcb.c @@ -14,6 +14,7 @@ #include #include #include +#include #define NDEBUG #include diff --git a/reactos/drivers/fs/vfat/fsctl.c b/reactos/drivers/fs/vfat/fsctl.c index d7857cce527..c6948095758 100644 --- a/reactos/drivers/fs/vfat/fsctl.c +++ b/reactos/drivers/fs/vfat/fsctl.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: fsctl.c,v 1.20 2003/07/24 20:52:58 chorns Exp $ +/* $Id: fsctl.c,v 1.21 2003/08/07 11:47:32 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -29,6 +29,8 @@ #include #include +#include + #define NDEBUG #include diff --git a/reactos/drivers/fs/vfat/rw.c b/reactos/drivers/fs/vfat/rw.c index 77157b23d34..9ffa6045157 100644 --- a/reactos/drivers/fs/vfat/rw.c +++ b/reactos/drivers/fs/vfat/rw.c @@ -1,5 +1,5 @@ -/* $Id: rw.c,v 1.59 2003/07/24 20:52:58 chorns Exp $ +/* $Id: rw.c,v 1.60 2003/08/07 11:47:32 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -15,6 +15,8 @@ #include #include +#include + #define NDEBUG #include diff --git a/reactos/drivers/fs/vfat/volume.c b/reactos/drivers/fs/vfat/volume.c index b5c2d9a9d61..9458944118f 100644 --- a/reactos/drivers/fs/vfat/volume.c +++ b/reactos/drivers/fs/vfat/volume.c @@ -1,4 +1,4 @@ -/* $Id: volume.c,v 1.22 2003/07/24 20:52:58 chorns Exp $ +/* $Id: volume.c,v 1.23 2003/08/07 11:47:32 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -248,6 +248,7 @@ NTSTATUS VfatSetVolumeInformation(PVFAT_IRP_CONTEXT IrpContext) NTSTATUS Status = STATUS_SUCCESS; PVOID SystemBuffer; ULONG BufferLength; + PEXTENDED_IO_STACK_LOCATION Stack = (PEXTENDED_IO_STACK_LOCATION) IrpContext->Stack; /* PRECONDITION */ assert(IrpContext); @@ -260,8 +261,8 @@ NTSTATUS VfatSetVolumeInformation(PVFAT_IRP_CONTEXT IrpContext) return VfatQueueRequest (IrpContext); } - FsInformationClass = IrpContext->Stack->Parameters.SetVolume.FsInformationClass; - BufferLength = IrpContext->Stack->Parameters.SetVolume.Length; + FsInformationClass = Stack->Parameters.SetVolume.FsInformationClass; + BufferLength = Stack->Parameters.SetVolume.Length; SystemBuffer = IrpContext->Irp->AssociatedIrp.SystemBuffer; DPRINT1("FsInformationClass %d\n", FsInformationClass); diff --git a/reactos/include/ddk/fstypes.h b/reactos/include/ddk/fstypes.h index f1d4f8c2369..dd5f144e734 100644 --- a/reactos/include/ddk/fstypes.h +++ b/reactos/include/ddk/fstypes.h @@ -1,6 +1,6 @@ #ifndef __INCLUDE_DDK_FSTYPES_H #define __INCLUDE_DDK_FSTYPES_H -/* $Id: fstypes.h,v 1.11 2003/06/07 10:14:39 chorns Exp $ */ +/* $Id: fstypes.h,v 1.12 2003/08/07 11:47:32 silverblade Exp $ */ #define FSRTL_TAG TAG('F','S','r','t') @@ -10,6 +10,9 @@ typedef LBN *PLBN; typedef ULONG VBN; typedef VBN *PVBN; + +#ifndef __USE_W32API + typedef struct _FILE_LOCK_INFO { LARGE_INTEGER StartingByte; LARGE_INTEGER Length; @@ -20,11 +23,6 @@ typedef struct _FILE_LOCK_INFO { LARGE_INTEGER EndingByte; } FILE_LOCK_INFO, *PFILE_LOCK_INFO; -typedef struct _FILE_LOCK_GRANTED { - LIST_ENTRY ListEntry; - FILE_LOCK_INFO Lock; -} FILE_LOCK_GRANTED, *PFILE_LOCK_GRANTED; - typedef NTSTATUS (*PCOMPLETE_LOCK_IRP_ROUTINE) ( IN PVOID Context, IN PIRP Irp @@ -92,4 +90,12 @@ typedef VOID typedef PVOID OPLOCK, *POPLOCK; +#endif /* __USE_W32API */ + +typedef struct _FILE_LOCK_GRANTED { + LIST_ENTRY ListEntry; + FILE_LOCK_INFO Lock; +} FILE_LOCK_GRANTED, *PFILE_LOCK_GRANTED; + + #endif /* __INCLUDE_DDK_FSFUNCS_H */ diff --git a/reactos/include/ddk/iofuncs.h b/reactos/include/ddk/iofuncs.h index 53ec60bb05f..6879ac76e0e 100644 --- a/reactos/include/ddk/iofuncs.h +++ b/reactos/include/ddk/iofuncs.h @@ -1,6 +1,6 @@ #ifndef _INCLUDE_DDK_IOFUNCS_H #define _INCLUDE_DDK_IOFUNCS_H -/* $Id: iofuncs.h,v 1.38 2003/06/07 10:14:39 chorns Exp $ */ +/* $Id: iofuncs.h,v 1.39 2003/08/07 11:47:32 silverblade Exp $ */ /* --- EXPORTED BY NTOSKRNL --- */ @@ -939,13 +939,17 @@ IoReportResourceUsage ( ((PDRIVER_CANCEL)InterlockedExchangePointer(&(Irp)->CancelRoutine, \ NewCancelRoutine)) -#define IoSetCompletionRoutine(Irp,Routine,Context,Success,Error,Cancel) \ +// AG: Context is now NewContext, otherwise we end up with this: +// param->LocalLength=(LocalLength) +// ...which isn't possible. + +#define IoSetCompletionRoutine(Irp,Routine,NewContext,Success,Error,Cancel) \ { \ PIO_STACK_LOCATION param; \ assert((Success)||(Error)||(Cancel)?(Routine)!=NULL:TRUE); \ param = IoGetNextIrpStackLocation((Irp)); \ param->CompletionRoutine=(Routine); \ - param->CompletionContext=(Context); \ + param->Context=(NewContext); \ param->Control = 0; \ if ((Success)) \ param->Control = SL_INVOKE_ON_SUCCESS; \ diff --git a/reactos/include/ddk/iotypes.h b/reactos/include/ddk/iotypes.h index a29be647541..5fe3f607cfb 100644 --- a/reactos/include/ddk/iotypes.h +++ b/reactos/include/ddk/iotypes.h @@ -1,4 +1,4 @@ -/* $Id: iotypes.h,v 1.50 2003/07/17 16:57:38 silverblade Exp $ +/* $Id: iotypes.h,v 1.51 2003/08/07 11:47:32 silverblade Exp $ * */ @@ -23,6 +23,11 @@ extern POBJECT_TYPE IMPORTED IoDriverObjectType; extern POBJECT_TYPE IMPORTED IoFileObjectType; #endif + +// from winddk.h +#define POINTER_ALIGNMENT + + /* * These are referenced before they can be fully defined */ @@ -294,6 +299,8 @@ typedef struct /* * PURPOSE: IRP stack location */ + +/* typedef struct __attribute__((packed)) _IO_STACK_LOCATION { UCHAR MajorFunction; @@ -462,9 +469,9 @@ typedef struct __attribute__((packed)) _IO_STACK_LOCATION PCM_RESOURCE_LIST AllocatedResources; PCM_RESOURCE_LIST AllocatedResourcesTranslated; } StartDevice; - +*/ /* Parameters for IRP_MN_SCSI_CLASS */ - struct +/* struct { struct _SCSI_REQUEST_BLOCK *Srb; } Scsi; @@ -476,9 +483,9 @@ typedef struct __attribute__((packed)) _IO_STACK_LOCATION ULONG Key; LARGE_INTEGER ByteOffset; } LockControl; - +*/ /* Paramters for other calls */ - struct +/* struct { PVOID Argument1; PVOID Argument2; @@ -493,7 +500,240 @@ typedef struct __attribute__((packed)) _IO_STACK_LOCATION PIO_COMPLETION_ROUTINE CompletionRoutine; PVOID CompletionContext; -} __attribute__((packed)) IO_STACK_LOCATION, *PIO_STACK_LOCATION; +} __attribute__((packed)) IO_STACK_LOCATION, *PIO_STACK_LOCATION;*/ + +typedef struct _IO_STACK_LOCATION { + UCHAR MajorFunction; + UCHAR MinorFunction; + UCHAR Flags; + UCHAR Control; + union { + struct { + PIO_SECURITY_CONTEXT SecurityContext; + ULONG Options; + USHORT POINTER_ALIGNMENT FileAttributes; + USHORT ShareAccess; + ULONG POINTER_ALIGNMENT EaLength; + } Create; + struct { + ULONG Length; + ULONG POINTER_ALIGNMENT Key; + LARGE_INTEGER ByteOffset; + } Read; + struct { + ULONG Length; + ULONG POINTER_ALIGNMENT Key; + LARGE_INTEGER ByteOffset; + } Write; + struct { + ULONG Length; + FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass; + } QueryFile; + struct { + ULONG Length; + FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass; + struct _FILE_OBJECT* FileObject; + union { + struct { + BOOLEAN ReplaceIfExists; + BOOLEAN AdvanceOnly; + }; + ULONG ClusterCount; + HANDLE DeleteHandle; + }; + } SetFile; + struct { + ULONG Length; + FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass; + } QueryVolume; + struct { + ULONG OutputBufferLength; + ULONG POINTER_ALIGNMENT InputBufferLength; + ULONG POINTER_ALIGNMENT IoControlCode; + PVOID Type3InputBuffer; + } DeviceIoControl; + struct { + SECURITY_INFORMATION SecurityInformation; + ULONG POINTER_ALIGNMENT Length; + } QuerySecurity; + struct { + SECURITY_INFORMATION SecurityInformation; + PSECURITY_DESCRIPTOR SecurityDescriptor; + } SetSecurity; + struct { + struct _VPB* Vpb; + struct _DEVICE_OBJECT* DeviceObject; + } MountVolume; + struct { + struct _VPB* Vpb; + struct _DEVICE_OBJECT* DeviceObject; + } VerifyVolume; + struct { + struct _SCSI_REQUEST_BLOCK *Srb; + } Scsi; + struct { + DEVICE_RELATION_TYPE Type; + } QueryDeviceRelations; + struct { + CONST GUID *InterfaceType; + USHORT Size; + USHORT Version; + PINTERFACE Interface; + PVOID InterfaceSpecificData; + } QueryInterface; + struct { + PDEVICE_CAPABILITIES Capabilities; + } DeviceCapabilities; + struct { + PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList; + } FilterResourceRequirements; + struct { + ULONG WhichSpace; + PVOID Buffer; + ULONG Offset; + ULONG POINTER_ALIGNMENT Length; + } ReadWriteConfig; + struct { + BOOLEAN Lock; + } SetLock; + struct { + BUS_QUERY_ID_TYPE IdType; + } QueryId; + struct { + DEVICE_TEXT_TYPE DeviceTextType; + LCID POINTER_ALIGNMENT LocaleId; + } QueryDeviceText; + struct { + BOOLEAN InPath; + BOOLEAN Reserved[3]; + DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT Type; + } UsageNotification; + struct { + SYSTEM_POWER_STATE PowerState; + } WaitWake; + struct { + PPOWER_SEQUENCE PowerSequence; + } PowerSequence; + struct { + ULONG SystemContext; + POWER_STATE_TYPE POINTER_ALIGNMENT Type; + POWER_STATE POINTER_ALIGNMENT State; + POWER_ACTION POINTER_ALIGNMENT ShutdownType; + } Power; + struct { + PCM_RESOURCE_LIST AllocatedResources; + PCM_RESOURCE_LIST AllocatedResourcesTranslated; + } StartDevice; + struct { + ULONG_PTR ProviderId; + PVOID DataPath; + ULONG BufferSize; + PVOID Buffer; + } WMI; + struct { + PVOID Argument1; + PVOID Argument2; + PVOID Argument3; + PVOID Argument4; + } Others; + } Parameters; + struct _DEVICE_OBJECT* DeviceObject; + struct _FILE_OBJECT* FileObject; + PIO_COMPLETION_ROUTINE CompletionRoutine; + PVOID Context; +} IO_STACK_LOCATION, *PIO_STACK_LOCATION; + + +// AG: The commented lines in this structure are due to PMAILSLOT_CREATE_PARAMETERS +// and PNAMED_PIPE_CREATE_PARAMETERS and PFILE_GET_QUOTA_INFORMATION not being +// defined. + +typedef struct _EXTENDED_IO_STACK_LOCATION { + + /* Included for padding */ + UCHAR MajorFunction; + UCHAR MinorFunction; + UCHAR Flags; + UCHAR Control; + + union { + +// struct { +// PIO_SECURITY_CONTEXT SecurityContext; +// ULONG Options; +// USHORT Reserved; +// USHORT ShareAccess; +// PMAILSLOT_CREATE_PARAMETERS Parameters; +// } CreateMailslot; + +// struct { +// PIO_SECURITY_CONTEXT SecurityContext; +// ULONG Options; +// USHORT Reserved; +// USHORT ShareAccess; +// PNAMED_PIPE_CREATE_PARAMETERS Parameters; +// } CreatePipe; + + struct { + ULONG OutputBufferLength; + ULONG InputBufferLength; + ULONG FsControlCode; + PVOID Type3InputBuffer; + } FileSystemControl; + + struct { + PLARGE_INTEGER Length; + ULONG Key; + LARGE_INTEGER ByteOffset; + } LockControl; + + struct { + ULONG Length; + ULONG CompletionFilter; + } NotifyDirectory; + + struct { + ULONG Length; + PUNICODE_STRING FileName; + FILE_INFORMATION_CLASS FileInformationClass; + ULONG FileIndex; + } QueryDirectory; + + struct { + ULONG Length; + PVOID EaList; + ULONG EaListLength; + ULONG EaIndex; + } QueryEa; + +// struct { +// ULONG Length; +// PSID StartSid; +// PFILE_GET_QUOTA_INFORMATION SidList; +// ULONG SidListLength; +// } QueryQuota; + + struct { + ULONG Length; + } SetEa; + + struct { + ULONG Length; + } SetQuota; + + struct { + ULONG Length; + FS_INFORMATION_CLASS FsInformationClass; + } SetVolume; + + } Parameters; + struct _DEVICE_OBJECT* DeviceObject; + struct _FILE_OBJECT* FileObject; + PIO_COMPLETION_ROUTINE CompletionRoutine; + PVOID Context; + +} EXTENDED_IO_STACK_LOCATION, *PEXTENDED_IO_STACK_LOCATION; + typedef struct _IO_STATUS_BLOCK diff --git a/reactos/include/ddk/kefuncs.h b/reactos/include/ddk/kefuncs.h index 132d775727b..1fd65bcff62 100644 --- a/reactos/include/ddk/kefuncs.h +++ b/reactos/include/ddk/kefuncs.h @@ -27,19 +27,8 @@ VOID STDCALL KeAcquireSpinLock (PKSPIN_LOCK SpinLock, VOID STDCALL KeAcquireSpinLockAtDpcLevel (IN PKSPIN_LOCK SpinLock); -//NTOSAPI -//DDKFASTAPI - -//STDCALL -//VOID -//KefAcquireSpinLockAtDpcLevel( -// IN PKSPIN_LOCK SpinLock); - #define KefAcquireSpinLockAtDpcLevel KeAcquireSpinLockAtDpcLevel -//NTOSAPI -//DDKFASTAPI - VOID STDCALL KeReleaseSpinLockFromDpcLevel( @@ -58,7 +47,6 @@ KeReleaseSpinLockFromDpcLevel( * knows what file/line number where the bug check occured */ VOID STDCALL KeBugCheck (ULONG BugCheckCode); -#define KEBUGCHECK(a) DbgPrint("KeBugCheck at %s:%i\n",__FILE__,__LINE__), KeBugCheck(a) /* * FUNCTION: Brings the system down in a controlled manner when an @@ -76,7 +64,6 @@ VOID STDCALL KeBugCheckEx (ULONG BugCheckCode, ULONG BugCheckParameter2, ULONG BugCheckParameter3, ULONG BugCheckParameter4); -#define KEBUGCHECKEX(a,b,c,d,e) DbgPrint("KeBugCheckEx at %s:%i\n",__FILE__,__LINE__), KeBugCheckEx(a,b,c,d,e) BOOLEAN STDCALL KeCancelTimer (PKTIMER Timer); diff --git a/reactos/include/napi/lpc.h b/reactos/include/napi/lpc.h index 1c2e2e00447..14127ff631c 100644 --- a/reactos/include/napi/lpc.h +++ b/reactos/include/napi/lpc.h @@ -3,6 +3,7 @@ #ifdef __USE_W32API #include +#include #endif /* !__USE_W32API */ #include @@ -52,9 +53,9 @@ typedef struct _LPC_MESSAGE USHORT MessageSize; USHORT MessageType; USHORT VirtualRangesOffset; - CLIENT_ID Cid; + CLIENT_ID ClientId; ULONG MessageId; - ULONG SharedSectionSize; // CallbackID + ULONG SectionSize; // CallbackID } LPC_MESSAGE, *PLPC_MESSAGE; #endif /* !__USE_W32API */ diff --git a/reactos/include/ntdll/ntdll.h b/reactos/include/ntdll/ntdll.h index 83eb715553c..6c96a332948 100644 --- a/reactos/include/ntdll/ntdll.h +++ b/reactos/include/ntdll/ntdll.h @@ -3,12 +3,16 @@ #define UNIMPLEMENTED DbgPrint("%s in %s:%d is unimplemented\n",__FUNCTION__,__FILE__,__LINE__); +#ifndef __USE_W32API + #ifndef NASSERT #define assert(x) if (!(x)) {DbgPrint("Assertion "#x" failed at %s:%d\n", __FILE__,__LINE__); for(;;);} #else #define assert(x) #endif +#endif + #ifdef NDEBUG #define DPRINT(args...) #define CHECKPOINT diff --git a/reactos/include/ntos.h b/reactos/include/ntos.h index 39380b6e314..c2fa327aa13 100644 --- a/reactos/include/ntos.h +++ b/reactos/include/ntos.h @@ -1,6 +1,6 @@ #ifndef _NTOS_H #define _NTOS_H -/* $Id: ntos.h,v 1.12 2003/06/07 16:16:38 chorns Exp $ */ +/* $Id: ntos.h,v 1.13 2003/08/07 11:47:33 silverblade Exp $ */ #if defined(NTOS_MODE_USER) // include windows.h before ntddk.h to get user mode prototype for InterlockedXxx functions @@ -87,6 +87,7 @@ #include "ntos/haltypes.h" #include "ntos/halfuncs.h" #include "ntos/kdfuncs.h" +#include "ntos/kefuncs.h" // AG #include "ntos/obtypes.h" #include "ntos/tss.h" #include "rosrtl/thread.h" diff --git a/reactos/ntoskrnl/fs/filelock.c b/reactos/ntoskrnl/fs/filelock.c index 8ae196b94fc..9267bcd786f 100644 --- a/reactos/ntoskrnl/fs/filelock.c +++ b/reactos/ntoskrnl/fs/filelock.c @@ -1,4 +1,4 @@ -/* $Id: filelock.c,v 1.9 2003/07/11 01:23:14 royce Exp $ +/* $Id: filelock.c,v 1.10 2003/08/07 11:47:33 silverblade Exp $ * * reactos/ntoskrnl/fs/filelock.c * @@ -540,14 +540,14 @@ FsRtlpCompletePendingLocks( //walk pending list, FIFO order, try 2 complete locks PLIST_ENTRY EnumEntry; PIRP Irp; - PIO_STACK_LOCATION Stack; + PEXTENDED_IO_STACK_LOCATION Stack; EnumEntry = LockToc->PendingListHead.Blink; while (EnumEntry != &LockToc->PendingListHead) { Irp = CONTAINING_RECORD(EnumEntry,IRP, Tail.Overlay.ListEntry); - Stack = IoGetCurrentIrpStackLocation(Irp); + Stack = (PEXTENDED_IO_STACK_LOCATION) IoGetCurrentIrpStackLocation(Irp); if (FsRtlpAddLock(LockToc, Stack->FileObject, &Stack->Parameters.LockControl.ByteOffset, @@ -734,7 +734,7 @@ FsRtlpDumpFileLocks( PFILE_LOCK_GRANTED Granted; PIRP Irp; PLIST_ENTRY EnumEntry; - PIO_STACK_LOCATION Stack; + PEXTENDED_IO_STACK_LOCATION Stack; assert(FileLock); LockToc = FileLock->LockInformation; @@ -774,7 +774,7 @@ FsRtlpDumpFileLocks( { Irp = CONTAINING_RECORD(EnumEntry, IRP , Tail.Overlay.ListEntry ); - Stack = IoGetCurrentIrpStackLocation(Irp); + Stack = (PEXTENDED_IO_STACK_LOCATION) IoGetCurrentIrpStackLocation(Irp); DPRINT1("%s, start: %i, len: %i, end: %i, key: %i, proc: 0x%X, fob: 0x%X\n", (Stack->Flags & SL_EXCLUSIVE_LOCK) ? "EXCL" : "SHRD", @@ -1083,12 +1083,12 @@ FsRtlProcessFileLock ( IN PVOID Context OPTIONAL ) { - PIO_STACK_LOCATION Stack; + PEXTENDED_IO_STACK_LOCATION Stack; NTSTATUS Status; IO_STATUS_BLOCK LocalIoStatus; assert(FileLock); - Stack = IoGetCurrentIrpStackLocation(Irp); + Stack = (PEXTENDED_IO_STACK_LOCATION) IoGetCurrentIrpStackLocation(Irp); Irp->IoStatus.Information = 0; switch(Stack->MinorFunction) diff --git a/reactos/ntoskrnl/io/dir.c b/reactos/ntoskrnl/io/dir.c index 1037f4cef83..47ff2cb8295 100644 --- a/reactos/ntoskrnl/io/dir.c +++ b/reactos/ntoskrnl/io/dir.c @@ -1,4 +1,4 @@ -/* $Id: dir.c,v 1.18 2003/07/11 01:23:14 royce Exp $ +/* $Id: dir.c,v 1.19 2003/08/07 11:47:33 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -91,7 +91,7 @@ NtQueryDirectoryFile( PDEVICE_OBJECT DeviceObject; PFILE_OBJECT FileObject; NTSTATUS Status; - PIO_STACK_LOCATION IoStack; + PEXTENDED_IO_STACK_LOCATION IoStack; IO_STATUS_BLOCK IoSB; DPRINT("NtQueryDirectoryFile()\n"); @@ -125,7 +125,7 @@ NtQueryDirectoryFile( KeResetEvent( &FileObject->Event ); Irp->UserBuffer=FileInformation; - IoStack = IoGetNextIrpStackLocation(Irp); + IoStack = (PEXTENDED_IO_STACK_LOCATION) IoGetNextIrpStackLocation(Irp); IoStack->MajorFunction = IRP_MJ_DIRECTORY_CONTROL; IoStack->MinorFunction = IRP_MN_QUERY_DIRECTORY; @@ -146,7 +146,7 @@ NtQueryDirectoryFile( { IoStack->Flags = IoStack->Flags | SL_INDEX_SPECIFIED; } - + IoStack->Parameters.QueryDirectory.FileInformationClass = FileInformationClass; IoStack->Parameters.QueryDirectory.FileName = FileName; diff --git a/reactos/ntoskrnl/io/fs.c b/reactos/ntoskrnl/io/fs.c index c8057b4d00e..179ef7c2dce 100644 --- a/reactos/ntoskrnl/io/fs.c +++ b/reactos/ntoskrnl/io/fs.c @@ -1,4 +1,4 @@ -/* $Id: fs.c,v 1.35 2003/07/10 15:47:00 royce Exp $ +/* $Id: fs.c,v 1.36 2003/08/07 11:47:33 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -75,7 +75,7 @@ NtFsControlFile ( PFILE_OBJECT FileObject; PDEVICE_OBJECT DeviceObject; PIRP Irp; - PIO_STACK_LOCATION StackPtr; + PEXTENDED_IO_STACK_LOCATION StackPtr; PKEVENT ptrEvent; IO_STATUS_BLOCK IoSB; @@ -138,7 +138,7 @@ NtFsControlFile ( Irp->Overlay.AsynchronousParameters.UserApcRoutine = ApcRoutine; Irp->Overlay.AsynchronousParameters.UserApcContext = ApcContext; - StackPtr = IoGetNextIrpStackLocation(Irp); + StackPtr = (PEXTENDED_IO_STACK_LOCATION) IoGetNextIrpStackLocation(Irp); StackPtr->FileObject = FileObject; StackPtr->DeviceObject = DeviceObject; StackPtr->Parameters.FileSystemControl.InputBufferLength = InputBufferSize; diff --git a/reactos/ntoskrnl/io/irp.c b/reactos/ntoskrnl/io/irp.c index 5d1482f2e2e..fb30fb9ccdb 100644 --- a/reactos/ntoskrnl/io/irp.c +++ b/reactos/ntoskrnl/io/irp.c @@ -1,4 +1,4 @@ -/* $Id: irp.c,v 1.52 2003/07/10 15:47:00 royce Exp $ +/* $Id: irp.c,v 1.53 2003/08/07 11:47:33 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -267,7 +267,7 @@ IofCompleteRequest(PIRP Irp, { Status = Irp->Stack[i].CompletionRoutine(DeviceObject, Irp, - Irp->Stack[i].CompletionContext); + Irp->Stack[i].Context); if (Status == STATUS_MORE_PROCESSING_REQUIRED) { diff --git a/reactos/ntoskrnl/io/lock.c b/reactos/ntoskrnl/io/lock.c index 1f2fa0e2bbf..35b29ab2d6e 100644 --- a/reactos/ntoskrnl/io/lock.c +++ b/reactos/ntoskrnl/io/lock.c @@ -57,7 +57,7 @@ NtLockFile ( PLARGE_INTEGER LocalLength = NULL; PKEVENT Event = NULL; PIRP Irp = NULL; - PIO_STACK_LOCATION StackPtr; + PEXTENDED_IO_STACK_LOCATION StackPtr; IO_STATUS_BLOCK LocalIoStatusBlock; PIO_STATUS_BLOCK IoStatusBlock; PDEVICE_OBJECT DeviceObject; @@ -127,7 +127,7 @@ NtLockFile ( Irp->UserIosb = IoStatusBlock; Irp->Tail.Overlay.Thread = PsGetCurrentThread(); - StackPtr = IoGetNextIrpStackLocation(Irp); + StackPtr = (PEXTENDED_IO_STACK_LOCATION) IoGetNextIrpStackLocation(Irp); StackPtr->MajorFunction = IRP_MJ_LOCK_CONTROL; StackPtr->MinorFunction = IRP_MN_LOCK; StackPtr->FileObject = FileObject; @@ -150,7 +150,7 @@ NtLockFile ( StackPtr->Parameters.LockControl.Length = LocalLength; StackPtr->Parameters.LockControl.ByteOffset = *ByteOffset; StackPtr->Parameters.LockControl.Key = Key ? *Key : 0; - + IoSetCompletionRoutine( Irp, NtLockFileCompletionRoutine, @@ -221,7 +221,7 @@ NtUnlockFile ( PFILE_OBJECT FileObject = NULL; PLARGE_INTEGER LocalLength = NULL; PIRP Irp = NULL; - PIO_STACK_LOCATION StackPtr; + PEXTENDED_IO_STACK_LOCATION StackPtr; IO_STATUS_BLOCK LocalIoStatusBlock; PDEVICE_OBJECT DeviceObject; @@ -265,7 +265,7 @@ NtUnlockFile ( Irp->UserIosb = &LocalIoStatusBlock; Irp->Tail.Overlay.Thread = PsGetCurrentThread(); - StackPtr = IoGetNextIrpStackLocation(Irp); + StackPtr = (PEXTENDED_IO_STACK_LOCATION) IoGetNextIrpStackLocation(Irp); StackPtr->MajorFunction = IRP_MJ_LOCK_CONTROL; StackPtr->MinorFunction = IRP_MN_UNLOCK_SINGLE; StackPtr->DeviceObject = DeviceObject; diff --git a/reactos/ntoskrnl/io/vpb.c b/reactos/ntoskrnl/io/vpb.c index d7f12107933..2a15bdae628 100644 --- a/reactos/ntoskrnl/io/vpb.c +++ b/reactos/ntoskrnl/io/vpb.c @@ -1,4 +1,4 @@ -/* $Id: vpb.c,v 1.21 2003/07/10 15:47:00 royce Exp $ +/* $Id: vpb.c,v 1.22 2003/08/07 11:47:33 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -287,7 +287,7 @@ NtSetVolumeInformationFile(IN HANDLE FileHandle, PDEVICE_OBJECT DeviceObject; PIRP Irp; NTSTATUS Status; - PIO_STACK_LOCATION StackPtr; + PEXTENDED_IO_STACK_LOCATION StackPtr; PVOID SystemBuffer; IO_STATUS_BLOCK IoSB; @@ -334,7 +334,7 @@ NtSetVolumeInformationFile(IN HANDLE FileHandle, Irp->UserIosb = &IoSB; Irp->Tail.Overlay.Thread = PsGetCurrentThread(); - StackPtr = IoGetNextIrpStackLocation(Irp); + StackPtr = (PEXTENDED_IO_STACK_LOCATION) IoGetNextIrpStackLocation(Irp); StackPtr->MajorFunction = IRP_MJ_SET_VOLUME_INFORMATION; StackPtr->MinorFunction = 0; StackPtr->Flags = 0; diff --git a/reactos/ntoskrnl/lpc/connect.c b/reactos/ntoskrnl/lpc/connect.c index 715a84f8a8d..842f15c00de 100644 --- a/reactos/ntoskrnl/lpc/connect.c +++ b/reactos/ntoskrnl/lpc/connect.c @@ -1,4 +1,4 @@ -/* $Id: connect.c,v 1.18 2003/07/11 01:23:15 royce Exp $ +/* $Id: connect.c,v 1.19 2003/08/07 11:47:33 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -96,7 +96,7 @@ EiConnectPort(IN PEPORT* ConnectedPort, sizeof(EPORT_CONNECT_REQUEST_MESSAGE) + RequestConnectDataLength; DPRINT("RequestMessageSize %d\n", RequestMessage->MessageHeader.MessageSize); - RequestMessage->MessageHeader.SharedSectionSize = 0; + RequestMessage->MessageHeader.SectionSize = 0; RequestMessage->ConnectingProcess = PsGetCurrentProcess(); ObReferenceObjectByPointer(RequestMessage->ConnectingProcess, PROCESS_VM_OPERATION, diff --git a/reactos/ntoskrnl/lpc/reply.c b/reactos/ntoskrnl/lpc/reply.c index 9a70aa2b124..4db58f2785d 100644 --- a/reactos/ntoskrnl/lpc/reply.c +++ b/reactos/ntoskrnl/lpc/reply.c @@ -1,4 +1,4 @@ -/* $Id: reply.c,v 1.18 2003/07/21 21:53:52 royce Exp $ +/* $Id: reply.c,v 1.19 2003/08/07 11:47:33 silverblade Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -61,8 +61,8 @@ EiReplyOrRequestPort (IN PEPORT Port, memcpy(&MessageReply->Message, LpcReply, LpcReply->MessageSize); } - MessageReply->Message.Cid.UniqueProcess = PsGetCurrentProcessId(); - MessageReply->Message.Cid.UniqueThread = PsGetCurrentThreadId(); + MessageReply->Message.ClientId.UniqueProcess = PsGetCurrentProcessId(); + MessageReply->Message.ClientId.UniqueThread = PsGetCurrentThreadId(); MessageReply->Message.MessageType = MessageType; MessageReply->Message.MessageId = InterlockedIncrement((LONG *)&EiNextLpcMessageId); diff --git a/reactos/subsys/csrss/api/wapi.c b/reactos/subsys/csrss/api/wapi.c index a041d365bdb..888eb980d6e 100644 --- a/reactos/subsys/csrss/api/wapi.c +++ b/reactos/subsys/csrss/api/wapi.c @@ -1,4 +1,4 @@ -/* $Id: wapi.c,v 1.29 2003/07/29 23:03:01 jimtabor Exp $ +/* $Id: wapi.c,v 1.30 2003/08/07 11:47:33 silverblade Exp $ * * reactos/subsys/csrss/api/wapi.c * @@ -96,7 +96,7 @@ static void Thread_Api2(HANDLE ServerPort) if ( LpcRequest.Header.MessageType == LPC_PORT_CLOSED ) { - CsrFreeProcessData( (ULONG)LpcRequest.Header.Cid.UniqueProcess ); + CsrFreeProcessData( (ULONG)LpcRequest.Header.ClientId.UniqueProcess ); NtClose(ServerPort); NtTerminateThread(NtCurrentThread(), STATUS_SUCCESS); continue; @@ -106,7 +106,7 @@ static void Thread_Api2(HANDLE ServerPort) Reply = (PCSRSS_API_REPLY)&LpcReply; ProcessData = CsrGetProcessData( - (ULONG)LpcRequest.Header.Cid.UniqueProcess); + (ULONG)LpcRequest.Header.ClientId.UniqueProcess); // DisplayString(L"CSR: Received request\n"); if( Request->Type >= (sizeof( CsrFuncs ) / sizeof( CsrFunc )) - 1 ) @@ -156,7 +156,7 @@ void Thread_Api(PVOID PortHandle) NtTerminateThread(NtCurrentThread(), Status); } - ProcessData = CsrGetProcessData((ULONG)Request.Header.Cid.UniqueProcess); + ProcessData = CsrGetProcessData((ULONG)Request.Header.ClientId.UniqueProcess); ProcessData->CsrSectionViewBase = LpcRead.ViewBase; ProcessData->CsrSectionViewSize = LpcRead.ViewSize;