/* GLOBALS ********************************************************************/
-PWCHAR NpRootDCBName = L"\\";
+WCHAR NpRootDCBName[] = L"\\";
PNP_VCB NpVcb;
/* FUNCTIONS ******************************************************************/
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;
PNP_FCB Fcb;
BOOLEAN RootPipe;
PWCHAR NameBuffer;
- ULONG BufferOffset;
USHORT Length, MaximumLength;
PAGED_CODE();
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))
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;