#include <wdm.h>
#include <windef.h>
#include <ntddk.h>
#include <Ntifs.h>
struct FBDI {
ULONG NextEntryOffset;
ULONG FileIndex;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER LastWriteTime;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER EndOfFile;
LARGE_INTEGER AllocationSize;
ULONG FileAttributes;
ULONG FileNameLength;
ULONG EaSize;
CCHAR ShortNameLength;
WCHAR ShortName[12];
WCHAR FileName[1];
}*pbInfo, fbdi_size;
DRIVER_INITIALIZE DriverEntry;
DRIVER_UNLOAD Unload;
NTSTATUS status;
NTSTATUS DriverEntry(
__in struct _DRIVER_OBJECT *DriverObject,
__in PUNICODE_STRING RegistryPath
)
{
HANDLE hdir;
UNICODE_STRING DirPath = RTL_CONSTANT_STRING( L"\\??\\C:\\" );
OBJECT_ATTRIBUTES objattr;
IO_STATUS_BLOCK iostatusblock;
unsigned int uSize = sizeof(fbdi_size);
unsigned long bIsStarted = TRUE;
int x;
InitializeObjectAttributes(&objattr, &DirPath, OBJ_CASE_INSENSITIVE|OBJ_KERNEL_HANDLE, NULL,NULL);
DbgPrint("\n\ndriver loaded");
status = ZwCreateFile(
&hdir,
FILE_LIST_DIRECTORY,
&objattr,
&iostatusblock,
NULL,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_READ,
FILE_OPEN,
FILE_DIRECTORY_FILE,
NULL,
0
);
if (status != STATUS_SUCCESS)
{
DbgPrint("\nZwCreateFile error::%X", status);
ZwClose(hdir);
goto end;
}
else
{
DbgPrint("\nZwCreateFile success");
x = ZwQueryDirectoryFile(
hdir,
0,
NULL,
NULL,
&iostatusblock,
&pbInfo,
uSize,
FileDirectoryInformation,
FALSE,
NULL,
bIsStarted);
if (x != 0)
{
DbgPrint("\n\nZwQueryDirectoryFile error::%X", status);
ZwClose(hdir);
goto Break;
}
else
{
DbgPrint("\n\nZwQueryDirectoryFile success");
ZwClose(hdir);
goto Break;
}
}
Break:
end:
DriverObject->DriverUnload = Unload;
return STATUS_SUCCESS;
}
VOID Unload(
__in struct _DRIVER_OBJECT *DriverObject
)
{
DbgPrint("\ndriver unloaded");
}
Unable to compile the driver. Need to it print the files in C:/ directory to the Kdbg Console
can someone please tell me where i went wrong
EDIT:
Code added by o.p as a 'solution'.
1>errors in directory c:\simple_driver\driver\driver
1>c:\winddk\7600.16385.1\inc\api\winbase.h(318) : error C2061: syntax error : id
entifier 'CRITICAL_SECTION'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(318) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(319) : error C2061: syntax error : id
entifier 'PCRITICAL_SECTION'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(319) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(320) : error C2061: syntax error : id
entifier 'LPCRITICAL_SECTION'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(320) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(322) : error C2061: syntax error : id
entifier 'CRITICAL_SECTION_DEBUG'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(322) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(323) : error C2061: syntax error : id
entifier 'PCRITICAL_SECTION_DEBUG'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(323) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(324) : error C2061: syntax error : id
entifier 'LPCRITICAL_SECTION_DEBUG'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(324) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(332) : error C2061: syntax error : id
entifier 'INIT_ONCE'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(332) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(333) : error C2061: syntax error : id
entifier 'PINIT_ONCE'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(333) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(334) : error C2061: syntax error : id
entifier 'LPINIT_ONCE'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(334) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(363) : error C2146: syntax error : mi
ssing ')' before identifier 'InitOnce'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(363) : error C2061: syntax error : id
entifier 'InitOnce'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(363) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(363) : error C2059: syntax error : ',
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(366) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(372) : error C2146: syntax error : mi
ssing ')' before identifier 'InitOnce'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(372) : error C2061: syntax error : id
entifier 'InitOnce'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(372) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(373) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(379) : error C2146: syntax error : mi
ssing ')' before identifier 'InitOnce'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(379) : error C2061: syntax error : id
entifier 'InitOnce'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(379) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(379) : error C2059: syntax error : ',
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(383) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(389) : error C2146: syntax error : mi
ssing ')' before identifier 'lpInitOnce'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(389) : error C2061: syntax error : id
entifier 'lpInitOnce'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(389) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(389) : error C2059: syntax error : ',
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(393) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(399) : error C2146: syntax error : mi
ssing ')' before identifier 'lpInitOnce'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(399) : error C2061: syntax error : id
entifier 'lpInitOnce'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(399) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(399) : error C2059: syntax error : ',
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(402) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(410) : error C2061: syntax error : id
entifier 'SRWLOCK'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(410) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(410) : error C2059: syntax error : ',
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(418) : error C2146: syntax error : mi
ssing ')' before identifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(418) : error C2061: syntax error : id
entifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(418) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(419) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(425) : error C2146: syntax error : mi
ssing ')' before identifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(425) : error C2061: syntax error : id
entifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(425) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(426) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(432) : error C2146: syntax error : mi
ssing ')' before identifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(432) : error C2061: syntax error : id
entifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(432) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(433) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(439) : error C2146: syntax error : mi
ssing ')' before identifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(439) : error C2061: syntax error : id
entifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(439) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(440) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(446) : error C2146: syntax error : mi
ssing ')' before identifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(446) : error C2061: syntax error : id
entifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(446) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(447) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(453) : error C2146: syntax error : mi
ssing ')' before identifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(453) : error C2061: syntax error : id
entifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(453) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(454) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(460) : error C2146: syntax error : mi
ssing ')' before identifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(460) : error C2061: syntax error : id
entifier 'SRWLock'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(460) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(461) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(467) : error C2061: syntax error : id
entifier 'CONDITION_VARIABLE'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(467) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(467) : error C2059: syntax error : ',
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(473) : error C2146: syntax error : mi
ssing ')' before identifier 'ConditionVariable'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(473) : error C2061: syntax error : id
entifier 'ConditionVariable'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(473) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(474) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(480) : error C2146: syntax error : mi
ssing ')' before identifier 'ConditionVariable'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(480) : error C2061: syntax error : id
entifier 'ConditionVariable'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(480) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(481) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(487) : error C2146: syntax error : mi
ssing ')' before identifier 'ConditionVariable'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(487) : error C2061: syntax error : id
entifier 'ConditionVariable'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(487) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(488) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(494) : error C2146: syntax error : mi
ssing ')' before identifier 'ConditionVariable'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(494) : error C2061: syntax error : id
entifier 'ConditionVariable'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(494) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(494) : error C2059: syntax error : ',
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(497) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(503) : error C2146: syntax error : mi
ssing ')' before identifier 'ConditionVariable'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(503) : error C2061: syntax error : id
entifier 'ConditionVariable'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(503) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(503) : error C2059: syntax error : ',
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(507) : error C2059: syntax error : ')
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(554) : error C2061: syntax error : id
entifier 'LPLDT_ENTRY'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(554) : error C2059: syntax error : ';
'
1>c:\winddk\7600.16385.1\inc\api\winbase.h(2288) : error C2373: 'InterlockedIncr
ement' : redefinition; different type modifiers
1>c:\winddk\7600.16385.1\inc\api\winbase.h(2288) : error C1003: error count exce
eds 100; stopping compilation
Linking Executable - objchk_win7_x86\i386\driver.sys
1>link : error LNK1181: cannot open input file 'c:\simple_driver\driver\driver\o
bjchk_win7_x86\i386\code.obj'
BUILD: Finish time: Thu Jun 20 01:27:15 2013
BUILD: Done
3 files compiled - 4 Warnings - 102 Errors - 173 LPS
1 executable built - 1 Error