#include "fastio.h"\r
#include "fsrtl.h"\r
\r
-/* \r
+/*\r
This is the main test function. It is called from DriverEntry.\r
\r
There is a DbgBreakPoint() call at the beginning of DriverEntry.\r
In order to run the test again, simply type\r
net stop fsrtl\r
net start fsrtl\r
- \r
+\r
Author: Dom Cote\r
*/\r
\r
\r
HANDLE DirFh = NULL;\r
PFILE_OBJECT DirPfo = NULL;\r
- \r
- \r
+\r
+\r
IO_STATUS_BLOCK IoStatus;\r
BOOLEAN Return;\r
NTSTATUS Status = STATUS_SUCCESS;\r
PLARGE_INTEGER FileSize;\r
\r
PDEVICE_OBJECT pRelatedDo = NULL;\r
- \r
+\r
/* Allocate a 100KB buffer to do IOs */\r
Buffer = ExAllocatePool(PagedPool,100*_1KB);\r
- \r
+\r
/* ------------------------------------------------------------------------\r
TESTING:\r
BOOLEAN\r
------------------------------------------------------------------------ */\r
FsRtlTest_OpenTestFile(&Fh, &Pfo);\r
FSRTL_TEST("Opening Test File.",((Pfo != NULL) && (Fh != NULL)));\r
- \r
+\r
/* Extract the test variable from the FCB struct */\r
FcbHeader = (PFSRTL_COMMON_FCB_HEADER)Pfo->FsContext;\r
AllocationSize = &FcbHeader->AllocationSize;\r
ValidDataLength = &FcbHeader->ValidDataLength;\r
FileSize = &FcbHeader->FileSize;\r
- \r
+\r
/* Try to cache without caching having been initialized. This should fail.*/\r
Length = 10*_1KB;\r
FSRTL_TEST("FsRtlCopyWrite() - No cache map test.",!FsRtlCopyWrite(Pfo,AllocationSize,Length,TRUE,0,Buffer,&IoStatus,NULL));\r
Return = FsRltTest_WritefileZw(Fh,NULL,Length, Buffer, &IoStatus);\r
FSRTL_TEST("FsRtlCopyWrite() - Extending by 1/2 sector.",(NT_SUCCESS(Return) && NT_SUCCESS(IoStatus.Status ) && IoStatus.Information == Length));\r
Return = TRUE;\r
- \r
+\r
/* Append to the file past the allocation size*/\r
Offset.LowPart = 0xFFFFFFFF;\r
Offset.HighPart = 0xFFFFFFFF;\r
FSRTL_TEST("FsRtlCopyWrite() - Testing extending past allocation size",!FsRtlCopyWrite(Pfo,&Offset,Length+1,TRUE,0,Buffer,&IoStatus,NULL));\r
FSRTL_TEST("FsRtlCopyWrite() - Testing extending not past allocation size",FsRtlCopyWrite(Pfo,&Offset,Length,TRUE,0,Buffer,&IoStatus,NULL));\r
FSRTL_TEST("FsRtlCopyWrite() - Check filesize",(FileSize->QuadPart = (OldSize.QuadPart+Length)));\r
- \r
+\r
/* Try do write a 65kb IO and check that if fails. Maximum IO size for thus function is 64KB */\r
Offset.QuadPart = 0;\r
Length = 65*_1KB;\r
FcbHeader->IsFastIoPossible = FastIoIsQuestionable;\r
FSRTL_TEST("FastIo is questionable flag",FsRtlCopyWrite(Pfo,&Offset,Length,TRUE,0,Buffer,&IoStatus,NULL))\r
*/\r
- \r
+\r
/* Test the fast Io not possible flag */\r
FcbHeader->IsFastIoPossible = FastIoIsNotPossible;\r
FSRTL_TEST("FsRtlCopyWrite() - FastIo is not possible flag",!FsRtlCopyWrite(Pfo,&Offset,Length,TRUE,0,Buffer,&IoStatus,NULL))\r
FcbHeader->IsFastIoPossible = FastIoIsPossible;\r
FSRTL_TEST("FsRtlCopyWrite() - FastIo is possbile flag",FsRtlCopyWrite(Pfo,&Offset,Length,TRUE,0,Buffer,&IoStatus,NULL))\r
\r
- if (Pfo) \r
+ if (Pfo)\r
{\r
ObDereferenceObject(Pfo);\r
Pfo = NULL;\r
ZwClose(Fh);\r
Fh = NULL;\r
}\r
- \r
+\r
/* ------------------------------------------------------------------------\r
TESTING:\r
BOOLEAN\r
AllocationSize = &FcbHeader->AllocationSize;\r
ValidDataLength = &FcbHeader->ValidDataLength;\r
FileSize = &FcbHeader->FileSize;\r
- \r
+\r
/* Try to cache without caching having been initialized. This should fail.*/\r
Length = 10*_1KB;\r
FSRTL_TEST("FsRtlCopyWrite() - No cache map test. Wait = FALSE",!FsRtlCopyWrite(Pfo,AllocationSize,Length,FALSE,0,Buffer,&IoStatus,NULL));\r
Return = FsRltTest_WritefileZw(Fh,NULL,Length, Buffer, &IoStatus);\r
FSRTL_TEST("FsRtlCopyWrite() - Extending by 1/2 sector. Wait = FALSE",(NT_SUCCESS(Return) && NT_SUCCESS(IoStatus.Status ) && IoStatus.Information == Length));\r
Return = TRUE;\r
- \r
+\r
/* Append to the file past the allocation size*/\r
Offset.LowPart = 0xFFFFFFFF;\r
Offset.HighPart = 0xFFFFFFFF;\r
FSRTL_TEST("FsRtlCopyWrite() - Testing extending past allocation size Wait = FALSE",!FsRtlCopyWrite(Pfo,&Offset,Length+1,FALSE,0,Buffer,&IoStatus,NULL));\r
FSRTL_TEST("FsRtlCopyWrite() - Testing extending not past allocation size. Wait = FALSE",FsRtlCopyWrite(Pfo,&Offset,Length,FALSE,0,Buffer,&IoStatus,NULL));\r
FSRTL_TEST("FsRtlCopyWrite() - Check filesize",(FileSize->QuadPart = (OldSize.QuadPart+Length)));\r
- \r
+\r
/* Try do write a 65kb IO and check that if fails. Maximum IO size for thus function is 64KB */\r
Offset.QuadPart = 0;\r
Length = 65*_1KB;\r
FcbHeader->IsFastIoPossible = FastIoIsQuestionable;\r
FSRTL_TEST("FastIo is questionable flag",FsRtlCopyWrite(Pfo,&Offset,Length,TRUE,0,Buffer,&IoStatus,NULL))\r
*/\r
- \r
+\r
/* Test the fast Io not possible flag */\r
FcbHeader->IsFastIoPossible = FastIoIsNotPossible;\r
FSRTL_TEST("FsRtlCopyWrite() - FastIo is not possible flag. Wait = FALSE",!FsRtlCopyWrite(Pfo,&Offset,Length,FALSE,0,Buffer,&IoStatus,NULL))\r
\r
/* ------------------------------------------------------------------------------------------\r
TESTING:\r
- \r
+\r
BOOLEAN\r
NTAPI\r
FsRtlCopyRead(IN PFILE_OBJECT FileObject,\r
Return = FsRtlCopyRead(Pfo,&Offset,Length,TRUE,0,Buffer,&IoStatus,NULL);\r
FSRTL_TEST("FsRtlCopyRead() - Testing 64k IO Wait=TRUE",(NT_SUCCESS(Return) && NT_SUCCESS(IoStatus.Status ) && IoStatus.Information == Length));\r
Return = TRUE;\r
- \r
+\r
/* Testing a 64KB read with Wait = FALSE */\r
Return = FsRtlCopyRead(Pfo,&Offset,Length,FALSE,0,Buffer,&IoStatus,NULL);\r
FSRTL_TEST("FsRtlCopyRead() - Testing 64k IO Wait=FALSE",(NT_SUCCESS(Return) && NT_SUCCESS(IoStatus.Status ) && IoStatus.Information == Length));\r
Length = 10 * _1KB;\r
Return = FsRtlCopyRead(Pfo,&Offset,Length,TRUE,0,Buffer,&IoStatus,NULL);\r
FSRTL_TEST("FsRtlCopyRead() - Testing reading past end of file but starting before EOF",(NT_SUCCESS(Return) && NT_SUCCESS(IoStatus.Status) && IoStatus.Information == (FileSize->QuadPart-Offset.QuadPart)));\r
- \r
+\r
Offset.QuadPart = FileSize->QuadPart + 1;\r
Length = 10 * _1KB;\r
Return = FsRtlCopyRead(Pfo,&Offset,Length,TRUE,0,Buffer,&IoStatus,NULL);\r
FSRTL_TEST("FsRtlCopyRead() - Testing reading past end of file but starting after EOF",(NT_SUCCESS(Return) && (IoStatus.Status == STATUS_END_OF_FILE) && IoStatus.Information == 0));\r
- \r
+\r
\r
/* Testing a 64KB read with Wait = TRUE */\r
Offset.LowPart = 0x0;\r
FcbHeader->IsFastIoPossible = FastIoIsPossible;\r
Return = TRUE;\r
\r
- if (Pfo) \r
+ if (Pfo)\r
{\r
ObDereferenceObject(Pfo);\r
Pfo = NULL;\r
AllocationSize = &FcbHeader->AllocationSize;\r
ValidDataLength = &FcbHeader->ValidDataLength;\r
FileSize = &FcbHeader->FileSize;\r
- \r
+\r
/* Try to cache without caching having been initialized. This should fail.*/\r
Length = 10*_1KB;\r
FSRTL_TEST("FsRtlPrepareMdlWriteDev() - No cache map test. Wait = FALSE",\r
!FsRtlPrepareMdlWriteDev(Pfo,AllocationSize,Length,0,MdlChain,&IoStatus,NULL));\r
- \r
+\r
/* We are going to build a 100k file */\r
/* This will inititate caching and build some size */\r
Offset.QuadPart = 0;\r
\r
pRelatedDo = IoGetRelatedDeviceObject(Pfo);\r
FSRTL_TEST("FsRtlPrepareMdlWriteDev() - Did we get related DO ?",pRelatedDo);\r
- \r
- \r
+\r
+\r
/* Append to the file past the allocation size*/\r
Offset.QuadPart = FileSize->QuadPart;\r
OldSize.QuadPart = FileSize->QuadPart;\r
Length = (ULONG) (AllocationSize->QuadPart -ValidDataLength->QuadPart);\r
FSRTL_TEST("FsRtlPrepareMdlWriteDev() - Testing extending past allocation size.",\r
!FsRtlPrepareMdlWriteDev(Pfo,&Offset,Length+1,0,&MdlChain,&IoStatus,pRelatedDo));\r
- \r
+\r
FSRTL_TEST("FsRtlPrepareMdlWriteDev() - Testing extending not past allocation size.",\r
FsRtlPrepareMdlWriteDev(Pfo,&Offset,Length,0,&MdlChain,&IoStatus,pRelatedDo));\r
FSRTL_TEST("FsRtlPrepareMdlWriteDev() - Check filesize",(FileSize->QuadPart = (OldSize.QuadPart+Length)));\r
FSRTL_TEST("FsRtlPrepareMdlWriteDev() - Release the MDL.",FsRtlMdlWriteCompleteDev(Pfo,&Offset,MdlChain,pRelatedDo));\r
- \r
- \r
+\r
+\r
/* Try do write a 65kb IO and check that if fails. Maximum IO size for thus function is 64KB */\r
Offset.QuadPart = 0;\r
MdlChain = NULL;\r
FSRTL_TEST("FsRtlPrepareMdlWriteDev() - 65KB IO Test.",\r
FsRtlPrepareMdlWriteDev(Pfo,&Offset,Length,0,&MdlChain,&IoStatus,pRelatedDo));\r
FSRTL_TEST("FsRtlPrepareMdlWriteDev() - Release the MDL.",FsRtlMdlWriteCompleteDev(Pfo,&Offset,MdlChain,pRelatedDo));\r
- \r
+\r
/* Try do write a 64kb IO. Maximum IO size for thus function is 64KB */\r
Length = 64*_1KB;\r
MdlChain = NULL;\r
FSRTL_TEST("FsRtlPrepareMdlWriteDev() - 64KB IO Test.",\r
FsRtlPrepareMdlWriteDev(Pfo,&Offset,Length,0,&MdlChain,&IoStatus,NULL))\r
FSRTL_TEST("FsRtlPrepareMdlWriteDev() - Release the MDL.",FsRtlMdlWriteCompleteDev(Pfo,&Offset,MdlChain,NULL));\r
- \r
+\r
/* Test the fast Io not possible flag */\r
FcbHeader->IsFastIoPossible = FastIoIsNotPossible;\r
FSRTL_TEST("FsRtlPrepareMdlWriteDev() - FastIo is not possible flag.",\r
!FsRtlPrepareMdlWriteDev(Pfo,&Offset,Length,0,&MdlChain,&IoStatus,NULL))\r
- \r
- if (Pfo) \r
+\r
+ if (Pfo)\r
{\r
ObDereferenceObject(Pfo);\r
Pfo = NULL;\r
AllocationSize = &FcbHeader->AllocationSize;\r
ValidDataLength = &FcbHeader->ValidDataLength;\r
FileSize = &FcbHeader->FileSize;\r
- \r
+\r
/* Try to cache without caching having been initialized. This should fail.*/\r
Length = 10*_1KB;\r
FSRTL_TEST("FsRtlPrepareMdlWrite() - No cache map test. Wait = FALSE",\r
!FsRtlPrepareMdlWrite(Pfo,AllocationSize,Length,0,MdlChain,&IoStatus));\r
- \r
+\r
/* We are going to build a 100k file */\r
/* This will inititate caching and build some size */\r
Offset.QuadPart = 0;\r
Length = (ULONG) (AllocationSize->QuadPart -ValidDataLength->QuadPart);\r
FSRTL_TEST("FsRtlPrepareMdlWrite() - Testing extending past allocation size.",\r
!FsRtlPrepareMdlWrite(Pfo,&Offset,Length+1,0,&MdlChain,&IoStatus));\r
- \r
+\r
FSRTL_TEST("FsRtlPrepareMdlWrite() - Testing extending not past allocation size.",\r
FsRtlPrepareMdlWrite(Pfo,&Offset,Length,0,&MdlChain,&IoStatus));\r
FSRTL_TEST("FsRtlPrepareMdlWrite() - Check filesize",(FileSize->QuadPart = (OldSize.QuadPart+Length)));\r
FSRTL_TEST("FsRtlPrepareMdlWrite() - Release the MDL.",FsRtlMdlWriteComplete(Pfo,&Offset,MdlChain));\r
- \r
- \r
+\r
+\r
/* Try do write a 65kb IO and check that if fails. Maximum IO size for thus function is 64KB */\r
Offset.QuadPart = 0;\r
MdlChain = NULL;\r
FSRTL_TEST("FsRtlPrepareMdlWrite() - 65KB IO Test.",\r
!FsRtlPrepareMdlWrite(Pfo,&Offset,Length,0,&MdlChain,&IoStatus));\r
//FSRTL_TEST("FsRtlPrepareMdlWrite() - Release the MDL.",FsRtlMdlWriteComplete(Pfo,&Offset,MdlChain));\r
- \r
+\r
/* Try do write a 64kb IO. Maximum IO size for thus function is 64KB */\r
Length = 64*_1KB;\r
MdlChain = NULL;\r
FSRTL_TEST("FsRtlPrepareMdlWrite() - 64KB IO Test.",\r
FsRtlPrepareMdlWrite(Pfo,&Offset,Length,0,&MdlChain,&IoStatus))\r
FSRTL_TEST("FsRtlPrepareMdlWrite() - Release the MDL.",FsRtlMdlWriteComplete(Pfo,&Offset,MdlChain));\r
- \r
+\r
/* Test the fast Io not possible flag */\r
FcbHeader->IsFastIoPossible = FastIoIsNotPossible;\r
FSRTL_TEST("FsRtlPrepareMdlWrite() - FastIo is not possible flag.",\r
!FsRtlPrepareMdlWrite(Pfo,&Offset,Length,0,&MdlChain,&IoStatus))\r
- \r
- if (Pfo) \r
+\r
+ if (Pfo)\r
{\r
ObDereferenceObject(Pfo);\r
Pfo = NULL;\r
ZwClose(Fh);\r
Fh = NULL;\r
}\r
- \r
+\r
/* ------------------------------------------------------------------------------------------\r
TESTING:\r
- \r
+\r
FsRtlMdlReadDev(IN PFILE_OBJECT FileObject,\r
IN PLARGE_INTEGER FileOffset,\r
IN ULONG Length,\r
FsRtlMdlReadCompleteDev(IN PFILE_OBJECT FileObject,\r
IN PMDL MemoryDescriptorList,\r
IN PDEVICE_OBJECT DeviceObject)\r
- \r
+\r
------------------------------------------------------------------------------------------\r
*/\r
\r
AllocationSize = &FcbHeader->AllocationSize;\r
ValidDataLength = &FcbHeader->ValidDataLength;\r
FileSize = &FcbHeader->FileSize;\r
- \r
+\r
\r
/* We are going to build a 100k file */\r
/* This will inititate caching and build some size */\r
Return = FsRltTest_WritefileZw(Fh,&Offset,Length, Buffer, &IoStatus);\r
FSRTL_TEST("FsRtlMdlReadDev() - Building 100k filesize.",(NT_SUCCESS(Return) && NT_SUCCESS(IoStatus.Status ) && IoStatus.Information == Length));\r
Return = TRUE;\r
- \r
+\r
\r
Offset.LowPart = 0x0;\r
Offset.HighPart = 0x0;\r
Return = FsRtlMdlReadDev(Pfo,&Offset,Length,0,&MdlChain,&IoStatus,NULL);\r
FSRTL_TEST("FsRtlMdlReadDev() - Testing 64k IO",(NT_SUCCESS(Return) && NT_SUCCESS(IoStatus.Status ) && IoStatus.Information == Length));\r
FSRTL_TEST("FsRtlMdlReadDev() - Releasing the MDL",FsRtlMdlReadCompleteDev(Pfo,MdlChain,NULL));\r
- \r
+\r
\r
/* Testing read past the end of the file */\r
Offset.QuadPart = FileSize->QuadPart - (5 * _1KB);\r
Return = FsRtlMdlReadDev(Pfo,&Offset,Length,0,&MdlChain,&IoStatus,NULL);\r
FSRTL_TEST("FsRtlMdlReadDev() - Testing reading past end of file but starting before EOF",(NT_SUCCESS(Return) && NT_SUCCESS(IoStatus.Status) && IoStatus.Information == (FileSize->QuadPart-Offset.QuadPart)));\r
FSRTL_TEST("FsRtlMdlReadDev() - Releasing the MDL",FsRtlMdlReadCompleteDev(Pfo,MdlChain,NULL));\r
- \r
+\r
Offset.QuadPart = FileSize->QuadPart + 1;\r
Length = 10 * _1KB;\r
MdlChain = NULL;\r
Return = FsRtlMdlReadDev(Pfo,&Offset,Length,0,&MdlChain,&IoStatus,NULL);\r
FSRTL_TEST("FsRtlMdlReadDev() - Testing reading past end of file but starting after EOF",(NT_SUCCESS(Return) && (IoStatus.Status == STATUS_END_OF_FILE) && IoStatus.Information == 0));\r
- \r
+\r
/* Testing FastIoIsNotPossible */\r
Offset.LowPart = 0x0;\r
Offset.HighPart = 0x0;\r
\r
Return = TRUE;\r
\r
- if (Pfo) \r
+ if (Pfo)\r
{\r
ObDereferenceObject(Pfo);\r
Pfo = NULL;\r
\r
/* ------------------------------------------------------------------------------------------\r
TESTING:\r
- \r
+\r
FsRtlMdlRead(IN PFILE_OBJECT FileObject,\r
IN PLARGE_INTEGER FileOffset,\r
IN ULONG Length,\r
\r
FsRtlMdlReadComplete(IN PFILE_OBJECT FileObject,\r
IN PMDL MemoryDescriptorList)\r
- \r
+\r
------------------------------------------------------------------------------------------\r
*/\r
\r
AllocationSize = &FcbHeader->AllocationSize;\r
ValidDataLength = &FcbHeader->ValidDataLength;\r
FileSize = &FcbHeader->FileSize;\r
- \r
+\r
\r
/* We are going to build a 100k file */\r
/* This will inititate caching and build some size */\r
Return = FsRltTest_WritefileZw(Fh,&Offset,Length, Buffer, &IoStatus);\r
FSRTL_TEST("FsRtlMdlRead() - Building 100k filesize.",(NT_SUCCESS(Return) && NT_SUCCESS(IoStatus.Status ) && IoStatus.Information == Length));\r
Return = TRUE;\r
- \r
+\r
\r
Offset.LowPart = 0x0;\r
Offset.HighPart = 0x0;\r
Return = FsRtlMdlRead(Pfo,&Offset,Length,0,&MdlChain,&IoStatus);\r
FSRTL_TEST("FsRtlMdlRead() - Testing 64k IO",(NT_SUCCESS(Return) && NT_SUCCESS(IoStatus.Status ) && IoStatus.Information == Length));\r
FSRTL_TEST("FsRtlMdlRead() - Releasing the MDL",FsRtlMdlReadComplete(Pfo,MdlChain));\r
- \r
+\r
\r
/* Testing read past the end of the file */\r
Offset.QuadPart = FileSize->QuadPart - (5 * _1KB);\r
Return = FsRtlMdlRead(Pfo,&Offset,Length,0,&MdlChain,&IoStatus);\r
FSRTL_TEST("FsRtlMdlRead() - Testing reading past end of file but starting before EOF",(NT_SUCCESS(Return) && NT_SUCCESS(IoStatus.Status) && IoStatus.Information == (FileSize->QuadPart-Offset.QuadPart)));\r
FSRTL_TEST("FsRtlMdlRead() - Releasing the MDL",FsRtlMdlReadComplete(Pfo,MdlChain));\r
- \r
+\r
Offset.QuadPart = FileSize->QuadPart + 1;\r
Length = 10 * _1KB;\r
MdlChain = NULL;\r
Return = FsRtlMdlRead(Pfo,&Offset,Length,0,&MdlChain,&IoStatus);\r
FSRTL_TEST("FsRtlMdlRead() - Testing reading past end of file but starting after EOF",(NT_SUCCESS(Return) && (IoStatus.Status == STATUS_END_OF_FILE) && IoStatus.Information == 0));\r
- \r
+\r
/* Testing FastIoIsNotPossible */\r
Offset.LowPart = 0x0;\r
Offset.HighPart = 0x0;\r
\r
Return = TRUE;\r
\r
- if (Pfo) \r
+ if (Pfo)\r
{\r
ObDereferenceObject(Pfo);\r
Pfo = NULL;\r
ZwClose(Fh);\r
Fh = NULL;\r
}\r
- \r
+\r
\r
\r
/* ------------------------------------------------------------------------------------------\r
TESTING:\r
- \r
+\r
FsRtlGetFileSize(IN PFILE_OBJECT FileObject,\r
IN OUT PLARGE_INTEGER FileSize)\r
- \r
+\r
------------------------------------------------------------------------------------------\r
*/\r
FsRtlTest_OpenTestFile(&Fh, &Pfo);\r
FSRTL_TEST("FsRtlGetFileSize() - Opening Test File.",((Pfo != NULL) && (Fh != NULL)));\r
- \r
+\r
FsRtlTest_OpenTestDirectory(&DirFh, &DirPfo);\r
FSRTL_TEST("FsRtlGetFileSize() - Opening Test Directory.",((DirPfo != NULL) && (DirFh != NULL)));\r
\r
Status = FsRtlGetFileSize(Pfo,&OldSize);\r
FSRTL_TEST("FsRtlGetFileSize() - Get the size of a real file",NT_SUCCESS(Status));\r
- \r
+\r
Status = FsRtlGetFileSize(DirPfo,&OldSize);\r
FSRTL_TEST("FsRtlGetFileSize() - Get the size of a directory file",(Status == STATUS_FILE_IS_A_DIRECTORY));\r
- \r
- \r
- /* The test if over. Do clean up */ \r
+\r
+\r
+ /* The test if over. Do clean up */\r
\r
Cleanup:\r
\r
- if (DirPfo) \r
+ if (DirPfo)\r
{\r
ObDereferenceObject(DirPfo);\r
DirPfo = NULL;\r
ZwClose(DirFh);\r
DirFh = NULL;\r
}\r
- if (Pfo) \r
+ if (Pfo)\r
{\r
ObDereferenceObject(Pfo);\r
Pfo = NULL;\r
ZwClose(Fh);\r
Fh = NULL;\r
}\r
- \r
+\r
if (Buffer != NULL) {\r
ExFreePool(Buffer);\r
Buffer = NULL;\r
void FsRtlTest_FillBuffer(LARGE_INTEGER Start, ULONG Length, PVOID Buffer) {\r
ULONG i = 0;\r
PULONGLONG Index = (PULONGLONG) Buffer;\r
- \r
+\r
for (i=0; i<Length/sizeof(ULONGLONG); i++) {\r
Index[i] = Start.QuadPart + i;\r
}\r
- \r
+\r
return;\r
}\r
\r
OBJECT_ATTRIBUTES oa;\r
IO_STATUS_BLOCK IoStatus;\r
NTSTATUS Return;\r
- \r
+\r
RtlInitUnicodeString(&FileName,L"\\??\\C:\\fsrtl.bin");\r
\r
InitializeObjectAttributes(\r
OBJECT_ATTRIBUTES oa;\r
IO_STATUS_BLOCK IoStatus;\r
NTSTATUS Return;\r
- \r
+\r
RtlInitUnicodeString(&FileName,L"\\??\\C:\\testdir01");\r
\r
InitializeObjectAttributes(\r
} else {\r
DbgPrint("FsRtl test OK.\n");\r
}\r
- \r
+\r
return STATUS_SUCCESS;\r
}\r
\r