diff --git a/reactos/ntoskrnl/include/internal/io.h b/reactos/ntoskrnl/include/internal/io.h index f6f3c09c5db..d9a070ce36a 100644 --- a/reactos/ntoskrnl/include/internal/io.h +++ b/reactos/ntoskrnl/include/internal/io.h @@ -1,4 +1,4 @@ -/* $Id: io.h,v 1.1 2000/06/29 23:35:36 dwelch Exp $ +/* $Id: io.h,v 1.2 2000/07/07 02:09:51 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -30,6 +30,7 @@ NTSTATUS IoInitializeDriver(PDRIVER_INITIALIZE DriverEntry); VOID IoInitCancelHandling(VOID); VOID IoInitSymbolicLinkImplementation(VOID); VOID IoInitFileSystemImplementation(VOID); +VOID IoInitVpbImplementation (VOID); NTSTATUS IoTryToMountStorageDevice(PDEVICE_OBJECT DeviceObject); POBJECT IoOpenSymlink(POBJECT SymbolicLink); diff --git a/reactos/ntoskrnl/io/iomgr.c b/reactos/ntoskrnl/io/iomgr.c index ea6829435be..2279cc954d4 100644 --- a/reactos/ntoskrnl/io/iomgr.c +++ b/reactos/ntoskrnl/io/iomgr.c @@ -1,4 +1,4 @@ -/* $Id: iomgr.c,v 1.12 2000/06/29 23:35:37 dwelch Exp $ +/* $Id: iomgr.c,v 1.13 2000/07/07 02:10:18 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -235,6 +235,7 @@ VOID IoInit (VOID) IoInitCancelHandling (); IoInitSymbolicLinkImplementation (); IoInitFileSystemImplementation (); + IoInitVpbImplementation (); /* * Create link from \DosDevices to \?? directory diff --git a/reactos/ntoskrnl/io/vpb.c b/reactos/ntoskrnl/io/vpb.c index 108e10b83e9..6c9e668743a 100644 --- a/reactos/ntoskrnl/io/vpb.c +++ b/reactos/ntoskrnl/io/vpb.c @@ -1,4 +1,4 @@ -/* $Id: vpb.c,v 1.9 2000/03/26 19:38:26 ea Exp $ +/* $Id: vpb.c,v 1.10 2000/07/07 02:10:50 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -12,15 +12,25 @@ /* INCLUDES *****************************************************************/ #include -#include -#include -#include +#include #define NDEBUG #include +/* GLOBALS *******************************************************************/ + +static KSPIN_LOCK IoVpbLock; + /* FUNCTIONS *****************************************************************/ +VOID +IoInitVpbImplementation ( + VOID + ) +{ + KeInitializeSpinLock(&IoVpbLock); +} + NTSTATUS IoAttachVpb(PDEVICE_OBJECT DeviceObject) { PVPB Vpb; @@ -235,10 +245,11 @@ NtSetVolumeInformationFile ( VOID STDCALL IoAcquireVpbSpinLock ( - PKIRQL Irpl + OUT PKIRQL Irql ) { - UNIMPLEMENTED; + KeAcquireSpinLock (&IoVpbLock, + Irql); } @@ -248,7 +259,8 @@ IoReleaseVpbSpinLock ( IN KIRQL Irql ) { - UNIMPLEMENTED; + KeReleaseSpinLock (&IoVpbLock, + Irql); }