Driver Problems? Questions? Issues?
Put OSR's experience to work for you! Contact us for assistance with:
  • Creating the right design for your requirements
  • Reviewing your existing driver code
  • Analyzing driver reliability/performance issues
  • Custom training mixed with consulting and focused directly on your specific areas of interest/concern.
Check us out. OSR, the Windows driver experts.

OSR Seminars


Go Back   OSR Online Lists > ntdev
Welcome, Guest
You must login to post to this list
  Message 1 of 1  
09 Jul 18 15:04
Jeremy Hurren
xxxxxx@lordjeb.com
Join Date: 04 Oct 2013
Posts To This List: 8
Re: RE: RE: RE: Re: [BULK] Re: Modern C++ Features in Kernel Mode Drivers

To me this is one of the beauties of the STL code. You still have access to the lock itself, and if you need to acquire and release it multiple times, you are free to do so without any extra work. But in the case that is most likely, where you acquire and release once, the lock_guard protects you from ever forgetting to do the right thing. It helps to protect you from your own mistakes most of the time, and still gives you the flexibility to step outside that model when you need to do something more complex. I think the maxim of "make it easy to do the right thing and hard to do the wrong thing" can really help code become more reliable and easier to maintain. On 7/9/2018 10:10 AM, xxxxx@garlic.com wrote: > Yeah, it is exactly like auto ptr in previous version of C++. You will have to specifically ask to get a reference, IIRc. > > -pro > >> On Jul 9, 2018, at 9:07 AM, xxxxx@hotmail.com <xxxxx@lists.osr.com> wrote: >> >>> But with judicious appropriate comments, all should be well, and your chances >>> of leaving the function's scope without releasing the lock are zero. >> True, but consider the scenario when you may have to release the lock and subsequently re-acquire it >> in some cases. Apparently, you must be able to find a workaround by messing around with scopes and loops, but imagine how ugly it is going to look. As long as you to things in C-like fashion and treat a spinlock as a variable, rather than an object, you task is just straightforward <...excess quoted lines suppressed...>
Posting Rules  
You may not post new threads
You may not post replies
You may not post attachments
You must login to OSR Online AND be a member of the ntdev list to be able to post.

All times are GMT -5. The time now is 19:25.


Copyright ©2015, OSR Open Systems Resources, Inc.
Based on vBulletin Copyright ©2000 - 2005, Jelsoft Enterprises Ltd.
Modified under license