return (NDIS_HANDLE)obj;
}
-const WCHAR* NDIS_FILE_FOLDER = L"\\SystemRoot\\System32\\Drivers\\";
+static const WCHAR NDIS_FILE_FOLDER[] = L"\\SystemRoot\\System32\\Drivers\\";
/*
* @implemented
*Status = NDIS_STATUS_SUCCESS;
FullFileName.Buffer = NULL;
- FullFileName.Length = sizeof(NDIS_FILE_FOLDER);
- FullFileName.MaximumLength = FileName->MaximumLength + sizeof(NDIS_FILE_FOLDER);
+ FullFileName.Length = sizeof(NDIS_FILE_FOLDER) - sizeof(UNICODE_NULL);
+ FullFileName.MaximumLength = FileName->MaximumLength + FullFileName.Length;
FullFileName.Buffer = ExAllocatePool ( NonPagedPool, FullFileName.MaximumLength );
if ( !FullFileName.Buffer )
InitializeObjectAttributes ( &ObjectAttributes,
&FullFileName,
- OBJ_CASE_INSENSITIVE,
+ OBJ_CASE_INSENSITIVE|OBJ_KERNEL_HANDLE,
NULL,
NULL );
NULL, // PLARGE_INTEGER AllocationSize
0, // ULONG FileAttributes
FILE_SHARE_READ, // ULONG ShareAccess
- FILE_CREATE, // ULONG CreateDisposition
+ FILE_OPEN, // ULONG CreateDisposition
FILE_SYNCHRONOUS_IO_NONALERT, // ULONG CreateOptions
0, // PVOID EaBuffer
0 ); // ULONG EaLength
if ( !NT_SUCCESS(*Status) )
{
- NDIS_DbgPrint(MIN_TRACE, ("ZwCreateFile failed (%x)\n", *Status));
+ NDIS_DbgPrint(MIN_TRACE, ("ZwCreateFile failed (%x) Name %wZ\n", *Status, FileName));
*Status = NDIS_STATUS_FAILURE;
}
NdisSystemProcessorCount(
VOID)
{
- return (CCHAR)KeNumberProcessors;
+ return KeNumberProcessors;
}