Difference between revisions of "ChangeLog-0.3.11"

From ReactOS Wiki
Jump to: navigation, search
m (Win32™ Libraries)
(Kernel Mode Drivers)
Line 275: Line 275:
  
 
=== SYSAUDIO ===
 
=== SYSAUDIO ===
 +
* Fix several bugs in the mixer handling code [[Johannes Anderwald]]
 +
* Disable kmixer untill all issues are resolved [[Johannes Anderwald]]
 +
* Release file object of pin to prevent reference leak [[Johannes Anderwald]]
 +
* Fix creation of mixer pin [[Johannes Anderwald]]
 +
* Store dispatch context in FsContext2 [[Johannes Anderwald]]
 +
* Implement KSPROPERTY_SYSAUDIO_DEVICE_INTERFACE_NAME [[Johannes Anderwald]]
 +
* Refactor sysaudio pin creation [[Johannes Anderwald]]
 +
* Remove the hack of checking wether pin create request is passed. Since create items now work nicely, use a different function and handle pin creation requests seperately. [[Johannes Anderwald]]
  
 
=== TCPIP ===
 
=== TCPIP ===
Line 286: Line 294:
  
 
=== VIDEOPRT ===
 
=== VIDEOPRT ===
 +
 +
=== WDMAUD_KERNEL ===
 +
* Implement support for DRV_QUERYDEVICEINTERFACESIZE, DRV_QUERYDEVICEINTERFACE [[Johannes Anderwald]]
 +
* Set correct irp dispatch code [[Johannes Anderwald]]
 +
* Pointer / handle values should be printed with %p. [[Christoph Wittich]]
 +
* Add the sum / mixer node to the destination pin [[Johannes Anderwald]]
 +
* Only create MIXERVOLUME_DATA when there is an actual range [[Johannes Anderwald]]
 +
* Use unsigned members to calculate the range [[Johannes Anderwald]]
 +
* When enumerating controls, cControls *tells* the number of controls not *cConnections*. Fix a crash in XP sndvol32 [[Johannes Anderwald]]
 +
* Clear the entire struct, not just part of it [[Johannes Anderwald]]
 +
* WdmAudMixerCapabilities just provides the index of a device, not its handle. Fixes displaying of duplicate mixer name in sndvol32 [[Johannes Anderwald]]
 +
* Verify that a mixer line exists [[Johannes Anderwald]]
 +
* Use KsProbeStreamIrp in wdmaud to probe user buffers [[Johannes Anderwald]]
 +
* Remove a few hacks which were required to pass down irps to portcls [[Johannes Anderwald]]
 +
* Implement MIXER_GETLINEINFOF_COMPONENTTYPE for WdmAudGetLineInfo [[Johannes Anderwald]]
 +
* Implement MIXER_GETLINECONTROLSF_ONEBYID for WdmAudGetLineControls [[Johannes Anderwald]]
 +
* Clear MIXER_OBJECTF_HMIXER from Flags [[Johannes Anderwald]]
 +
* Fix a bug SetGetVolumeControlDetails which fixes retrieving current volume level (verified by sndvol32.exe from XP / mmsys.cpl ReactOS) [[Johannes Anderwald]]
 +
* Implement setting / getting volume level [[Johannes Anderwald]]
 +
* Implement Un*Muting of audio lines [[Johannes Anderwald]]
 +
* Rewrite Wave API to enumerate wave out / in devices at startup [[Johannes Anderwald]]
 +
* Enumerate controls for source and destination lines [[Johannes Anderwald]]
 +
* Several bugfixes for mixer source / destination line detection code [[Johannes Anderwald]]
 +
* Store destination line in LineList [[Johannes Anderwald]]
 +
* Implement WdmAudGetLineInfo for MIXER_GETLINEINFOF_LINEID [[Johannes Anderwald]]
 +
* Implement enumerating mixer source and destination lines [[Johannes Anderwald]]
 +
* Implement copying mixer capabilities [[Johannes Anderwald]]
 +
* Implement opening / closing of mixer devices [[Johannes Anderwald]]
 +
* Check if allocation succeeded [[Amine Khaldi]]
 +
* Implement retrieving devicename by looking up in the registry [[Johannes Anderwald]]
 +
* Set the stream state to run when opening the device [[Johannes Anderwald]]
 +
* Set the stream state to stop when closing the device [[Johannes Anderwald]]
 +
* Implement retrieving position [[Johannes Anderwald]]
  
 
== Static Libraries ==
 
== Static Libraries ==

Revision as of 00:30, 7 November 2009

This is the changelog for ReactOS™ version 0.3.11 (released *pending*), an open-source operating system designed to be binary executable - and device driver-compatible with Microsoft™ Windows NT™ and subsequent Microsoft operating systems such as Windows 2000™ and Windows XP™. ReactOS is written by the ReactOS development team, and the last previous version of ReactOS was version 0.3.10 (released 5th July, 2009).

General

Generic 0.3.11 Changes

Translations

Brazilian

Bulgarian

  • Bulgarian translation updates (CCTAHEB, bugs #4805, #4864)

Chinese

Czech

Dutch

German

Hungarian

Italian

  • Italian translations: Spider solitaire, explorer_new, ks.inf, usetup update (Gabriel Ilardi)

Japanese

  • Japanese translation updates (pcds90net, bugs #4081, #4795)
  • Japanese translation updates (Tomoya Kitagawa, bugs #4638, #4733)

Norwegian

Polish

  • Polish translation updates (Ichoroszi, bug #4651)

Romanian

Slovak

  • Slovak translation updates (Mario Kacmar, bugs #4652, #4828, #4854, #4900)

Spanish

  • Spanish translations: Spider solitaire, explorer_new, usetup update (Gabriel Ilardi)

Generic

  • Generic: Updated resources for explorer_new, added english ks.inf (Gabriel Ilardi)

Headers

DDK

NDK

PSDK

Host Tools

BUILDNO

LOG2LINES

RBUILD

RBUILD_HELPER

Core

Bootloader (FreeLoader)

Kernel and Executive (NTOSKRNL)

FSTUB

IO

  • Calling NtLoadDriver on an already loaded driver should fail with STATUS_IMAGE_ALREADY_LOADED. Fixes one test for kmtest driver tests and a bugcheck when loading drivers a second time. (Michael Martin)
  • Don't call ExFreePool for null pointers Johannes Anderwald
  • Don't touch the freed buffer in case of an error Amine Khaldi
  • Fix IoRegisterDeviceInterface, IoSetDeviceInterfaceState to handle reference strings Johannes Anderwald

KD

KDBG

KE

MM

  • NtAllocateVirtualMemory: Add check to make sure that BaseAddress + RegionSize is inside MemoryArea. For AllocationType of MEM_RESET add FIXME's and return STATUS_SUCCESS, without modifying attributes of region. Fixes 2 kernel32 virtual tests. (Michael Martin)
  • NtMapViewOfSection: When referencing the section object by handle, don't assume access mask of SECTION_MAP_READ. Access mask must be determined from page protection attributes passed in Protect parameter. Fixes 5 winetests for kernel32 virtual. (Michael Martin)
  • MiReserveAlignedSystemPtes: Add missing lock release Johannes Anderwald

OB

PS

SMSS

NT System Library (NTDLL)

Run Time Library (RTL)

Kernel Mode Drivers

Audio Stack

BDASUP

  • Implement DllInitialize, BdaPropertyGetPinControl, BdaPropertyNodeTypes, BdaPropertyPinTypes, BdaInitFilter, BdaCreateTopology, BdaCheckChanges, BdaCommitChanges, BdaCreateFilterFactory, BdaCreateFilterFactoryEx, BdaCreatePin, BdaMethodCreatePin, BdaFilterFactoryUpdateCacheData, BdaGetChangeState, BdaMethodCreateTopology, BdaMethodDeletePin, BdaPropertyTemplateConnections, BdaStartChanges, BdaUninitFilter, BdaValidateNodeProperty Johannes Anderwald
  • Define automation tables for Filter & Pin Johannes Anderwald
  • Plug in automation tables when creating a new filter factory / pin Johannes Anderwald
  • Add BDA filter context to object bag, so that it gets freed automatically later Johannes Anderwald

FASTFAT

I8042prt

KBDCLASS

KS

  • Fix a bug in KsCancelIo which accessed already freed memory Johannes Anderwald
  • Activate handling of requests of type KSPROPERTY_TYPE_BASICSUPPORT Johannes Anderwald
  • Return correct status code in the GUID_NULL handler Johannes Anderwald
  • Store KSPROPERTY_SET in Irp when using KsPropertyHandler Johannes Anderwald
  • Fix a bug in KsPinDataIntersection Johannes Anderwald
  • Fix a bug when canceling irps Johannes Anderwald
  • Fix a critical bug in the counted worker implementation Johannes Anderwald
  • Check if NodeId is out of bounds Johannes Anderwald
  • Return correct status code Johannes Anderwald
  • Retrieve the correct pin name Johannes Anderwald
  • Implement KSPROPERTY_PIN_NAME properly Johannes Anderwald
  • KsPinPropertyHandler does *NOT* set Status in the IRP Johannes Anderwald
  • The Category member is LPGUID not GUID Johannes Anderwald
  • Check if there is a category member Johannes Anderwald
  • Fix 'Assertion 'WorkItem->List.Flink == NULL' failed at ntoskrnl\ex\work.c' Johannes Anderwald
  • Fix a bug spotted by Timo Johannes Anderwald
  • Store Object Header in FsContext2 Johannes Anderwald
  • Fix allocation of create item entry in KsAllocateObjectCreateItem Johannes Anderwald
  • Fix de-referencing in Ks[De]ReferenceSoftwareBusObject & Ks[De]ReferenceBusObject Johannes Anderwald
  • Fake success in KsEnableEvent Johannes Anderwald
  • Check if the list empty in KspFreeEventList Johannes Anderwald
  • Handle GUID_NULL in KspPropertyHandler Johannes Anderwald
  • Return STATUS_MORE_ENTRIES if outputbuffer is too small Johannes Anderwald
  • Zero struct in KsRegisterWorker Johannes Anderwald
  • Fix calling property handler in IKsFilter_DispatchDeviceIoControl Found by Amine Khaldi
  • Implement handling of KSPROPERTY_TYPE_BASICSUPPORT Johannes Anderwald
  • Fix a few bugs in KsPinPropertyHandler & KsTopologyPropertyHandler Johannes Anderwald
  • Implement CBaseUnknown class functions in C! KJK::Hyperion
  • Store input buffer in Irp->AssociatedIrp.SystemBuffer Johannes Anderwald
  • Implement KsCopyObjectBagItems, KsCreateBusEnumObject, KsProbeStreamIrp, KsGetFirstChild, KsGetNextSibling, IKsFilter_fnAddProcessPin, IKsFilter_fnRemoveProcessPin, KsDispatchSpecificProperty, KsPropertyHandler, KsMergeAutomationTables, KsStreamPointerDelete, KsStreamPointerScheduleTimeout, KsStreamPointerCancelTimeout, KsPinGetFirstCloneStreamPointer, KsStreamPointerGetNextCloneKsPropertyHandlerWithAllocator, KsFastPropertyHandler, KsValidateConnectRequest, IKsPin_DispatchDeviceIoControl, IKsPin_Close, KsQueryInformationFile, KsStreamIo, KsMoveIrpsOnCancelableQueue, KsRegisterFilterWithNoKSPins, _KsEdit, KsCacheMedium, KsHandleSizedListQuery, KsAcquireResetValue, KsCompletePendingRequest, KsAllocateExtraData, KsFreeEventList, KsDisableEvent, KsAddEvent, KsDefaultAddEventHandler, KsPinAttachAndGate, KsPinAttachOrGate, KsPinGetAndGate, KsDeviceSetBusData, KsDeviceGetBusData, KsGetPinFromIrp, KsPinAcquireProcessingMutex, KsPinGetConnectedPinDeviceObject, KsPinGetConnectedFileObject, KsPinGetConnectedPinInterface, KsPinGetNextSiblingPin, KsPinGetParentFilter, KsPinRegisterFrameReturnCallback, KsPinRegisterHandshakeCallback, KsPinRegisterIrpCompletionCallback, KsPinRegisterPowerCallbacks, KsPinReleaseProcessingMutex, KsAcquireControl, KsReleaseControl, KsFilterAddTopologyConnections, KsFilterCreatePinFactory, KsFilterAcquireProcessingMutex, KsFilterReleaseProcessingMutex, KsFilterGetChildPinCount, KsFilterRegisterPowerCallbacks, KsGetFilterFromIrp, KsGetObjectFromFileObject, KsGetObjectFromFileObject, KsGetObjectTypeFromIrp, KsGetParent, KsGetObjectFromFileObject, KsGetObjectFromFileObject, KsGetObjectTypeFromIrp, KsGetParent, KoDriverInitialize, KoDeviceInitialize, KsReferenceBusObject, KsReferenceSoftwareBusObject, KsDereferenceSoftwareBusObject, KsDereferenceBusObject, KsGetFirstChild, KsGetImageNameAndResourceId, KsMapModuleName, KsAcquireDevice, KsReleaseDevice, KsTerminateDevice, KsQueryObjectAccessMask, KsQueryObjectCreateItem, KsQueueWorkItem, KsIncrementCountedWorker, KsDecrementCountedWorker, KsRegisterCountedWorker, KsUnregisterWorker, KsRegisterWorker, KsCancelIo, KsReleaseIrpOnCancelableQueue, KsRemoveIrpFromCancelableQueue, KsRemoveSpecificIrpFromCancelableQueue, KsAddIrpToCancelableQueue, KsCancelRoutine, KsValidateAllocatorCreateRequest, KsValidateClockCreateRequest, KsValidateTopologyNodeCreateRequest, KsAddObjectCreateItemToObjectHeader, KsGetDevice, KsDefaultDispatchPnp, KsDefaultDispatchPower, KsDefaultForwardIrp, KsReadFile, KsSetInformationFile, KsQueryInformationFile, KsCreateAllocator, KsCreateDefaultAllocatorEx, KsValidateAllocatorFramingEx, KsSetDevicePnpAndBaseObject, KsQueryDevicePnpObject, KsSetTargetState, KsSetTargetDeviceObject, KsSetPowerDispatch, KsFreeDeviceHeader, KsFreeObjectHeader, KsAllocateObjectCreateItem, KsFreeObjectCreateItem, KsFreeObjectCreateItemsByContext, KsCreateDefaultSecurity, KsCreateClock, KsCreateDefaultClock, partly implement KsAllocateDefaultClockEx, KsFreeDefaultClock, KsGetDefaultClockState, KsSetDefaultClockState, KsGetDefaultClockTime, KsSetDefaultClockTime, KsInitializeDevice, KsGetDeviceForDeviceObject, KsCreateFilterFactory, KsFilterFactorySetDeviceClassesState, KsFilterFactoryGetSymbolicLink, KsFilterFactoryAddCreateItem, KsLoadResource, KsDispatchQuerySecurity, KsDispatchSetSecurity, KsWriteFile, KsDefaultIoCompletion Johannes Anderwald
  • Implement attach of filter factories to the device header Johannes Anderwald
  • Filter dispatch is optional, handle it when creating new filters Johannes Anderwald
  • Fix allocation check by Amine Khaldi
  • Fix uninitialized return value when the list is empty Johannes Anderwald
  • Fix a horrible bug where the end of the list wasnt checked by the source list but the destination list by Amine Khaldi
  • Acquire Spinlock at dpc level Johannes Anderwald
  • Release cancel spinlock at correct level Johannes Anderwald
  • Fix a desastreous bug in KsRemoveIrpFromCancelableQueue Johannes Anderwald
  • Remove KsGetChildCreateParameter, it is not exported in NT 5.1 KS Johannes Anderwald
  • Start Implementing IKsPin interface Johannes Anderwald
  • Increment PinInstanceCount when a pin has succcessfully been created Johannes Anderwald
  • Initialize pin dispatch table Johannes Anderwald
  • Add create items for allocator, clock, node create requests Johannes Anderwald
  • Add create item for creation of pins and topology nodes Johannes Anderwald
  • Implement pin creation handler Johannes Anderwald
  • Copy Filter descriptor for each instantiated filter Johannes Anderwald
  • Create object bag for IKsFilter, IKsFilterFactory and IKsDevice Johannes Anderwald
  • Fix storing of device descriptor in KsInitializeDriver, KsAddDevice Johannes Anderwald
  • Remove DriverEntry as ks is kernel mode dll Johannes Anderwald
  • Fix unimplemented tags Johannes Anderwald
  • Use double in spec for functions taking longlong arguments Colin Finck
  • Use KSQUEUE_SPINLOCK_IRP_STORAGE macro for access the stored spin lock Johannes Anderwald
  • Remove old irp queue implementation Johannes Anderwald
  • Use KSSTRING instead of hardcoding object class Johannes Anderwald
  • Rewrite KSCREATE_ITEM handling to support clocks, nodes, allocators. Johannes Anderwald
  • Store create items in list instead of an array. Consequently, the code can be re-used for KSDEVICE_HEADER / KSOBJECT_HEADER functions. Johannes Anderwald
  • Implement by using KSBASIC_HEADER struct which must be positioned before its object specific (PKSFILTER, PKSFILTERFACTOR, PKSPIN) Johannes Anderwald
  • Remove a hack from KspCreateObjectType Johannes Anderwald
  • Return the correct device object in KsQueryDevicePnpObject Johannes Anderwald
  • Remove KspClose, KspRead, KspWrite, KspFlushBuffers, KspQuerySecurity, KspSetSecurity and all these IOCTL in KspDispatchIrp Johannes Anderwald
  • Rewrite KsDispatchIrp to handle IRP_MJ_CREATE & IRP_MJ_POWER, IRP_MJ_PNP for AV Stream minidrivers and forward IRP_MJ_SYSTEM_CONTROL requests to the registered pnp base object Johannes Anderwald
  • Unsupported IOCTLs are now completed with KsDispatchInvalidDeviceRequest (previously leaked) Johannes Anderwald
  • Implement registering of device interface for AVStream drivers Johannes Anderwald
  • Add KsFilterFactoryUpdateCacheData Johannes Anderwald
  • Fix a bug which was responsible for most audio-related crashes Gregor Schneider

NDIS

PCIIDE

PCNET

PORTCLS

SCSIPORT

SYSAUDIO

TCPIP

UNIATA

  • Synched the UniATA Inf to the internal support list. Now ROS can detect all supported SATA Controller even after 1st stage and properly shows them in the HW Wizard. (Daniel Reimer)

USB

  • Initialize DPC before connecting interrupt with IoConnectInterrupt in ehci_alloc, ohci_alloc and uhci_alloc. Probably fixes crashes on real hardware. (Michael Martin)

VIDEOPRT

WDMAUD_KERNEL

Static Libraries

CMLIB

  • CmpPrepareKey: Call CmpPrepareKey vice CmpPrepareIndexOfKeys for cell signature of CM_KEY_NODE_SIGNATURE. Fixes ASSERT in cminit.c that occurs on reboot after installing some applications. (Michael Martin)

IP

USETUP

Win32™ Personality

User mode subsystem server (CSRSS)

Kernel-mode subsystem server (Win32K)

  • experimental message handling implementation for ClickLock feature (Matthias Kupfer)
  • KeyboardThreadMain: Set RepeatRate to 1 vice 0. Fixes text input in OpenOffice Writer. (Michael Martin)

Services

AUDIOSRV

RPC Server

Eventlog

DHCP

Control panel applets

APPWIZ

DESK

MAIN

MMSYS

SYSDM

Win32™ Applications

Downloader

Explorer

Notepad

Paint

RApps

Servman

Taskmgr

Win32™ Libraries

ADVAPI32

CARDS

  • Added 11 new Backs for my bavarian cards dll. Way better than using 12 times the same (Daniel Reimer)

DSOUND

[DSOUND]

  • Implement IDirectSoundCaptureBuffer8::Stop, IDirectSoundCaptureBuffer8::Lock, IDirectSoundCaptureBuffer8::Unlock, IDirectSound8::GetCaps, IDirectSound8::Compact, IDirectSoundCaptureBuffer::GetCaps, IDirectSoundCaptureBuffer::GetCurrentPosition, IDirectSoundCaptureBuffer::GetFormat, IDirectSoundCaptureBuffer::GetStatus, IDirectSoundCaptureBuffer::Start, DirectSoundEnumerateA, DirectSoundEnumerateW, DirectSoundCaptureEnumerateA, DirectSoundCaptureEnumerateW, GetDeviceID
  • Implement changing the stream format for secondary buffers
  • Fix checking of flags found Ged Murphy
  • Register IDirectSound8, IDirectSoundCapture8 with COM
  • Verify if wrong guid is passed in IDirectSound8::Initialize
  • Check for invalid guids passed to IDirectSoundCapture::Initialize
  • Close pin handle when the capture buffer is released
  • Compute a compatible pin format when the format is not supported natively by the driver
  • Fix shadowing of global variable (Usurp)
  • Verify that directsound global info has already initialized in IDirectSound8::Initialize
  • DllRegisterServer / DllUnregisterServer are taken from Wine DSound implementation (John K. Hohm)

GDI32

GDIPLUS

IPHLPAPI

KERNEL32

KSUSER

MSAFD

MSI

  • Schedule a rename operation also for ERROR_USER_MAPPED_FILE. Prevents msi from aborting an install when attempting to overwrite font files. Open Office should now install successfully. (Michael Martin)

MSVCRT

NETSHELL

OPENGL32

SECUR32

SETUPAPI

SHELL32

SHLWAPI

SYSSETUP

USER32

  • DIALOG_CreateIndirect: Save the current focused window after sending WM_INITDIALOG as the current window with focus could have been set in the dialog's procedure. Fixes setting focus on Open and Close dialogs to the FileName edit control in OpenOffice. (Michael Martin)
  • GetDlgItem: Change to WINE's implementation as ours was incorrect. Remove function GetDlgItemEnumProc and struct GETDLGITEMINFO as they are no longer needed. Fixes drawing issues in Open and Save dialogs for OpenOffice. (Michael Martin)
  • Fix 2 user32 winstation test failures Giannis Adamopoulos


USERENV

- Set ProgramFiles, CommonProgramFiles environment variable Johannes Anderwald

WDMAUD.DRV

WS2_32_NEW

WINSPOOL

Regression tests

Versions / Official Changelogs / Community Changelogs
0.0.x Series 0.0.8 | 0.0.9 | 0.0.10 | 0.0.11 | 0.0.12 | 0.0.13 | 0.0.14 | 0.0.15 | 0.0.16 | 0.0.17 | 0.0.18 | 0.0.19 | 0.0.20 | 0.0.21
0.1.x Series 0.1.0 | 0.1.1 | 0.1.2 | 0.1.3 | 0.1.4 | 0.1.5
0.2.x Series 0.2.0 | 0.2.1 | 0.2.2 | 0.2.3 | 0.2.4 | 0.2.5 | 0.2.6 | 0.2.7 | 0.2.8 | 0.2.9
0.3.x Series 0.3.0 | 0.3.1 | 0.3.2 | 0.3.3 | 0.3.4 | 0.3.5 | 0.3.6 | 0.3.7 | 0.3.8 | 0.3.9 | 0.3.10 | 0.3.11 | 0.3.12 | 0.3.13 | 0.3.14 | 0.3.15 | 0.3.16 | 0.3.17
0.4.x Series 0.4.0 | 0.4.1 | 0.4.2 | 0.4.3 | 0.4.4 | 0.4.5 | 0.4.6 | 0.4.7 | 0.4.8 | 0.4.9 | 0.4.10 | 0.4.11 | 0.4.12 | 0.4.13 | 0.4.14