Rewritten FsRtlIsDbcsInExpression() using FsRtlIsNameInExpression() pattern.
This fixes all failing tests from kmtest.sys and make this function definitely tastier to MS fastfat.sys
svn path=/trunk/; revision=50021
- Fix 2 bugs in KsCreateBusEnumObject. It didnt store the allocated device extension and it didnt store the PnpDeviceObject when it was provided by the caller
- Implement KsGetBusEnumIdentifier, KsGetBusEnumPnpDeviceObject
svn path=/branches/audio-bringup/; revision=50012
- Implement a timeout handler, which detects whether the audio thread has hung. The code has not yet been activated
- Remove unused members
svn path=/branches/audio-bringup/; revision=50001
- Time has come to get rid of a slightly modified implementation of WINE's heap, which is a hack based on Windows 95's heap implementation, itself a hack of DOS memory management. It supported 3 out of the 18 possible NT Heap Flags, did not support custom allocation/deallocation routines, and was about 50-80x slower with fragmentation rates up to 500x higher when compared to NT's LFH (WINE is lucky because the advanced NT Heap features are used in kernel-mode usually, not in user-mode, and they are crossing their fingers for this being the same). Several high-end SQL/Database applications would significantly benefit from custom heap features provided by NT. Not to say about removing crappy support for a custom Commit routine and crappy support for User-defined flags and the User-defined value.
- So, the glorious moment for a new heap manager, which is (to remind you) a totally new heap manager, resembling real NT heap manager, based on data structures similar to Windows 2003 and Vista+'s heap structures, supporting advanced heap flags (e.g. useful for debugging), having substantially lower fragmentation rates (and thus speed and reliability), having native support for user-defined flags and user-defined values, also native support for a custom commit routine, which is very important for trunk's win32 subsystem. It also reserves, commits, decommits and frees memory on the fly, unlike existing heap manager which prefers to reserve and commit as much as possible, and doesn't decommit when it's no longer necessary. Not to say about support for per process heaps, with a proper lock, and a further support for a special so-called debug heap allocator (to be implemented in heapdbg.c) which will be useful for finding heap corruptions.
Yeah, I'm not a fun person :D
svn path=/trunk/; revision=50000
- Implement WdmAudResetStreamByMMixer, StopStreamingInSoundThread
- WIDM_RESET / WODM_RESET are now implemented
- Skipping now audio bytes (i.e. jumping to different audio position) now properly works and no longer causes a hang under certain conditions
svn path=/branches/audio-bringup/; revision=49997
- Respect channel count which defines if the control acts uniform or per channel
- Fix bug in MMixerSetGetMuxControlDetails
svn path=/branches/audio-bringup/; revision=49993
- Implement MixerEvent callback in wdmaud.drv
- Comment out assert which is hit in VmWare
- Implement full support mux controls
svn path=/branches/audio-bringup/; revision=49990
- Adam Kachwalla: Fix inconsistent formatting.
- Me: to anyone who's gonna try syncing the code with Wine's regedit: Have fun!
See issue #5716 for more details.
svn path=/trunk/; revision=49980
- Implement registering source / destination lines + controls of alternative mixers
- Implement support function for retrieving mixer by name
svn path=/branches/audio-bringup/; revision=49970
- Fix error message when mmixer library has failed to initialize
- Remove device handle from MIXER_INFO as a mixer can span over more than one device (i.e. mixer, wave)
- Add device handle to mixer control struct
- Store mixer controls in list than in array. Will later be used to add hacks (i.e wave line must have volume controls etc)
- Add reserved member to topology pin struct and mark used pins as reserved. It is then used to add alternative mixers destination lines
svn path=/branches/audio-bringup/; revision=49967
- Implement support for retrieving mux mixer controls
- Implement support for on/off controls
- Store logical pins for nodes connecting to another nodes. Currently not yet used
svn path=/branches/audio-bringup/; revision=49965
- Properly determine the component type and target type of source lines
- Correctly set dwDestination / target type / component member for source lines
svn path=/branches/audio-bringup/; revision=49955
- Rafal Harabien: Add support for DELETE key to processes and applications list in taskmgr.
See issue #5646 for more details.
svn path=/trunk/; revision=49954
- Fix line ids of source lines
- Fix calculating line id of source lines
- MS sndvol32 is still crashing in user32
svn path=/branches/audio-bringup/; revision=49951
- Remove the old send message API and use NtUserMessageCall.
- Send messages do not pass the Ansi bit. This was evident during the hook changes. User32 knows the caller is Ansi and with a Unicode window user32 can make the apropate switch. Win32k on the other hand, assumes, based on the Unicode window the caller is Unicode. Hook tests enabled in send message, forces the call to win32k, and the Ansi product is Unicode data. Using NtUserMessageCall this bit can be passed forward to allow win32k to make the correct switch going to callback.
svn path=/trunk/; revision=49950
- More fixes for mmixer library
- Store destination lines sharing the same mixer object in the same object
- Fix generating destination lines id / soure lines
- Add mux node for input mixers
- Disable code which checked if the topology node has already been reserved for an another line. Tests in WinXP concluded that ms does not do this at all, though documentation claims it
- Add source line to the correct destination line
- Fix a memory leak
- Fix tons of bugs in MMixerGetLineInfo
svn path=/branches/audio-bringup/; revision=49949
- Fail attempts to connect or disconnect a directory or device.
- Fail attempts to connect or disconnect a pipe by the client.
svn path=/trunk/; revision=49948