Arty can u look if this changes is right if not revert it. This changes was tested in fireforx at http://www.mirc.com/get.html and try d/l mirc. This patch do not make firefox bsod, instead it genrate a long crash log at serial debug.
svn path=/trunk/; revision=22106
So, we should get the right .inf filename in SP_DRVINFO_DETAIL_DATA.InfFileName, as it is modified if the file is copied to %SYSTEMROOT%/Inf
svn path=/trunk/; revision=22104
* Implement Per-Processor Lookaside List based allocation and de-allocation of the Object Create Information (object attributes capture) and of the object name. I counted over 4000 allocations for only 30 seconds of runtime, so this change greatly reduces pool fragmentation and increases speed. (Implementation is similar to the IRP lookaside list implementation, but inlined for speed).
* Fix some cases where we weren't freeing captured information properly. This patch should also decrease memory leaks/usage.
* Comment/formatting fixes.
svn path=/trunk/; revision=22100
* Remove superflous debug prints used a long time ago while debugging
* Set the CreatorUniqueProcess
* Align code to 80 chars
* Do a privilege check of OB_FLAG_PERMANENT is being used, and de-allocate the object if this failed.
* Send the PreviousMode to ObpAllocateObject so that it can honor it and set the OB_FLAG_KERNEL_MODE flag.
* Use OBJECT_TYPE accounting to increase TotalNumberOfObjects.
* Fail ObCreateObject in low-memory situations instead of ignoring it.
* Respect OBJECT_TYPE.TypeInfo.InvalidAttributes if an attempt is to create an object with invalid attributes is detected.
* Respect PagedPoolCharge and NonPagedPoolCharge parameters and save them in the OBJECT_CREATE_INFORMATION strucutre.
svn path=/trunk/; revision=22099
- Re-implement delayed object deletion by using an optimized Object Reaper based on OBJECT_HEADER->NextToFree. Thanks to Thomas for the algorithm.
- Refactor object deletion into two operations: Removal and de-allocation (this is needed for failure during allocation, which we don't do yet).
- BugFixes:
* After freeing an object header structure, also clear the pointer so we don't attempt it again.
* Clear the handle database if there is one
* Make sure the create info flag is set before deleting captured attributes.
* Use the allocation pool tag when de-allocating.
* Use OBJECT_TYPE accounting for tracking the numbef of objects.
* Remove the object from it's typelist if it has creator information.
* Call the security procedure to delete the security descriptor.
svn path=/trunk/; revision=22098
- Also remove RemainingPath and stop exposing it to public APIs. Move all ObInsertObject/ObOpen,ReferenceByName hacks to ObFindObject, and add a small one there. We basically trade 4 hacks for 1.
svn path=/trunk/; revision=22090