27 Nov 2005

35261

0

Newsletter 7

Welcome to Issue 7 of the ReactOS Weekly Newsletter, as persistant as a Jehovah's Witness. This week, I'll be taking a look at the NDK used by the ReactOS Developers, covering WINE 0.9.2, and detailing the latest SVN activity.

NDK: What it does, and why it's needed

"What is the NDK designed to do?", I hear you ask. Well, first off, a little bit of it's history. The NDK stands for Native Development Kit, and was the brainchild of Alex Ionescu, as a way of allowing Windows and ReactOS developers alike to have access to a wealth of undocumented kernel and native structures and function prototype.
The NDK provides a unified header set for development of:

  • User mode applications which use native functions (include windows.h and the user-mode NDK)
  • Native applications (include the user-mode NDK)
  • Kernel-mode drivers which use undocumented kernel functions (include DDK and/or IFS and kernel-mode NDK)

The Following should go into the NDK:

Kernel-Mode API Function Prototypes or Types which are undocumented in the DDK or IFS Native (RTL, DBG, PFX, NT/ZW) API Function Prototypes or Types which are undocumented in the DDK, IFS or Windows Headers.

The Following should not go into the NDK:

  • Documented information in the NDK unless it must be accessible from user-mode (which cannot include DDK or IFS)
  • Native ReactOS Specific information.
  • Private ReactOS functions or types.
  • User-Mode undocumented functions (like shell32, etc). However, if the function is inside NTDLL, you must add it to 'umfuncs.h.'.

How is the NDK licensed?

It is licensed under one of three Licenses, depending on the Situation:

  • GPL
  • LGPL
  • NDK

The GPL and LGPL can be used by any GPL/LGPL-compatible project, whichever is easier to use. The "NDK License" refers to the license used for the NDK when in use with a closed-course piece of software.
A fully detailed explanation of the NDK can be found here. Beta 1 of the NDK is already in trunk as this is being typed, with a public 1.0 release expected this week.

Eye on SVN: Enhancements to ReactOS This Week

Compilation:

  • Advapi32
  • Cmd
  • Gdiplus
  • Kernel32
  • Msconfig
  • Ntoskrnl
  • SMSS
  • Taskmgr
  • USetup
  • Win32k

Makefile:

  • Auto-detect MSYS
  • Check for GNU Make 3.80+, warn if 3.7x or lower found

Misc:

  • SinVerifier Added to Continuous Integration System (I'll be detailing that in Issue 8)
  • Wallpaper now stays after a reboot.

Regedit:

  • Favorites now appear in the favorites menu (though they are currently grayed out)
  • Enhancements to the contextual menu in the treeview
  • Implemented Export
  • Added a placeholder for Permissions
  • Support for adding Expandable string and multi string values
  • Implemented the ability to select existing favorites
  • Created dialog resources for adding favorites, removing favorites, and the find dialog
  • Partially implemented Find/Find Next

Plug-and-Play/DEVMGR:

  • Recognise PNP0000 Devices
  • Device Manufacturer and Location now displayed
  • Initial implementation of the hardware page
  • Simplify displaying the advanced device properties
  • Added General Device Information Page
  • Added Math Co=Processor PNP ID
  • Added other hardware IDs that don't need a driver

VBE:

  • We now detect Bad Graphics BIOSes. Some graphics cards report VBE 2.0 when the are VBE 1.2. This happens when the manufacturers have used the wrong version, and do not set the OemVendoerPtr. When that happens, it is VBE 1.2 on the Graphics Card

Vendor Drops

  • Avifil32 (WINE)
  • WINE 0.9.2
  • WMC

Implemented

DEVMGR:

  • DeviceAdvancedPropertiesA/W

MMDRV:

  • SoundGetData
  • SoundSetData
  • ThreadCallWaveDevice
  • WaveOpen
  • WaveThreadGetData
  • WaveThreadSetData
  • WaveThreadSetState
  • Partial implementation of WDMAUD.DRV

MSVCRT:

  • WGetMainArgs

NDIS:

  • IRP_MN_QUERY_DEVICE_RELATIONS

KERNEL32:

  • CreateActCtxA
  • FindActCtxSectionStringA

SETUPAPI:

  • SetupDiGetClassDevPropertySheetsW (Most)
  • SetupDiGetDeviceInstanceIdA
  • SetupDiGetDeviceInstanceIdW

Stubs Added:

  • SetupDiGetClassDevPropertySheetsA/W
  • SetupDiGetDeviceInstanceIdA/W
  • SetupDiLoadClassIcon
  • HalAllocateCrashDumpRegisters
  • WaveThread
  • Wow64DisableWow64FsRedirection
  • Wow64RevertWow64FsRedirection

Added to BootCD:

  • d3d8thk.dll
  • devmgr.dll
  • dplay.dll
  • dplayx.dll

WINE 0.9.2

WINE 0.9.2 has been released, and these are the fixes contained therein:

  • Winelib Explorer app (just a wrapper around winefile for now).
  • Debugger cleanups and improvements.
  • Many wininet fixes.
  • Better autogenerated API manpages.
  • A bunch of Korean translations.
  • Lots of bug fixes

What's up for Next Week?

Now, this is where you readers come in. Yes, even you Developers, too. I'd like a suggestion for a featured part of ReactOS next week to cover. It could be Plug-and-Play, USB, etc, anything in reason. Who knows, you could suggest something, and see your name mentioned in the next Newsletter ;-).
Until Next Week.. Happy Compiling!
Stuart "TwoTailedFox" Robbins
ReactOS Weekly Newsletter Editor

News Type: