Amd64/misc 64bit fixes (#236)
[reactos.git] / drivers / network / ndis / ndis / misc.c
index dca3726..19755c5 100644 (file)
@@ -139,7 +139,7 @@ NDIS_POBJECT_TO_HANDLE ( PNDIS_HANDLE_OBJECT obj )
   return (NDIS_HANDLE)obj;
 }
 
-const WCHAR* NDIS_FILE_FOLDER = L"\\SystemRoot\\System32\\Drivers\\";
+static const WCHAR NDIS_FILE_FOLDER[] = L"\\SystemRoot\\System32\\Drivers\\";
 
 /*
  * @implemented
@@ -242,8 +242,8 @@ NdisOpenFile(
   *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 )
@@ -273,7 +273,7 @@ NdisOpenFile(
 
   InitializeObjectAttributes ( &ObjectAttributes,
     &FullFileName,
-    OBJ_CASE_INSENSITIVE,
+    OBJ_CASE_INSENSITIVE|OBJ_KERNEL_HANDLE,
     NULL,
     NULL );
 
@@ -285,14 +285,14 @@ NdisOpenFile(
     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;
   }
 
@@ -324,7 +324,7 @@ EXPORT
 NdisSystemProcessorCount(
     VOID)
 {
-       return (CCHAR)KeNumberProcessors;
+       return KeNumberProcessors;
 }