[FASTFAT] Start implementing FAT32 statistics support
[reactos.git] / drivers / filesystems / npfs / strucsup.c
index 73d0360..e178b01 100644 (file)
@@ -15,7 +15,7 @@
 
 /* GLOBALS ********************************************************************/
 
-PWCHAR NpRootDCBName = L"\\";
+WCHAR NpRootDCBName[] = L"\\";
 PNP_VCB NpVcb;
 
 /* FUNCTIONS ******************************************************************/
@@ -188,8 +188,8 @@ NpCreateRootDcb(VOID)
     InitializeListHead(&Dcb->FcbList);
 
     Dcb->FullName.Buffer = NpRootDCBName;
-    Dcb->FullName.Length = 2;
-    Dcb->FullName.MaximumLength = 4;
+    Dcb->FullName.Length = sizeof(NpRootDCBName) - sizeof(UNICODE_NULL);
+    Dcb->FullName.MaximumLength = sizeof(NpRootDCBName);
 
     Dcb->ShortName.Length = Dcb->FullName.Length;
     Dcb->ShortName.MaximumLength = Dcb->FullName.MaximumLength;
@@ -218,7 +218,6 @@ NpCreateFcb(IN PNP_DCB Dcb,
     PNP_FCB Fcb;
     BOOLEAN RootPipe;
     PWCHAR NameBuffer;
-    ULONG BufferOffset;
     USHORT Length, MaximumLength;
     PAGED_CODE();
 
@@ -233,6 +232,7 @@ NpCreateFcb(IN PNP_DCB Dcb,
     RootPipe = FALSE;
     if (PipeName->Buffer[0] != OBJ_NAME_PATH_SEPARATOR)
     {
+        Length += sizeof(OBJ_NAME_PATH_SEPARATOR);
         MaximumLength += sizeof(OBJ_NAME_PATH_SEPARATOR);
         RootPipe = TRUE;
         if (MaximumLength < sizeof(WCHAR))
@@ -262,15 +262,21 @@ NpCreateFcb(IN PNP_DCB Dcb,
 
     InsertTailList(&Dcb->FcbList, &Fcb->DcbEntry);
 
-    BufferOffset = 0;
     if (RootPipe)
     {
         NameBuffer[0] = OBJ_NAME_PATH_SEPARATOR;
-        BufferOffset = 1;
+        RtlCopyMemory(NameBuffer + 1,
+                      PipeName->Buffer,
+                      PipeName->Length);
+    }
+    else
+    {
+        RtlCopyMemory(NameBuffer,
+                      PipeName->Buffer,
+                      PipeName->Length);
     }
 
-    RtlCopyMemory(NameBuffer + BufferOffset, PipeName->Buffer, Length);
-    NameBuffer[BufferOffset + (Length / sizeof(WCHAR))] = UNICODE_NULL;
+    NameBuffer[Length / sizeof(WCHAR)] = UNICODE_NULL;
 
     Fcb->FullName.Length = Length;
     Fcb->FullName.MaximumLength = MaximumLength;