IN PIRP Irp)
{
IO_STATUS_BLOCK IoStatus;
- PEXTENDED_IO_STACK_LOCATION IoStack;
+ PIO_STACK_LOCATION IoStack;
UNICODE_STRING FileName;
PFILE_OBJECT FileObject;
PFILE_OBJECT RelatedFileObject;
TRACE("Entered\n");
InitializeListHead(&DeferredList);
- IoStack = (PEXTENDED_IO_STACK_LOCATION)IoGetCurrentIrpStackLocation(Irp);
+ IoStack = IoGetCurrentIrpStackLocation(Irp);
FileObject = IoStack->FileObject;
RelatedFileObject = FileObject->RelatedFileObject;
FileName = FileObject->FileName;
IoStatus.Information = 0;
FsRtlEnterFileSystem();
- ExAcquireResourceExclusiveLite(&NpVcb->Lock, TRUE);
+ NpAcquireExclusiveVcb();
if (RelatedFileObject)
{
goto Quickie;
}
- Fcb = NpFindPrefix(&FileName, TRUE, &Prefix);
+ Fcb = NpFindPrefix(&FileName, 1, &Prefix);
}
if (Prefix.Length)
&DeferredList);
Quickie:
- ExReleaseResourceLite(&NpVcb->Lock);
+ NpReleaseVcb();
NpCompleteDeferredIrps(&DeferredList);
FsRtlExitFileSystem();
if (AccessGranted)
{
AccessState->PreviouslyGrantedAccess |= GrantedAccess;
- AccessState->RemainingDesiredAccess &= ~(GrantedAccess | 0x2000000);
+ AccessState->RemainingDesiredAccess &= ~(GrantedAccess | MAXIMUM_ALLOWED);
}
ObjectTypeName.Buffer = L"NamedPipe";
if (!(Parameters->TimeoutSpecified) ||
!(Parameters->MaximumInstances) ||
- (Parameters->DefaultTimeout.HighPart >= 0))
+ (Parameters->DefaultTimeout.QuadPart >= 0))
{
Status = STATUS_INVALID_PARAMETER;
goto Quickie;
goto Quickie;
}
- if (!Parameters->NamedPipeType && Parameters->ReadMode == 1)
+ if (Parameters->NamedPipeType == FILE_PIPE_BYTE_STREAM_TYPE &&
+ Parameters->ReadMode == FILE_PIPE_MESSAGE_MODE)
{
Status = STATUS_INVALID_PARAMETER;
goto Quickie;
}
SecurityContext = &AccessState->SubjectSecurityContext;
- SeLockSubjectContext(&AccessState->SubjectSecurityContext);
+ SeLockSubjectContext(SecurityContext);
- Status = SeAssignSecurity(0,
+ Status = SeAssignSecurity(NULL,
AccessState->SecurityDescriptor,
&SecurityDescriptor,
- 0,
+ FALSE,
SecurityContext,
IoGetFileObjectGenericMapping(),
PagedPool);
Status = ObLogSecurityDescriptor(SecurityDescriptor,
&CachedSecurityDescriptor,
1);
- ExFreePool(SecurityDescriptor);
+ ExFreePoolWithTag(SecurityDescriptor, 0);
if (!NT_SUCCESS(Status))
{
NpFsdCreateNamedPipe(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{
- PEXTENDED_IO_STACK_LOCATION IoStack;
+ PIO_STACK_LOCATION IoStack;
PFILE_OBJECT FileObject;
PFILE_OBJECT RelatedFileObject;
USHORT Disposition, ShareAccess;
InitializeListHead(&DeferredList);
Process = IoGetRequestorProcess(Irp);
- IoStack = (PEXTENDED_IO_STACK_LOCATION) IoGetCurrentIrpStackLocation(Irp);
+ IoStack = IoGetCurrentIrpStackLocation(Irp);
FileObject = IoStack->FileObject;
RelatedFileObject = FileObject->RelatedFileObject;
goto Quickie;
}
- Fcb = NpFindPrefix(&FileName, TRUE, &Prefix);
+ Fcb = NpFindPrefix(&FileName, 1, &Prefix);
}
if (Prefix.Length)