list(APPEND SOURCE
- cleanup.c
- close.c
- create.c
- datasup.c
- fileinfo.c
- fileobsup.c
- flushbuf.c
- fsctrl.c
- main.c
- prefxsup.c
- read.c
- readsup.c
- secursup.c
- seinfo.c
- statesup.c
- strucsup.c
- volinfo.c
- waitsup.c
- write.c
- writesup.c)
+ cleanup.c
+ close.c
+ create.c
+ datasup.c
+ fileinfo.c
+ fileobsup.c
+ flushbuf.c
+ fsctrl.c
+ main.c
+ prefxsup.c
+ read.c
+ readsup.c
+ secursup.c
+ seinfo.c
+ statesup.c
+ strucsup.c
+ volinfo.c
+ waitsup.c
+ write.c
+ writesup.c)
add_library(npfs SHARED ${SOURCE})
set_module_type(npfs kernelmodedriver)
IN ACCESS_MASK DesiredAccess,
IN PLIST_ENTRY List)
{
- IO_STATUS_BLOCK Status;
+ IO_STATUS_BLOCK IoStatus;
PNP_ROOT_DCB_FCB Ccb;
PAGED_CODE();
- Status.Status = NpCreateRootDcbCcb(&Ccb);
- if (NT_SUCCESS(Status.Status))
+ IoStatus.Status = NpCreateRootDcbCcb(&Ccb);
+ if (NT_SUCCESS(IoStatus.Status))
{
NpSetFileObject(FileObject, Dcb, Ccb, FALSE);
++Dcb->CurrentInstances;
- Status.Information = FILE_OPENED;
- Status.Status = STATUS_SUCCESS;
+ IoStatus.Information = FILE_OPENED;
+ IoStatus.Status = STATUS_SUCCESS;
}
else
{
- Status.Information = 0;
+ IoStatus.Information = 0;
}
- return Status;
+ return IoStatus;
}
IO_STATUS_BLOCK
PNP_CCB Ccb;
PFILE_PIPE_PEEK_BUFFER PeekBuffer;
PNP_DATA_QUEUE DataQueue;
- ULONG BytesPeeked;
+ ULONG_PTR BytesPeeked;
IO_STATUS_BLOCK IoStatus;
NTSTATUS Status;
PNP_DATA_QUEUE_ENTRY DataEntry;
//
// Npf* -npfs.sys - Npfs Allocations
// NpFc - npfs.sys - CCB, client control block
-// NpFf - npts.sys - FCB, file control block
+// NpFf - npfs.sys - FCB, file control block
// NpFC - npfs.sys - ROOT_DCB CCB
// NpFD - npfs.sys - DCB, directory block
// NpFg - npfs.sys - Global storage
LIST_ENTRY NotifyList;
LIST_ENTRY NotifyList2;
LIST_ENTRY FcbList;
+#ifndef _WIN64
ULONG Pad;
+#endif
//
// Common Footer
USHORT NamedPipeType;
LARGE_INTEGER Timeout;
LIST_ENTRY CcbList;
+#ifdef _WIN64
+ PVOID Pad[2];
+#endif
//
// Common Footer
IN UCHAR CompletionMode,
IN ULONG InQuota,
IN ULONG OutQuota,
- OUT PNP_CCB* NewCcb);
+ OUT PNP_CCB *NewCcb);
NTSTATUS
NTAPI
NTSTATUS
NTAPI
-NpCreateRootDcbCcb(IN PNP_ROOT_DCB_FCB* NewRootCcb);
+NpCreateRootDcbCcb(IN PNP_ROOT_DCB_FCB *NewRootCcb);
VOID
NTAPI
NODE_TYPE_CODE
NTAPI
NpDecodeFileObject(IN PFILE_OBJECT FileObject,
- OUT PVOID* PrimaryContext OPTIONAL,
- OUT PNP_CCB* Ccb,
+ OUT PVOID *PrimaryContext OPTIONAL,
+ OUT PNP_CCB *Ccb,
OUT PULONG NamedPipeEnd OPTIONAL);
PNP_FCB
NTSTATUS
NTAPI
-NpCreateRootDcbCcb(IN PNP_ROOT_DCB_FCB* NewRootCcb)
+NpCreateRootDcbCcb(IN PNP_ROOT_DCB_FCB *NewRootCcb)
{
PNP_ROOT_DCB_FCB RootCcb;
PAGED_CODE();
IN UCHAR CompletionMode,
IN ULONG InQuota,
IN ULONG OutQuota,
- OUT PNP_CCB* NewCcb)
+ OUT PNP_CCB *NewCcb)
{
PNP_CCB Ccb;
PNP_NONPAGED_CCB CcbNonPaged;
if (IoStack->MajorFunction == IRP_MJ_FILE_SYSTEM_CONTROL &&
IoStack->Parameters.FileSystemControl.FsControlCode == FSCTL_PIPE_INTERNAL_READ_OVFLOW &&
- (DataSize < OutBufferSize || MoreProcessing))
+ (DataSize < OutBufferSize || MoreProcessing))
{
WriteIrp = NpRemoveDataQueueEntry(WriteQueue, TRUE, List);
if (WriteIrp)
if (DataEntry->DataEntryType == Unbuffered)
{
- DataEntry->Irp->Overlay.AllocationSize.QuadPart = 0;
+ DataEntry->Irp->Overlay.AllocationSize.QuadPart = 0;
}
BufferSize = *BytesNotWritten;
_SEH2_TRY
{
- RtlCopyMemory(Buffer,
- (PVOID)((ULONG_PTR)OutBuffer + OutBufferSize - *BytesNotWritten),
- BufferSize);
+ RtlCopyMemory(Buffer,
+ (PVOID)((ULONG_PTR)OutBuffer + OutBufferSize - *BytesNotWritten),
+ BufferSize);
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{