<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Software Generalist</title>
	<atom:link href="http://www.softwaregeneralist.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.softwaregeneralist.com</link>
	<description>Connecting Software with Engineering, Science, Philosophy and Religion</description>
	<pubDate>Sat, 21 Aug 2010 01:11:43 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Reading Notebook: 03-August-10</title>
		<link>http://www.softwaregeneralist.com/2010/08/10/reading-notebook-03-august-10/</link>
		<comments>http://www.softwaregeneralist.com/2010/08/10/reading-notebook-03-august-10/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 17:04:53 +0000</pubDate>
		<dc:creator>Dmitry Vostokov</dc:creator>
		
		<category><![CDATA[Notes on Windows Internals]]></category>

		<category><![CDATA[Reading Notebook]]></category>

		<guid isPermaLink="false">http://www.softwaregeneralist.com/?p=115</guid>
		<description><![CDATA[Comments in italics are mine and express my own views, thoughts and opinions
Windows Internals by M. Russinovich, D. Solomon and A. Ionescu:
Scatter/gather (p. 566) - you can find examples of scatter/gather I/O residues left on a thread raw stack in Hardware Activity pattern and corresponding case study: 
http://www.dumpanalysis.org/blog/index.php/2010/05/08/crash-dump-analysis-patterns-part-98/ 
and 
http://www.dumpanalysis.org/blog/index.php/2010/06/07/irp-distribution-anomaly-inconsistent-dump-execution-residue-hardware-activity-coincidental-symbolic-information-not-my-version-virtualized-system-pattern-cooperation/
IRP (pp. 566 - 567) - here [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><em>Comments in italics are mine and express my own views, thoughts and opinions</em></p>
<p style="text-align: left;"><strong><span>Windows Internals by M. <span>Russinovich</span>, D. Solomon and A. <span>Ionescu</span>:</span></strong></p>
<p style="text-align: left;">Scatter/gather (p. 566) - <em>you can find examples of scatter/gather I/O residues left on a thread raw stack in Hardware Activity pattern and corresponding case study: </em></p>
<p style="text-align: left;"><a href="http://www.dumpanalysis.org/blog/index.php/2010/05/08/crash-dump-analysis-patterns-part-98/"><em>http://www.dumpanalysis.org/blog/index.php/2010/05/08/crash-dump-analysis-patterns-part-98/</em></a><em> </em></p>
<p style="text-align: left;"><em>and </em></p>
<p style="text-align: left;"><a href="http://www.dumpanalysis.org/blog/index.php/2010/06/07/irp-distribution-anomaly-inconsistent-dump-execution-residue-hardware-activity-coincidental-symbolic-information-not-my-version-virtualized-system-pattern-cooperation/"><em>http://www.dumpanalysis.org/blog/index.php/2010/06/07/irp-distribution-anomaly-inconsistent-dump-execution-residue-hardware-activity-coincidental-symbolic-information-not-my-version-virtualized-system-pattern-cooperation/</em></a></p>
<p style="text-align: left;">IRP (pp. 566 - 567) - <em>here is an expanded IRP structure from x64 W2K8:</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>0: kd&gt; dt -r1 _IRP<br />
ntdll!_IRP<br />
   +0x000 Type             : Int2B<br />
   +0x002 Size             : Uint2B<br />
   +0x008 MdlAddress       : Ptr64 _MDL<br />
      +0x000 Next             : Ptr64 _MDL<br />
      +0x008 Size             : Int2B<br />
      +0x00a MdlFlags         : Int2B<br />
      +0x010 Process          : Ptr64 _EPROCESS<br />
      +0x018 MappedSystemVa   : Ptr64 Void<br />
      +0x020 StartVa          : Ptr64 Void<br />
      +0x028 ByteCount        : Uint4B<br />
      +0x02c ByteOffset       : Uint4B<br />
   +0x010 Flags            : Uint4B<br />
   +0x018 AssociatedIrp    : &lt;unnamed-tag&gt;<br />
      +0x000 MasterIrp        : Ptr64 _IRP<br />
      +0x000 IrpCount         : Int4B<br />
      +0x000 SystemBuffer     : Ptr64 Void<br />
   +0x020 ThreadListEntry  : _LIST_ENTRY<br />
      +0x000 Flink            : Ptr64 _LIST_ENTRY<br />
      +0x008 Blink            : Ptr64 _LIST_ENTRY<br />
   +0x030 IoStatus         : _IO_STATUS_BLOCK<br />
      +0x000 Status           : Int4B<br />
      +0x000 Pointer          : Ptr64 Void<br />
      +0x008 Information      : Uint8B<br />
   +0x040 RequestorMode    : Char<br />
   +0x041 PendingReturned  : UChar<br />
   +0x042 StackCount       : Char<br />
   +0x043 CurrentLocation  : Char<br />
   +0x044 Cancel           : UChar<br />
   +0x045 CancelIrql       : UChar<br />
   +0x046 ApcEnvironment   : Char<br />
   +0x047 AllocationFlags  : UChar<br />
   +0x048 UserIosb         : Ptr64 _IO_STATUS_BLOCK<br />
      +0x000 Status           : Int4B<br />
      +0x000 Pointer          : Ptr64 Void<br />
      +0x008 Information      : Uint8B<br />
   +0x050 UserEvent        : Ptr64 _KEVENT<br />
      +0x000 Header           : _DISPATCHER_HEADER<br />
   +0x058 Overlay          : &lt;unnamed-tag&gt;<br />
      +0x000 AsynchronousParameters : &lt;unnamed-tag&gt;<br />
      +0x000 AllocationSize   : _LARGE_INTEGER<br />
   +0x068 CancelRoutine    : Ptr64     void<br />
   +0x070 UserBuffer       : Ptr64 Void<br />
   +0x078 Tail             : &lt;unnamed-tag&gt;<br />
      +0x000 Overlay          : &lt;unnamed-tag&gt;<br />
      +0x000 Apc              : _KAPC<br />
      +0x000 CompletionKey    : Ptr64 Void</code></span></p>
<p style="text-align: left;">IRP stack locations (pp. 568 - 569) - <em>here is a corresponding structure from x64 W2K8:</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>0: kd&gt; dt _IO_STACK_LOCATION<br />
ntdll!_IO_STACK_LOCATION<br />
   +0x000 MajorFunction    : UChar<br />
   +0x001 MinorFunction    : UChar<br />
   +0x002 Flags            : UChar<br />
   +0x003 Control          : UChar<br />
   +0x008 Parameters       : &lt;unnamed-tag&gt;<br />
   +0x028 DeviceObject     : Ptr64 _DEVICE_OBJECT<br />
   +0x030 FileObject       : Ptr64 _FILE_OBJECT<br />
   +0x038 CompletionRoutine : Ptr64     long<br />
   +0x040 Context          : Ptr64 Void </code></span></p>
<p style="text-align: left;">Buffered I/O (p. 570) - <em>this part of IRP references a buffer (user input data is copied there and device output is copied there):</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   +0x018 AssociatedIrp    : &lt;unnamed-tag&gt;<br />
      +0x000 MasterIrp        : Ptr64 _IRP<br />
      +0x000 IrpCount         : Int4B<br />
<span style="color: blue;">      +0&#215;000 SystemBuffer     : Ptr64 Void</span></code></span></p>
<p style="text-align: left;"><em>These parts of I/O stack location structure handle buffer lengths:</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>      +0x000 DeviceIoControl  : &lt;unnamed-tag&gt;<br />
<span style="color: blue;">         +0&#215;000 OutputBufferLength : Uint4B<br />
         +0&#215;008 InputBufferLength : Uint4B</span><br />
         +0&#215;010 IoControlCode    : Uint4B<br />
         +0&#215;018 Type3InputBuffer : Ptr64 Void</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>      +0x000 Read             : &lt;unnamed-tag&gt;<br />
<span style="color: blue;">         +0&#215;000 Length           : Uint4B</span><br />
         +0&#215;008 Key              : Uint4B<br />
         +0&#215;010 ByteOffset       : _LARGE_INTEGER</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>      +0x000 Write            : &lt;unnamed-tag&gt;<br />
<span style="color: blue;">         +0&#215;000 Length           : Uint4B</span><br />
         +0&#215;008 Key              : Uint4B<br />
         +0&#215;010 ByteOffset       : _LARGE_INTEGER</code></span></p>
<p style="text-align: left;">Direct I/O (p. 570) - <em>these parts of IRP handle IOCTL input data (SystemBuffer, via buffering) and IOCTL output/Read/Write data (MdlAddress): </em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   +0x008 MdlAddress       : Ptr64 _MDL<br />
      +0x000 Next             : Ptr64 _MDL<br />
      +0x008 Size             : Int2B<br />
      +0x00a MdlFlags         : Int2B<br />
      +0x010 Process          : Ptr64 _EPROCESS<br />
      +0x018 MappedSystemVa   : Ptr64 Void<br />
      +0x020 StartVa          : Ptr64 Void<br />
      +0x028 ByteCount        : Uint4B<br />
      +0x02c ByteOffset       : Uint4B</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   +0x018 AssociatedIrp    : &lt;unnamed-tag&gt;<br />
      +0x000 MasterIrp        : Ptr64 _IRP<br />
      +0x000 IrpCount         : Int4B<br />
      +0x000 SystemBuffer     : Ptr64 Void</code></span></p>
<p style="text-align: left;">Neither I/O (p. 571) - <em>these parts handle input data (IO_STACK_LOCATION.Parameters.DeviceIoControl.Type3InputBuffer) and output data (IRP.UserBuffer):</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>      +0x000 DeviceIoControl  : &lt;unnamed-tag&gt;<br />
         +0x000 OutputBufferLength : Uint4B<br />
         +0x008 InputBufferLength : Uint4B<br />
         +0x010 IoControlCode    : Uint4B<br />
<span style="color: blue;">         +0&#215;018 Type3InputBuffer : Ptr64 Void</span></code></span></p>
<p style="text-align: left;"><span style="font-family: Courier New; font-size: xx-small;">   +0&#215;070 UserBuffer       : Ptr64 Void</span></p>
<p style="text-align: left;">I/O status block and kernel APC (pp. 575 - 577) - <em>this is a part of IRP  structure:</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   +0x030 IoStatus         : _IO_STATUS_BLOCK<br />
      +0x000 Status           : Int4B<br />
      +0x000 Pointer          : Ptr64 Void<br />
      +0x008 Information      : Uint8B</code></span></p>
<p style="text-align: left;">KeSynchronizeExecution (p. 578) - <em>here is a stack trace fragment showing it in action:</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>[...]<br />
b9ada518 8088d661 SCSIPORT!SpStartIoSynchronized+0x14f<br />
<span style="color: blue;">b9ada550 80a60147 nt!KeSynchronizeExecution+0&#215;21</span><br />
b9ada57c f72523a6 hal!HalBuildScatterGatherList+0&#215;1c7<br />
b9ada5c8 8081cfa2 SCSIPORT!ScsiPortStartIo+0&#215;36a<br />
b9ada5ec f725262f nt!IoStartPacket+0&#215;82<br />
b9ada620 f7252146 SCSIPORT!ScsiPortFdoDispatch+0&#215;270<br />
b9ada63c f7251dc3 SCSIPORT!SpDispatchRequest+0&#215;68<br />
b9ada658 f7251299 SCSIPORT!ScsiPortPdoScsi+0&#215;129<br />
b9ada66c 8081df85 SCSIPORT!ScsiPortGlobalDispatch+0&#215;1d<br />
b9ada680 f723e607 nt!IofCallDriver+0&#215;45<br />
b9ada690 f723e2b2 CLASSPNP!SubmitTransferPacket+0xbb<br />
b9ada6c4 f723e533 CLASSPNP!ServiceTransferRequest+0&#215;1e4<br />
b9ada6e8 8081df85 CLASSPNP!ClassReadWrite+0&#215;159<br />
b9ada6fc f74c80cf nt!IofCallDriver+0&#215;45<br />
b9ada70c 8081df85 PartMgr!PmReadWrite+0&#215;95<br />
b9ada720 f7317053 nt!IofCallDriver+0&#215;45<br />
b9ada73c 8081df85 ftdisk!FtDiskReadWrite+0&#215;1a9<br />
b9ada750 f72bf8bc nt!IofCallDriver+0&#215;45<br />
b9ada768 8081df85 volsnap!VolSnapRead+0&#215;52<br />
b9ada77c f7163a62 nt!IofCallDriver+0&#215;45<br />
b9ada788 f71638d9 Ntfs!NtfsSingleAsync+0&#215;91<br />
b9ada960 f7164156 Ntfs!NtfsNonCachedIo+0&#215;2db<br />
b9adaa4c f7164079 Ntfs!NtfsCommonRead+0xaf5<br />
b9adabf8 8081df85 Ntfs!NtfsFsdRead+0&#215;113<br />
b9adac0c f721cc45 nt!IofCallDriver+0&#215;45<br />
b9adac34 8081df85 fltmgr!FltpDispatch+0&#215;6f<br />
b9adac48 bafd5373 nt!IofCallDriver+0&#215;45<br />
[&#8230;]</code></span></p>
<p style="text-align: left;">IRP and layered drivers (pp. 578 - 586) <em>- here&#8217;s a UML-style diagram (#3) for IRP flow: </em></p>
<p style="text-align: left;"><a href="http://www.dumpanalysis.org/blog/index.php/2006/10/08/uml-and-device-drivers/"><em>http://www.dumpanalysis.org/blog/index.php/2006/10/08/uml-and-device-drivers/</em></a><em> </em></p>
<p style="text-align: left;">Associated IRP (pp. 585 - 586) - <em>this is a part of IRP structure:</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   +0x018 AssociatedIrp    : &lt;unnamed-tag&gt;<br />
      +0x000 MasterIrp        : Ptr64 _IRP</code></span></p>
<p style="text-align: left;">File object vs. thread IRP association (p. 587)</p>
<p style="text-align: left;">Thread Termination and pending IRP (pp. 589 - 590) - <em>this pattern uses I/O cancellation as an example: </em><em></em></p>
<p style="text-align: left;"><a href="http://www.dumpanalysis.org/blog/index.php/2007/12/14/crash-dump-analysis-patterns-part-42a/"><em>http://www.dumpanalysis.org/blog/index.php/2007/12/14/crash-dump-analysis-patterns-part-42a/</em></a><em> </em></p>
<p style="text-align: left;">- Dmitry Vostokov @ <a href="http://www.softwaregeneralist.com/">SoftwareGeneralist.com</a> -</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaregeneralist.com/2010/08/10/reading-notebook-03-august-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reading Notebook: 19-July-10</title>
		<link>http://www.softwaregeneralist.com/2010/07/22/reading-notebook-19-july-10/</link>
		<comments>http://www.softwaregeneralist.com/2010/07/22/reading-notebook-19-july-10/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 16:23:13 +0000</pubDate>
		<dc:creator>Dmitry Vostokov</dc:creator>
		
		<category><![CDATA[Notes on Windows Internals]]></category>

		<category><![CDATA[Reading Notebook]]></category>

		<guid isPermaLink="false">http://www.softwaregeneralist.com/?p=114</guid>
		<description><![CDATA[Comments in italics are mine and express my own views, thoughts and opinions
Windows Internals by M. Russinovich, D. Solomon and A. Ionescu:
Viewing the loaded driver list (pp. 546 - 547) - if we don&#8217;t see company information in lmv command output we can examine raw driver data like in this pattern: http://www.dumpanalysis.org/blog/index.php/2007/08/16/crash-dump-analysis-patterns-part-22/
DriverEntry (p. 548) - consider this [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><em>Comments in italics are mine and express my own views, thoughts and opinions</em></p>
<p style="text-align: left;"><strong><span>Windows Internals by M. <span>Russinovich</span>, D. Solomon and A. <span>Ionescu</span>:</span></strong></p>
<p style="text-align: left;">Viewing the loaded driver list (pp. 546 - 547) - <em>if we don&#8217;t see company information in <strong>lmv</strong> command output we can examine raw driver data like in this pattern: </em><a href="http://www.dumpanalysis.org/blog/index.php/2007/08/16/crash-dump-analysis-patterns-part-22/"><em>http://www.dumpanalysis.org/blog/index.php/2007/08/16/crash-dump-analysis-patterns-part-22/</em></a></p>
<p style="text-align: left;">DriverEntry (p. 548) - <em>consider this as similar to <strong>main</strong> (console) or <strong>WinMain</strong> (Win32). For example, if you are writing a Windows service you have to register certain functions with SCM.</em></p>
<p style="text-align: left;">Dispatch routines (p. 548) - <em>if you know C++ consider them as class functions for a device object where DeviceObject is a <strong>this</strong> parameter (C++ class function implementation in C where an implicit <strong>this</strong> becomes the first function argument):</em></p>
<p style="text-align: left;"><em>NTSTATUS (*PDRIVER_DISPATCH) (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);<br />
</em></p>
<p style="text-align: left;"><em>and a driver object can be seen as a container for a virtual function table (vtable) for a device object (purely from implementation perspective): devObj-&gt;DriverObject-&gt;MajorFunction[IRP_MJ_XXX] </em></p>
<p style="text-align: left;">Relationship between device and driver objects (pp. 553 - 554) - <em>long time ago when I was preparing a presentation about Windows drivers for escalation engineers I created some UML diagrams you can see in the following blog post: </em><a href="http://www.dumpanalysis.org/blog/index.php/2006/10/08/uml-and-device-drivers/"><em>http://www.dumpanalysis.org/blog/index.php/2006/10/08/uml-and-device-drivers/</em></a><em> </em></p>
<p style="text-align: left;">AttachedDevice vs. AttachedTo (p.554)</p>
<p style="text-align: left;">File object structure and extension (pp. 556 - 557) - <em>Here are driver, device and file object structures from x64 W2K8:</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>0: kd&gt; dt _DRIVER_OBJECT<br />
ntdll!_DRIVER_OBJECT<br />
   +0x000 Type             : Int2B<br />
   +0x002 Size             : Int2B<br />
   +0x008 DeviceObject     : Ptr64 _DEVICE_OBJECT<br />
   +0x010 Flags            : Uint4B<br />
   +0x018 DriverStart      : Ptr64 Void<br />
   +0x020 DriverSize       : Uint4B<br />
   +0x028 DriverSection    : Ptr64 Void<br />
   +0x030 DriverExtension  : Ptr64 _DRIVER_EXTENSION<br />
   +0x038 DriverName       : _UNICODE_STRING<br />
   +0x048 HardwareDatabase : Ptr64 _UNICODE_STRING<br />
   +0x050 FastIoDispatch   : Ptr64 _FAST_IO_DISPATCH<br />
   +0x058 DriverInit       : Ptr64     long<br />
   +0x060 DriverStartIo    : Ptr64     void<br />
   +0x068 DriverUnload     : Ptr64     void<br />
   +0x070 MajorFunction    : [28] Ptr64     long</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>0: kd&gt; dt _DEVICE_OBJECT<br />
ntdll!_DEVICE_OBJECT<br />
   +0x000 Type             : Int2B<br />
   +0x002 Size             : Uint2B<br />
   +0x004 ReferenceCount   : Int4B<br />
   +0x008 DriverObject     : Ptr64 _DRIVER_OBJECT<br />
   +0x010 NextDevice       : Ptr64 _DEVICE_OBJECT<br />
   +0x018 AttachedDevice   : Ptr64 _DEVICE_OBJECT<br />
   +0x020 CurrentIrp       : Ptr64 _IRP<br />
   +0x028 Timer            : Ptr64 _IO_TIMER<br />
   +0x030 Flags            : Uint4B<br />
   +0x034 Characteristics  : Uint4B<br />
   +0x038 Vpb              : Ptr64 _VPB<br />
   +0x040 DeviceExtension  : Ptr64 Void<br />
   +0x048 DeviceType       : Uint4B<br />
   +0x04c StackSize        : Char<br />
   +0x050 Queue            : &lt;unnamed-tag&gt;<br />
   +0x098 AlignmentRequirement : Uint4B<br />
   +0x0a0 DeviceQueue      : _KDEVICE_QUEUE<br />
   +0x0c8 Dpc              : _KDPC<br />
   +0x108 ActiveThreadCount : Uint4B<br />
   +0x110 SecurityDescriptor : Ptr64 Void<br />
   +0x118 DeviceLock       : _KEVENT<br />
   +0x130 SectorSize       : Uint2B<br />
   +0x132 Spare1           : Uint2B<br />
   +0x138 DeviceObjectExtension : Ptr64 _DEVOBJ_EXTENSION<br />
   +0x140 Reserved         : Ptr64 Void</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>0: kd&gt; dt _FILE_OBJECT<br />
ntdll!_FILE_OBJECT<br />
   +0x000 Type             : Int2B<br />
   +0x002 Size             : Int2B<br />
   +0x008 DeviceObject     : Ptr64 _DEVICE_OBJECT<br />
   +0x010 Vpb              : Ptr64 _VPB<br />
   +0x018 FsContext        : Ptr64 Void<br />
   +0x020 FsContext2       : Ptr64 Void<br />
   +0x028 SectionObjectPointer : Ptr64 _SECTION_OBJECT_POINTERS<br />
   +0x030 PrivateCacheMap  : Ptr64 Void<br />
   +0x038 FinalStatus      : Int4B<br />
   +0x040 RelatedFileObject : Ptr64 _FILE_OBJECT<br />
   +0x048 LockOperation    : UChar<br />
   +0x049 DeletePending    : UChar<br />
   +0x04a ReadAccess       : UChar<br />
   +0x04b WriteAccess      : UChar<br />
   +0x04c DeleteAccess     : UChar<br />
   +0x04d SharedRead       : UChar<br />
   +0x04e SharedWrite      : UChar<br />
   +0x04f SharedDelete     : UChar<br />
   +0x050 Flags            : Uint4B<br />
   +0x058 FileName         : _UNICODE_STRING<br />
   +0x068 CurrentByteOffset : _LARGE_INTEGER<br />
   +0x070 Waiters          : Uint4B<br />
   +0x074 Busy             : Uint4B<br />
   +0x078 LastLock         : Ptr64 Void<br />
   +0x080 Lock             : _KEVENT<br />
   +0x098 Event            : _KEVENT<br />
   +0x0b0 CompletionContext : Ptr64 _IO_COMPLETION_CONTEXT<br />
   +0x0b8 IrpListLock      : Uint8B<br />
   +0x0c0 IrpList          : _LIST_ENTRY<br />
   +0x0d0 FileObjectExtension : Ptr64 Void</code></span></p>
<p style="text-align: left;">- Dmitry Vostokov @ <a href="http://www.softwaregeneralist.com/">SoftwareGeneralist.com</a> -</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaregeneralist.com/2010/07/22/reading-notebook-19-july-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reading Notebook: 12-July-10</title>
		<link>http://www.softwaregeneralist.com/2010/07/12/reading-notebook-12-july-10/</link>
		<comments>http://www.softwaregeneralist.com/2010/07/12/reading-notebook-12-july-10/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 16:53:34 +0000</pubDate>
		<dc:creator>Dmitry Vostokov</dc:creator>
		
		<category><![CDATA[Notes on Windows Internals]]></category>

		<category><![CDATA[Reading Notebook]]></category>

		<guid isPermaLink="false">http://www.softwaregeneralist.com/?p=112</guid>
		<description><![CDATA[Comments in italics are mine and express my own views, thoughts and opinions
Windows Internals by M. Russinovich, D. Solomon and A. Ionescu:
File and registry virtualization is for 32-bit apps only  (p. 522)
Files (as locations) with executable extensions are excluded from virtualization (p. 524)
luafv.sys - filesystem virtualization driver (pp. 524 - 525)
\Users\&#60;user&#62;\AppData\Local\VirtualStore\Windows\*.* (p. 525)  
Admin Approval Mode, over-the-shoulder and consent elevations (p. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><em>Comments in italics are mine and express my own views, thoughts and opinions</em></p>
<p style="text-align: left;"><strong><span>Windows Internals by M. <span>Russinovich</span>, D. Solomon and A. <span>Ionescu</span>:</span></strong></p>
<p style="text-align: left;">File and registry virtualization is for 32-bit apps only  (p. 522)</p>
<p style="text-align: left;">Files (as locations) with executable extensions are excluded from virtualization (p. 524)</p>
<p style="text-align: left;">luafv.sys - filesystem virtualization driver (pp. 524 - 525)</p>
<p style="text-align: left;">\Users\&lt;user&gt;\AppData\Local\VirtualStore\Windows\*.* (p. 525)  </p>
<p style="text-align: left;">Admin Approval Mode, over-the-shoulder and consent elevations (p. 529)</p>
<p style="text-align: left;">appinfo.dll -&gt; consent.exe (p. 529)</p>
<p style="text-align: left;">Process reparenting (p. 531)</p>
<p style="text-align: left;">Running regedt32.exe to get virtualized registry view (p. 533)</p>
<p style="text-align: left;">Typical I/O request flow (pp. 540 - 541) - <em>here is a stack trace example from x64 Windows for a remote file request that reaches network drivers (some irrelevant 3rd-party filter drivers like antivirus were skipped):</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>Child-SP          RetAddr           Call Site<br />
fffffadf`25d92ff0 fffffadf`28ec5b97 NetworkCardVendor!send_packet+0x33c<br />
fffffadf`25d93250 fffffadf`28ec5903 NDIS!ndisMProcessSGList+0x8e<br />
fffffadf`25d932e0 fffffadf`28e85618 NDIS!ndisMAllocSGList+0x17c<br />
fffffadf`25d933a0 fffffadf`26ab57c4 NDIS!ndisMSendX+0x21e<br />
fffffadf`25d934d0 fffffadf`26ab5999 tcpip!ARPSendData+0x23a<br />
fffffadf`25d93540 fffffadf`26ab20ea tcpip!ARPTransmit+0x151<br />
fffffadf`25d935d0 fffffadf`26aaecad tcpip!IPTransmit+0xaf5<br />
fffffadf`25d93850 fffffadf`26aa94c6 tcpip!TCPSend+0x8d5<br />
fffffadf`25d93930 fffffadf`26aafa8c tcpip!TdiSend+0x344<br />
fffffadf`25d939a0 fffffadf`26a4085c tcpip!TCPSendData+0xee<br />
fffffadf`25d93a00 fffffadf`26a4845b netbt!NTSend+0x227<br />
fffffadf`25d93ac0 fffffadf`269a546d netbt!NbtDispatchInternalCtrl+0x38<br />
fffffadf`25d93c50 fffffadf`269cea18 rdbss!RxTdiSend+0x1a2<br />
fffffadf`25d93cf0 fffffadf`2693efcf rdbss!RxCeSend+0x98<br />
fffffadf`25d93d80 fffffadf`268d82fd mrxsmb!VctTranceive+0xa6<br />
fffffadf`25d93de0 fffffadf`2693fea9 mrxsmb!SmbCeTranceive+0x483<br />
fffffadf`25d93e70 fffffadf`2693e94b mrxsmb!SmbTransactExchangeStart+0x558<br />
fffffadf`25d93f20 fffffadf`26940abf mrxsmb!SmbCeInitiateExchange+0x2fd<br />
fffffadf`25d93f70 fffffadf`26940c5b mrxsmb!SmbCeSubmitTransactionRequest+0x148<br />
fffffadf`25d93fe0 fffffadf`269412e0 mrxsmb!_SmbCeTransact+0x1a1<br />
fffffadf`25d940c0 fffffadf`26941625 mrxsmb!MRxSmbQueryFileInformation+0x811<br />
fffffadf`25d94220 fffffadf`26941dfa mrxsmb!MRxSmbQueryFileInformationFromPseudoOpen+0x116<br />
fffffadf`25d94260 fffffadf`2693e94b mrxsmb!SmbPseExchangeStart_Create+0x2da<br />
fffffadf`25d94300 fffffadf`2693f50c mrxsmb!SmbCeInitiateExchange+0x2fd<br />
fffffadf`25d94350 fffffadf`269cc4c1 mrxsmb!MRxSmbCreate+0x5d6<br />
fffffadf`25d94430 fffffadf`269cc730 rdbss!RxCollapseOrCreateSrvOpen+0x154<br />
fffffadf`25d944d0 fffffadf`269c7a92 rdbss!RxCreateFromNetRoot+0x399<br />
fffffadf`25d94570 fffffadf`269a2a77 rdbss!RxCommonCreate+0x49a<br />
fffffadf`25d94680 fffffadf`269343e8 rdbss!RxFsdCommonDispatch+0x51c<br />
fffffadf`25d94780 fffffadf`290bfdb3 mrxsmb!MRxSmbFsdDispatch+0x211<br />
fffffadf`25d947d0 fffffadf`290bfdb3 fltmgr!FltpCreate+0x353<br />
[...]<br />
fffffadf`25d98460 fffff800`012840b4 nt!IopParseDevice+0x1088<br />
fffffadf`25d98610 fffff800`012887d7 nt!ObpLookupObjectName+0x931<br />
fffffadf`25d98720 fffff800`01295dad nt!ObOpenObjectByName+0x180<br />
fffffadf`25d98910 fffff800`0129cd87 nt!IopCreateFile+0x630<br />
fffffadf`25d98aa0 fffff800`012987f9 nt!IoCreateFile+0x12f<br />
fffffadf`25d98b80 fffff800`0102e5fd nt!NtOpenFile+0x49<br />
fffffadf`25d98c00 00000000`77ef0d1a nt!KiSystemServiceCopyEnd+0x3<br />
00000000`000ac568 00000000`77d6f7c9 ntdll!NtCreateFile+0xa<br />
00000000`000ac570 000007ff`7fd535c3 kernel32!CreateFileW+0x511</code></span></p>
<p style="text-align: left;">- Dmitry Vostokov @ <a href="http://www.softwaregeneralist.com/">SoftwareGeneralist.com</a> -</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaregeneralist.com/2010/07/12/reading-notebook-12-july-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reading Notebook: 16-June-10</title>
		<link>http://www.softwaregeneralist.com/2010/06/18/reading-notebook-16-june-10/</link>
		<comments>http://www.softwaregeneralist.com/2010/06/18/reading-notebook-16-june-10/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 09:29:17 +0000</pubDate>
		<dc:creator>Dmitry Vostokov</dc:creator>
		
		<category><![CDATA[Notes on Windows Internals]]></category>

		<category><![CDATA[Reading Notebook]]></category>

		<guid isPermaLink="false">http://www.softwaregeneralist.com/?p=113</guid>
		<description><![CDATA[Comments in italics are mine and express my own views, thoughts and opinions
Windows Internals by M. Russinovich, D. Solomon and A. Ionescu:
Local security policy audit (pp. 511 - 512) - I used in the past to recommend process audit to track process launch sequences for debugging purposes
Access tokens have separate ACL (pp. 512 - 513)
MSV1_0 [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><em>Comments in italics are mine and express my own views, thoughts and opinions</em></p>
<p style="text-align: left;"><strong><span>Windows Internals by M. <span>Russinovich</span>, D. Solomon and A. <span>Ionescu</span>:</span></strong></p>
<p style="text-align: left;">Local security policy audit (pp. 511 - 512) - <em>I used in the past to recommend process audit to track process launch sequences for debugging purposes</em></p>
<p style="text-align: left;">Access tokens have separate ACL (pp. 512 - 513)</p>
<p style="text-align: left;">MSV1_0 - local authentication package (p. 513)</p>
<p style="text-align: left;">Default credential providers authui.dll amd SmartcardCredentialProvider.dll (p. 514) - <em>Here are stack traces from x64 LogonUI.exe:</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa8013dde9d0  Cid 0238.04f8  Teb: 000007fffffd7000 Win32Thread: fffff900c0679d50 WAIT: (UserRequest) UserMode Non-Alertable<br />
    fffffa8013ddee60  SynchronizationEvent<br />
    fffffa8013dde810  SynchronizationEvent<br />
Not impersonating<br />
DeviceMap                 fffff88000008e00<br />
Owning Process            fffffa80296ecae0       Image:         LogonUI.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      26019          Ticks: 402642 (0:01:44:41.255)<br />
Context Switch Count      170                 LargeStack<br />
UserTime                  00:00:00.015<br />
KernelTime                00:00:00.046<br />
Win32 Start Address authui!CCredentialProviderThread::_sThreadProc (0x000007fefc6d151c)<br />
Stack Init fffffa6008efadb0 Current fffffa6008efa230<br />
Base fffffa6008efb000 Limit fffffa6008ef5000 Call 0<br />
Priority 15 BasePriority 13 PriorityDecrement 2 IoPriority 2 PagePriority 5<br />
Kernel stack not resident.<br />
Child-SP          RetAddr           Call Site<br />
fffffa60`08efa270 fffff800`01a6b9fa nt!KiSwapContext+0x7f<br />
fffffa60`08efa3b0 fffff800`01a712db nt!KiSwapThread+0x13a<br />
fffffa60`08efa420 fffff800`01cd160e nt!KeWaitForMultipleObjects+0x2eb<br />
fffffa60`08efa4a0 fffff800`01cd1c53 nt!ObpWaitForMultipleObjects+0x26e<br />
fffffa60`08efa960 fffff800`01a69233 nt!NtWaitForMultipleObjects+0xe2<br />
fffffa60`08efabb0 00000000`778c72ca nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffffa60`08efac20)<br />
00000000`0211f978 00000000`7769bc03 ntdll!ZwWaitForMultipleObjects+0xa<br />
00000000`0211f980 00000000`777ce2b5 kernel32!WaitForMultipleObjectsEx+0x10b<br />
00000000`0211fa90 00000000`777ce32e USER32!RealMsgWaitForMultipleObjectsEx+0x129<br />
00000000`0211fb30 000007fe`fe4fb196 USER32!MsgWaitForMultipleObjectsEx+0x46<br />
00000000`0211fb70 000007fe`fe608d42 ole32!CCliModalLoop::BlockFn+0xb6<br />
00000000`0211fbb0 000007fe`fc6d07ad ole32!CoWaitForMultipleHandles+0x102<br />
00000000`0211fcb0 000007fe`fc6d15d4 authui!InternalCoWaitForSingleHandle+0x31<br />
00000000`0211fcf0 000007fe`fc6d1525 authui!CCredentialProviderThread::_vThreadProc+0xa0<br />
00000000`0211fd30 00000000`7769be3d authui!CCredentialProviderThread::_sThreadProc+0x9<br />
00000000`0211fd60 00000000`778a6a51 kernel32!BaseThreadInitThunk+0xd<br />
00000000`0211fd90 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa8013e48060  Cid 0238.0610  Teb: 000007fffffa0000 Win32Thread: 0000000000000000 WAIT: (UserRequest) UserMode Non-Alertable<br />
    fffffa8013e4ab50  NotificationEvent<br />
    fffffa8013e425b0  SynchronizationEvent<br />
Not impersonating<br />
DeviceMap                 fffff88000008e00<br />
Owning Process            fffffa80296ecae0       Image:         LogonUI.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      13245          Ticks: 415416 (0:01:48:00.531)<br />
Context Switch Count      29<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address SmartcardCredentialProvider!I_ReaderMonitorThreadProc (0x000007fefc481db0)<br />
Stack Init fffffa6009181db0 Current fffffa6009181230<br />
Base fffffa6009182000 Limit fffffa600917c000 Call 0<br />
Priority 15 BasePriority 13 PriorityDecrement 2 IoPriority 2 PagePriority 5<br />
Kernel stack not resident.<br />
Child-SP          RetAddr           Call Site<br />
fffffa60`09181270 fffff800`01a6b9fa nt!KiSwapContext+0x7f<br />
fffffa60`091813b0 fffff800`01a712db nt!KiSwapThread+0x13a<br />
fffffa60`09181420 fffff800`01cd160e nt!KeWaitForMultipleObjects+0x2eb<br />
fffffa60`091814a0 fffff800`01cd1c53 nt!ObpWaitForMultipleObjects+0x26e<br />
fffffa60`09181960 fffff800`01a69233 nt!NtWaitForMultipleObjects+0xe2<br />
fffffa60`09181bb0 00000000`778c72ca nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffffa60`09181c20)<br />
00000000`045efa48 00000000`7769bc03 ntdll!ZwWaitForMultipleObjects+0xa<br />
00000000`045efa50 00000000`77691aa1 kernel32!WaitForMultipleObjectsEx+0x10b<br />
00000000`045efb60 000007fe`fc4819bb kernel32!WaitForMultipleObjects+0x11<br />
00000000`045efba0 000007fe`fc481de1 SmartcardCredentialProvider!I_ReaderMonitorWorker+0x8f<br />
00000000`045efc30 00000000`7769be3d SmartcardCredentialProvider!I_ReaderMonitorThreadProc+0x31<br />
00000000`045efc70 00000000`778a6a51 kernel32!BaseThreadInitThunk+0xd<br />
00000000`045efca0 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;">Win32k.sys sends keyboard messages to LogonUI.exe via RPC (p. 514)</p>
<p style="text-align: left;">Secondary authentication providers in LogonUI.exe, SSON (p. 515)</p>
<p style="text-align: left;">wininit.exe is for session 0 legacy GUI processes (p. 516)</p>
<p style="text-align: left;">Raw input thread (p. 516) - <em>here&#8217;re 3 kinds of csrss.exe (different IRPs):</em></p>
<p style="text-align: left;"><em><span style="text-decoration: underline;">session 0 (no IRP)</span></em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa8013a7d980  Cid 02ec.0338  Teb: 000007fffffae000 Win32Thread: fffff900c00da010 WAIT: (WrUserRequest) KernelMode Alertable<br />
    fffffa8013665d00  SynchronizationEvent<br />
    fffffa8013037df0  NotificationTimer<br />
    fffffa8013665c80  SynchronizationTimer<br />
    fffff80001bb9f60  NotificationEvent<br />
Not impersonating<br />
DeviceMap                 fffff88000008e00<br />
Owning Process            fffffa8029668710       Image:         csrss.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      428616         Ticks: 45 (0:00:00:00.702)<br />
Context Switch Count      317                 LargeStack<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address winsrv!StartCreateSystemThreads (0x000007fefde7c3b0)<br />
Stack Init fffffa6002c33db0 Current fffffa6002c33890<br />
Base fffffa6002c34000 Limit fffffa6002c2e000 Call 0<br />
Priority 15 BasePriority 13 PriorityDecrement 0 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffffa60`02c338d0 fffff800`01a6b9fa nt!KiSwapContext+0x7f<br />
fffffa60`02c33a10 fffff800`01a712db nt!KiSwapThread+0x13a<br />
fffffa60`02c33a80 fffff960`000ed088 nt!KeWaitForMultipleObjects+0x2eb<br />
fffffa60`02c33b00 fffff960`00068317 win32k!RawInputThread+0x79c<br />
fffffa60`02c33bc0 fffff960`000eddc6 win32k!xxxCreateSystemThreads+0x67<br />
fffffa60`02c33bf0 fffff800`01a69233 win32k!NtUserCallNoParam+0x36<br />
fffffa60`02c33c20 000007fe`fde7c3da nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffffa60`02c33c20)<br />
00000000`002afd98 000007fe`fde7c3c9 winsrv!ZwUserCallNoParam+0xa<br />
00000000`002afda0 00000000`778e2f6c winsrv!StartCreateSystemThreads+0x19<br />
00000000`002afdd0 00000000`00000000 ntdll!RtlUserThreadStart+0x29</code></span></p>
<p style="text-align: left;"><em><span style="text-decoration: underline;">session 1 (console, keyboard IRP)</span></em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa80296821d0  Cid 0324.0370  Teb: 000007fffffd3000 Win32Thread: fffff900c00e33b0 WAIT: (WrUserRequest) KernelMode Alertable<br />
    fffffa80137c6430  SynchronizationEvent<br />
    fffffa802967fc30  NotificationTimer<br />
    fffffa8029680360  SynchronizationTimer<br />
    fffffa802967f970  SynchronizationEvent<br />
<span style="color: blue;">IRP List:<br />
    fffffa802968b2e0: (0006,03a0) Flags: 00060970  Mdl: 00000000<br />
    fffffa802960d4c0: (0006,03a0) Flags: 00060970  Mdl: 00000000<br />
    fffffa8012ec7470: (0006,03a0) Flags: 00060970  Mdl: 00000000</span><br />
Not impersonating<br />
DeviceMap                 fffff88000008e00<br />
Owning Process            fffffa8029672c10       Image:         csrss.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      428605         Ticks: 56 (0:00:00:00.873)<br />
Context Switch Count      24934                 LargeStack<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address winsrv!StartCreateSystemThreads (0&#215;000007fefde7c3b0)<br />
Stack Init fffffa6008bd0db0 Current fffffa6008bd0890<br />
Base fffffa6008bd1000 Limit fffffa6008bcb000 Call 0<br />
Priority 15 BasePriority 13 PriorityDecrement 0 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffffa60`08bd08d0 fffff800`01a6b9fa nt!KiSwapContext+0&#215;7f<br />
fffffa60`08bd0a10 fffff800`01a712db nt!KiSwapThread+0&#215;13a<br />
fffffa60`08bd0a80 fffff960`000ed088 nt!KeWaitForMultipleObjects+0&#215;2eb<br />
fffffa60`08bd0b00 fffff960`00068317 win32k!RawInputThread+0&#215;79c<br />
fffffa60`08bd0bc0 fffff960`000eddc6 win32k!xxxCreateSystemThreads+0&#215;67<br />
fffffa60`08bd0bf0 fffff800`01a69233 win32k!NtUserCallNoParam+0&#215;36<br />
fffffa60`08bd0c20 000007fe`fde7c3da nt!KiSystemServiceCopyEnd+0&#215;13 (TrapFrame @ fffffa60`08bd0c20)<br />
00000000`014afab8 000007fe`fde7c3c9 winsrv!ZwUserCallNoParam+0xa<br />
00000000`014afac0 00000000`778e2f6c winsrv!StartCreateSystemThreads+0&#215;19<br />
00000000`014afaf0 00000000`00000000 ntdll!RtlUserThreadStart+0&#215;29</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>15: kd&gt; !irp fffffa802968b2e0<br />
Irp is active with 7 stacks 7 is current (= 0xfffffa802968b560)<br />
 No Mdl: System buffer=fffffa8029688790: Thread fffffa80296821d0:  Irp stack trace.<br />
     cmd  flg cl Device   File     Completion-Context<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
&gt;[  3, 0]   0  1 fffffa8013703ce0 fffffa8029687670 00000000-00000000    pending<br />
<span style="color: blue;">        \Driver\kbdclass</span><br />
   Args: 00000078 00000000 00000000 00000000</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>15: kd&gt; !irp fffffa802960d4c0<br />
Irp is active with 10 stacks 10 is current (= 0xfffffa802960d818)<br />
 No Mdl: System buffer=fffffa8029681010: Thread fffffa80296821d0:  Irp stack trace.<br />
     cmd  flg cl Device   File     Completion-Context<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
&gt;[  3, 0]   0  1 fffffa801392ace0 fffffa8029686880 00000000-00000000    pending<br />
<span style="color: blue;">        \Driver\kbdclass</span><br />
   Args: 00000078 00000000 00000000 00000000</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>15: kd&gt; !irp fffffa8012ec7470<br />
Irp is active with 3 stacks 3 is current (= 0xfffffa8012ec75d0)<br />
 No Mdl: System buffer=fffffa8029687010: Thread fffffa80296821d0:  Irp stack trace.<br />
     cmd  flg cl Device   File     Completion-Context<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
 [  0, 0]   0  0 00000000 00000000 00000000-00000000   </code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>   Args: 00000000 00000000 00000000 00000000<br />
&gt;[  3, 0]   0  1 fffffa8013722060 fffffa8029680200 00000000-00000000    pending<br />
<span style="color: blue;">        \Driver\kbdclass</span><br />
   Args: 00000078 00000000 00000000 00000000</code></span></p>
<p style="text-align: left;"><em><span style="text-decoration: underline;">session N (terminal services, termdd IRP)</span></em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa80168fbac0  Cid 175c.533c  Teb: 000007fffffae000 Win32Thread: fffff900c018d010 WAIT: (WrUserRequest) KernelMode Alertable<br />
    fffffa8015355e70  SynchronizationEvent<br />
    fffffa8016442950  NotificationTimer<br />
    fffffa80156f9f70  SynchronizationTimer<br />
    fffffa8016967a50  SynchronizationEvent<br />
<span style="color: blue;">IRP List:<br />
    fffffa801501ba30: (0006,0118) Flags: 00060900  Mdl: 00000000</span><br />
        Not impersonating<br />
        DeviceMap                 fffff88000008e00<br />
        Owning Process            fffffa802b33ac10       Image:         csrss.exe<br />
        Attached Process          N/A            Image:         N/A<br />
        Wait Start TickCount      428641         Ticks: 20 (0:00:00:00.312)<br />
        Context Switch Count      32238                 LargeStack<br />
        UserTime                  00:00:00.000<br />
        KernelTime                00:00:00.218<br />
        Win32 Start Address winsrv!StartCreateSystemThreads (0&#215;000007fefde7c3b0)<br />
        Stack Init fffffa601ccdbdb0 Current fffffa601ccdb890<br />
        Base fffffa601ccdc000 Limit fffffa601ccd6000 Call 0<br />
        Priority 15 BasePriority 13 PriorityDecrement 0 IoPriority 2 PagePriority 5<br />
        Child-SP          RetAddr           Call Site<br />
        fffffa60`1ccdb8d0 fffff800`01a6b9fa nt!KiSwapContext+0&#215;7f<br />
        fffffa60`1ccdba10 fffff800`01a712db nt!KiSwapThread+0&#215;13a<br />
        fffffa60`1ccdba80 fffff960`000ed088 nt!KeWaitForMultipleObjects+0&#215;2eb<br />
        fffffa60`1ccdbb00 fffff960`00068317 win32k!RawInputThread+0&#215;79c<br />
        fffffa60`1ccdbbc0 fffff960`000eddc6 win32k!xxxCreateSystemThreads+0&#215;67<br />
        fffffa60`1ccdbbf0 fffff800`01a69233 win32k!NtUserCallNoParam+0&#215;36<br />
        fffffa60`1ccdbc20 000007fe`fde7c3da nt!KiSystemServiceCopyEnd+0&#215;13 (TrapFrame @ fffffa60`1ccdbc20)<br />
        00000000`0137f878 000007fe`fde7c3c9 winsrv!ZwUserCallNoParam+0xa<br />
        00000000`0137f880 00000000`778e2f6c winsrv!StartCreateSystemThreads+0&#215;19<br />
        00000000`0137f8b0 00000000`00000000 ntdll!RtlUserThreadStart+0&#215;29</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>15: kd&gt; !irp fffffa801501ba30<br />
Irp is active with 1 stacks 1 is current (= 0xfffffa801501bb00)<br />
 No Mdl: No System Buffer: Thread fffffa80168fbac0:  Irp stack trace.<br />
     cmd  flg cl Device   File     Completion-Context<br />
&gt;[  3, 0]   0  1 fffffa801370adb0 fffffa801705ef20 00000000-00000000    pending<br />
<span style="color: blue;">        \Driver\TermDD</span><br />
   Args: 00000078 00000000 00000000 00000000</code></span></p>
<p style="text-align: left;">Half-hash caching of passwords (p. 517)</p>
<p style="text-align: left;">logonsessions tool (pp. 519 - 520)</p>
<p style="text-align: left;">- Dmitry Vostokov @ <a href="http://www.softwaregeneralist.com/">SoftwareGeneralist.com</a> -</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaregeneralist.com/2010/06/18/reading-notebook-16-june-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reading Notebook: 31-May-10</title>
		<link>http://www.softwaregeneralist.com/2010/05/31/reading-notebook-31-may-10/</link>
		<comments>http://www.softwaregeneralist.com/2010/05/31/reading-notebook-31-may-10/#comments</comments>
		<pubDate>Mon, 31 May 2010 18:03:10 +0000</pubDate>
		<dc:creator>Dmitry Vostokov</dc:creator>
		
		<category><![CDATA[Notes on Windows Internals]]></category>

		<category><![CDATA[Reading Notebook]]></category>

		<guid isPermaLink="false">http://www.softwaregeneralist.com/?p=111</guid>
		<description><![CDATA[Comments in italics are mine and express my own views, thoughts and opinions
Windows Internals by M. Russinovich, D. Solomon and A. Ionescu:
Objects vs. account attributes, privilege vs. account right (p. 501)
NtRaiseHardError requires SeShutdownPrivilege (p. 508)
firmware environment variables (p. 508) - some more info: http://msdn.microsoft.com/en-us/library/ms724325(VS.85).aspx
Implication of Bypass Traverse Checking (SeNotifyPrivilege) (p. 509)
Elevated priviliges don&#8217;t extend past machine [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><em>Comments in italics are mine and express my own views, thoughts and opinions</em></p>
<p style="text-align: left;"><strong><span>Windows Internals by M. <span>Russinovich</span>, D. Solomon and A. <span>Ionescu</span>:</span></strong></p>
<p style="text-align: left;">Objects vs. account attributes, privilege vs. account right (p. 501)</p>
<p style="text-align: left;">NtRaiseHardError requires SeShutdownPrivilege (p. 508)</p>
<p style="text-align: left;">firmware environment variables (p. 508) - some more info: <a href="http://msdn.microsoft.com/en-us/library/ms724325(VS.85).aspx">http://msdn.microsoft.com/en-us/library/ms724325(VS.85).aspx</a></p>
<p style="text-align: left;">Implication of Bypass Traverse Checking (SeNotifyPrivilege) (p. 509)</p>
<p style="text-align: left;">Elevated priviliges don&#8217;t extend past machine boundaries (p. 510)</p>
<p style="text-align: left;">- Dmitry Vostokov @ <a href="http://www.softwaregeneralist.com/">SoftwareGeneralist.com</a> -</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaregeneralist.com/2010/05/31/reading-notebook-31-may-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reading Notebook: 26-May-10</title>
		<link>http://www.softwaregeneralist.com/2010/05/27/reading-notebook-26-may-10/</link>
		<comments>http://www.softwaregeneralist.com/2010/05/27/reading-notebook-26-may-10/#comments</comments>
		<pubDate>Thu, 27 May 2010 10:57:54 +0000</pubDate>
		<dc:creator>Dmitry Vostokov</dc:creator>
		
		<category><![CDATA[Notes on Windows Internals]]></category>

		<category><![CDATA[Reading Notebook]]></category>

		<guid isPermaLink="false">http://www.softwaregeneralist.com/?p=110</guid>
		<description><![CDATA[Comments in italics are mine and express my own views, thoughts and opinions
Windows Internals by M. Russinovich, D. Solomon and A. Ionescu:
Explicit ACE are ahead of inherited (p. 491)
Differences of inheritable ACE propagation AD objects (p. 491)
Ntmarta.dll: security inheritance support DLL (p. 492)
SeAccessCheck optimization: integrity check -&#62; DACL check (p. 492)
Low and medium integrity processes can read high integrity [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><em>Comments in italics are mine and express my own views, thoughts and opinions</em></p>
<p style="text-align: left;"><strong><span>Windows Internals by M. <span>Russinovich</span>, D. Solomon and A. <span>Ionescu</span>:</span></strong></p>
<p style="text-align: left;">Explicit ACE are ahead of inherited (p. 491)</p>
<p style="text-align: left;">Differences of inheritable ACE propagation AD objects (p. 491)</p>
<p style="text-align: left;">Ntmarta.dll: security inheritance support DLL (p. 492)</p>
<p style="text-align: left;">SeAccessCheck optimization: integrity check -&gt; DACL check (p. 492)</p>
<p style="text-align: left;">Low and medium integrity processes can read high integrity objects (p. 493)</p>
<p style="text-align: left;">UIPI safe messages, shatter attacks, blocked (journal) hooks (pp. 493 - 494)</p>
<p style="text-align: left;">Owner Rights SID (pp. 495 - 496)</p>
<p style="text-align: left;">Importance of ACE ordering (pp. 497 - 498)</p>
<p style="text-align: left;">Security editors place Deny ACE on top, Advanced Settings and Effective Permissions (pp. 498 - 500)</p>
<p style="text-align: left;">AuthZ API: security model in user mode (pp. 500 - 501)</p>
<p style="text-align: left;">- Dmitry Vostokov @ <a href="http://www.softwaregeneralist.com/">SoftwareGeneralist.com</a> -</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaregeneralist.com/2010/05/27/reading-notebook-26-may-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reading Notebook: 25-May-10</title>
		<link>http://www.softwaregeneralist.com/2010/05/25/reading-notebook-25-may-10/</link>
		<comments>http://www.softwaregeneralist.com/2010/05/25/reading-notebook-25-may-10/#comments</comments>
		<pubDate>Tue, 25 May 2010 19:53:10 +0000</pubDate>
		<dc:creator>Dmitry Vostokov</dc:creator>
		
		<category><![CDATA[Notes on Windows Internals]]></category>

		<category><![CDATA[Reading Notebook]]></category>

		<guid isPermaLink="false">http://www.softwaregeneralist.com/?p=109</guid>
		<description><![CDATA[Comments in italics are mine and express my own views, thoughts and opinions
Windows Internals by M. Russinovich, D. Solomon and A. Ionescu:
No share access for impersonation: we need logon  (p. 481)
S(ecure)QOS levels, SECURITY_CONTEXT_TRACKING (p. 482)
Integrity Level (client) &#60;= Integrity Level (server) (pp. 482 - 483)
Restricted tokens -&#62; filtered admin tokens (logon as admin with UAC) (pp. 483 [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><em>Comments in italics are mine and express my own views, thoughts and opinions</em></p>
<p style="text-align: left;"><strong><span>Windows Internals by M. <span>Russinovich</span>, D. Solomon and A. <span>Ionescu</span>:</span></strong></p>
<p style="text-align: left;">No share access for impersonation: we need logon  (p. 481)</p>
<p style="text-align: left;">S(ecure)QOS levels, SECURITY_CONTEXT_TRACKING (p. 482)</p>
<p style="text-align: left;">Integrity Level (client) &lt;= Integrity Level (server) (pp. 482 - 483)</p>
<p style="text-align: left;">Restricted tokens -&gt; filtered admin tokens (logon as admin with UAC) (pp. 483 - 484)</p>
<p style="text-align: left;">Callback, allowed(denied)-object (GUID-based for AD) ACEs (p. 487)</p>
<p style="text-align: left;">No DACL: full access, empty DACL: no access (p. 487)</p>
<p style="text-align: left;">System audit-object ACEs (p. 488)</p>
<p style="text-align: left;">- Dmitry Vostokov @ <a href="http://www.softwaregeneralist.com/">SoftwareGeneralist.com</a> -</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaregeneralist.com/2010/05/25/reading-notebook-25-may-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reading Notebook: 24-May-10</title>
		<link>http://www.softwaregeneralist.com/2010/05/24/reading-notebook-24-may-10/</link>
		<comments>http://www.softwaregeneralist.com/2010/05/24/reading-notebook-24-may-10/#comments</comments>
		<pubDate>Mon, 24 May 2010 19:09:09 +0000</pubDate>
		<dc:creator>Dmitry Vostokov</dc:creator>
		
		<category><![CDATA[Notes on Windows Internals]]></category>

		<category><![CDATA[Reading Notebook]]></category>

		<guid isPermaLink="false">http://www.softwaregeneralist.com/?p=108</guid>
		<description><![CDATA[Comments in italics are mine and express my own views, thoughts and opinions
Windows Internals by M. Russinovich, D. Solomon and A. Ionescu:
Process integrity levels as SIDs (pp. 464 - 465)
Protected mode IE startup sequence (pp. 467 - 470) - ieuser.exe might block several iexplore.exe instances: http://www.dumpanalysis.org/blog/index.php/2009/02/11/stack-trace-collection-blocked-thread-and-coupled-processes-pattern-cooperation/
Integrity levels and mandatory policies for objects (pp. 471- 473)
Many faces of [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><em>Comments in italics are mine and express my own views, thoughts and opinions</em></p>
<p style="text-align: left;"><strong><span>Windows Internals by M. <span>Russinovich</span>, D. Solomon and A. <span>Ionescu</span>:</span></strong></p>
<p style="text-align: left;">Process integrity levels as SIDs (pp. 464 - 465)</p>
<p style="text-align: left;">Protected mode IE startup sequence (pp. 467 - 470) - <em>ieuser.exe might block several iexplore.exe instances: </em><a href="http://www.dumpanalysis.org/blog/index.php/2009/02/11/stack-trace-collection-blocked-thread-and-coupled-processes-pattern-cooperation/"><em>http://www.dumpanalysis.org/blog/index.php/2009/02/11/stack-trace-collection-blocked-thread-and-coupled-processes-pattern-cooperation/</em></a></p>
<p style="text-align: left;">Integrity levels and mandatory policies for objects (pp. 471- 473)</p>
<p style="text-align: left;">Many faces of an Administrator, filtered admin tokens (p. 474)</p>
<p style="text-align: left;">CreateProcessWithLogonW (p. 474)</p>
<p style="text-align: left;">The token source field (p. 476)</p>
<p style="text-align: left;">Token authentication and modified IDs (pp. 476 - 477) - <em>token structure from x64 Windows Server R2:</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>0: kd&gt; dt _TOKEN<br />
nt!_TOKEN<br />
   +0x000 TokenSource      : _TOKEN_SOURCE<br />
   +0x010 TokenId          : _LUID<br />
   +0x018 AuthenticationId : _LUID<br />
   +0x020 ParentTokenId    : _LUID<br />
   +0x028 ExpirationTime   : _LARGE_INTEGER<br />
   +0x030 TokenLock        : Ptr64 _ERESOURCE<br />
   +0x038 ModifiedId       : _LUID<br />
   +0x040 Privileges       : _SEP_TOKEN_PRIVILEGES<br />
   +0x058 AuditPolicy      : _SEP_AUDIT_POLICY<br />
   +0x074 SessionId        : Uint4B<br />
   +0x078 UserAndGroupCount : Uint4B<br />
   +0x07c RestrictedSidCount : Uint4B<br />
   +0x080 VariableLength   : Uint4B<br />
   +0x084 DynamicCharged   : Uint4B<br />
   +0x088 DynamicAvailable : Uint4B<br />
   +0x08c DefaultOwnerIndex : Uint4B<br />
   +0x090 UserAndGroups    : Ptr64 _SID_AND_ATTRIBUTES<br />
   +0x098 RestrictedSids   : Ptr64 _SID_AND_ATTRIBUTES<br />
   +0x0a0 PrimaryGroup     : Ptr64 Void<br />
   +0x0a8 DynamicPart      : Ptr64 Uint4B<br />
   +0x0b0 DefaultDacl      : Ptr64 _ACL<br />
   +0x0b8 TokenType        : _TOKEN_TYPE<br />
   +0x0bc ImpersonationLevel : _SECURITY_IMPERSONATION_LEVEL<br />
   +0x0c0 TokenFlags       : Uint4B<br />
   +0x0c4 TokenInUse       : UChar<br />
   +0x0c8 IntegrityLevelIndex : Uint4B<br />
   +0x0cc MandatoryPolicy  : Uint4B<br />
   +0x0d0 LogonSession     : Ptr64 _SEP_LOGON_SESSION_REFERENCES<br />
   +0x0d8 OriginatingLogonSession : _LUID<br />
   +0x0e0 SidHash          : _SID_AND_ATTRIBUTES_HASH<br />
   +0x1f0 RestrictedSidHash : _SID_AND_ATTRIBUTES_HASH<br />
   +0x300 pSecurityAttributes : Ptr64 _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION<br />
   +0x308 VariablePart     : Uint8B</code></span></p>
<p style="text-align: left;">- Dmitry Vostokov @ <a href="http://www.softwaregeneralist.com/">SoftwareGeneralist.com</a> -</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaregeneralist.com/2010/05/24/reading-notebook-24-may-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reading Notebook: 12-May-10</title>
		<link>http://www.softwaregeneralist.com/2010/05/13/reading-notebook-12-may-10/</link>
		<comments>http://www.softwaregeneralist.com/2010/05/13/reading-notebook-12-may-10/#comments</comments>
		<pubDate>Thu, 13 May 2010 22:44:01 +0000</pubDate>
		<dc:creator>Dmitry Vostokov</dc:creator>
		
		<category><![CDATA[Notes on Windows Internals]]></category>

		<category><![CDATA[Reading Notebook]]></category>

		<guid isPermaLink="false">http://www.softwaregeneralist.com/?p=107</guid>
		<description><![CDATA[Comments in italics are mine and express my own views, thoughts and opinions
Windows Internals by M. Russinovich, D. Solomon and A. Ionescu:
SAS -&#62; winlogon.exe starts LogonUI.exe (p. 455) - Here are winlogon.exe threads on x64 W2K8 R2 before SAS:
THREAD fffffa8003cf7060  Cid 01d0.01d4  Teb: 000007fffffdd000 Win32Thread: fffff900c00df900 WAIT: (UserRequest) UserMode Non-Alertable
    fffffa8004991c90  SynchronizationEvent
Not impersonating
DeviceMap                 fffff8a000008c10
Owning Process            fffffa8003cf65a0       Image:         winlogon.exe
Attached [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><em>Comments in italics are mine and express my own views, thoughts and opinions</em></p>
<p style="text-align: left;"><strong><span>Windows Internals by M. <span>Russinovich</span>, D. Solomon and A. <span>Ionescu</span>:</span></strong></p>
<p style="text-align: left;">SAS -&gt; winlogon.exe starts LogonUI.exe (p. 455) - <em>Here are winlogon.exe threads on x64 W2K8 R2 before SAS:</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa8003cf7060  Cid 01d0.01d4  Teb: 000007fffffdd000 Win32Thread: fffff900c00df900 WAIT: (UserRequest) UserMode Non-Alertable<br />
    fffffa8004991c90  SynchronizationEvent<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa8003cf65a0       Image:         winlogon.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      8831           Ticks: 21731 (0:00:05:39.005)<br />
Context Switch Count      424                 LargeStack<br />
UserTime                  00:00:00.015<br />
KernelTime                00:00:00.015<br />
Win32 Start Address winlogon!WinMainCRTStartup (0x00000000ff36ec08)<br />
Stack Init fffff88003595db0 Current fffff88003595900<br />
Base fffff88003596000 Limit fffff8800358c000 Call 0<br />
Priority 15 BasePriority 15 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5<br />
Kernel stack not resident.<br />
Child-SP          RetAddr           Call Site<br />
fffff880`03595940 fffff800`01ac3752 nt!KiSwapContext+0x7a<br />
fffff880`03595a80 fffff800`01ac58af nt!KiCommitThreadWait+0x1d2<br />
fffff880`03595b10 fffff800`01db7db2 nt!KeWaitForSingleObject+0x19f<br />
fffff880`03595bb0 fffff800`01abb853 nt!NtWaitForSingleObject+0xb2<br />
fffff880`03595c20 00000000`77bafefa nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`03595c20)<br />
00000000`0018f778 000007fe`fdc910ac ntdll!NtWaitForSingleObject+0xa<br />
00000000`0018f780 00000000`ff3619ad KERNELBASE!WaitForSingleObjectEx+0x79<br />
00000000`0018f820 00000000`ff3616e8 winlogon!SignalManagerWaitForSignal+0x135<br />
00000000`0018f860 00000000`ff36b8b0 winlogon!StateMachineRun+0x404<br />
00000000`0018fb80 00000000`ff36ed85 winlogon!WinMain+0x13a3<br />
00000000`0018fcf0 00000000`77a5f56d winlogon!I_WMsgkSendMessage+0x252<br />
00000000`0018fdb0 00000000`77b93281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`0018fde0 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa800498a060  Cid 01d0.0320  Teb: 000007fffffd7000 Win32Thread: 0000000000000000 WAIT: (UserRequest) UserMode Alertable<br />
    fffffa800497bef0  SynchronizationTimer<br />
    fffffa8004988060  SynchronizationTimer<br />
    fffffa8004bfe2a0  NotificationEvent<br />
    fffffa8003c783b0  SynchronizationEvent<br />
    fffffa8003c78310  SynchronizationEvent<br />
    fffffa8003c78450  SynchronizationEvent<br />
    fffffa80049894c0  SynchronizationTimer<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa8003cf65a0       Image:         winlogon.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      19271          Ticks: 11291 (0:00:02:56.140)<br />
Context Switch Count      16<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address ntdll!TppWaiterpThread (0x0000000077b79a90)<br />
Stack Init fffff88004006db0 Current fffff88004005fd0<br />
Base fffff88004007000 Limit fffff88004001000 Call 0<br />
Priority 13 BasePriority 13 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`04006010 fffff800`01ac3752 nt!KiSwapContext+0x7a<br />
fffff880`04006150 fffff800`01abfc4b nt!KiCommitThreadWait+0x1d2<br />
fffff880`040061e0 fffff800`01db8ecf nt!KeWaitForMultipleObjects+0x271<br />
fffff880`04006490 fffff800`01db97d6 nt!ObpWaitForMultipleObjects+0x294<br />
fffff880`04006960 fffff800`01abb853 nt!NtWaitForMultipleObjects+0xe5<br />
fffff880`04006bb0 00000000`77bb046a nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`04006c20)<br />
00000000`0139f848 00000000`77b79bd7 ntdll!NtWaitForMultipleObjects+0xa<br />
00000000`0139f850 00000000`77a5f56d ntdll!TppWaiterpThread+0x14d<br />
00000000`0139faf0 00000000`77b93281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`0139fb20 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa8004ed7060  Cid 01d0.0a58  Teb: 000007fffffdb000 Win32Thread: 0000000000000000 WAIT: (WrQueue) UserMode Alertable<br />
    fffffa800489ac20  QueueObject<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa8003cf65a0       Image:         winlogon.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      27861          Ticks: 2701 (0:00:00:42.135)<br />
Context Switch Count      4<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address ntdll!TppWorkerThread (0x0000000077b78f00)<br />
Stack Init fffff88003555db0 Current fffff880035557d0<br />
Base fffff88003556000 Limit fffff88003550000 Call 0<br />
Priority 13 BasePriority 13 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`03555810 fffff800`01ac3752 nt!KiSwapContext+0x7a<br />
fffff880`03555950 fffff800`01ac71c1 nt!KiCommitThreadWait+0x1d2<br />
fffff880`035559e0 fffff800`01db89d7 nt!KeRemoveQueueEx+0x301<br />
fffff880`03555a90 fffff800`01acc996 nt!IoRemoveIoCompletion+0x47<br />
fffff880`03555b20 fffff800`01abb853 nt!NtWaitForWorkViaWorkerFactory+0x285<br />
fffff880`03555c20 00000000`77bb17ba nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`03555c20)<br />
00000000`00dcfa18 00000000`77b7914b ntdll!NtWaitForWorkViaWorkerFactory+0xa<br />
00000000`00dcfa20 00000000`77a5f56d ntdll!TppWorkerThread+0x2c9<br />
00000000`00dcfd20 00000000`77b93281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`00dcfd50 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><em>Here are main threads from both processes on x64 W2K8 R2 after SAS (I brought change password dialog):</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa8004888770  Cid 01c0.01c4  Teb: 000007fffffde000 Win32Thread: fffff900c00d9c30 WAIT: (UserRequest) UserMode Non-Alertable<br />
   fffffa80049c25c0  SynchronizationEvent<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa80048879d0       Image:         winlogon.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34664851       Ticks: 1875 (0:00:00:29.250)<br />
Context Switch Count      3202                 LargeStack<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.218<br />
Win32 Start Address winlogon!WinMainCRTStartup (0x00000000ffc2ec08)<br />
Stack Init fffff880031acdb0 Current fffff880031ac900<br />
Base fffff880031ad000 Limit fffff880031a7000 Call 0<br />
Priority 15 BasePriority 15 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`031ac940 fffff800`01ad6752 nt!KiSwapContext+0x7a<br />
fffff880`031aca80 fffff800`01ad88af nt!KiCommitThreadWait+0x1d2<br />
fffff880`031acb10 fffff800`01dcadb2 nt!KeWaitForSingleObject+0x19f<br />
fffff880`031acbb0 fffff800`01ace853 nt!NtWaitForSingleObject+0xb2<br />
fffff880`031acc20 00000000`76e2fefa nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`031acc20)<br />
00000000`0023f398 000007fe`fd0810ac ntdll!NtWaitForSingleObject+0xa<br />
00000000`0023f3a0 00000000`ffc219ad KERNELBASE!WaitForSingleObjectEx+0x79<br />
00000000`0023f440 00000000`ffc216e8 winlogon!SignalManagerWaitForSignal+0x135<br />
00000000`0023f480 00000000`ffc2b8b0 winlogon!StateMachineRun+0x404<br />
00000000`0023f7a0 00000000`ffc2ed85 winlogon!WinMain+0x13a3<br />
00000000`0023f910 00000000`76bdf56d winlogon!I_WMsgkSendMessage+0x252<br />
00000000`0023f9d0 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`0023fa00 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa80049ba060  Cid 01c0.0304  Teb: 000007fffffd7000 Win32Thread: 0000000000000000 WAIT: (UserRequest) UserMode Alertable<br />
    fffffa80049b87e0  SynchronizationTimer<br />
    fffffa80049b4650  SynchronizationTimer<br />
    fffffa8004e81e20  NotificationEvent<br />
    fffffa8004edcbf0  SynchronizationEvent<br />
    fffffa8004edcb50  SynchronizationEvent<br />
    fffffa8004edcc90  SynchronizationEvent<br />
    fffffa80049b8670  SynchronizationTimer<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa80048879d0       Image:         winlogon.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34428081       Ticks: 238645 (0:01:02:02.885)<br />
Context Switch Count      175<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address ntdll!TppWaiterpThread (0x0000000076df9a90)<br />
Stack Init fffff88004193db0 Current fffff88004192fd0<br />
Base fffff88004194000 Limit fffff8800418e000 Call 0<br />
Priority 13 BasePriority 13 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5<br />
Kernel stack not resident.<br />
Child-SP          RetAddr           Call Site<br />
fffff880`04193010 fffff800`01ad6752 nt!KiSwapContext+0x7a<br />
fffff880`04193150 fffff800`01ad2c4b nt!KiCommitThreadWait+0x1d2<br />
fffff880`041931e0 fffff800`01dcbecf nt!KeWaitForMultipleObjects+0x271<br />
fffff880`04193490 fffff800`01dcc7d6 nt!ObpWaitForMultipleObjects+0x294<br />
fffff880`04193960 fffff800`01ace853 nt!NtWaitForMultipleObjects+0xe5<br />
fffff880`04193bb0 00000000`76e3046a nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`04193c20)<br />
00000000`00d2fb38 00000000`76df9bd7 ntdll!NtWaitForMultipleObjects+0xa<br />
00000000`00d2fb40 00000000`76bdf56d ntdll!TppWaiterpThread+0x14d<br />
00000000`00d2fde0 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`00d2fe10 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><span style="color: blue;"><code>THREAD fffffa8005b8e810  Cid 01c0.12d4  Teb: 000007fffffdc000 Win32Thread: fffff900c37a6250 WAIT: (WrLpcReply) UserMode Non-Alertable<br />
    fffffa8005b8ebd0  Semaphore Limit 0x1<br />
Waiting for reply to ALPC Message <span style="color: magenta;">fffff8a00c87e750</span> : queued at port fffffa800661ec60 : owned by process fffffa8005f442b0<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa80048879d0       Image:         winlogon.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34664851       Ticks: 1875 (0:00:00:29.250)<br />
Context Switch Count      150                 LargeStack<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address ntdll!TppWorkerThread (0&#215;0000000076df8f00)<br />
Stack Init fffff88006c8edb0 Current fffff88006c8e620<br />
Base fffff88006c8f000 Limit fffff88006c87000 Call 0<br />
Priority 14 BasePriority 13 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`06c8e660 fffff800`01ad6752 nt!KiSwapContext+0&#215;7a<br />
fffff880`06c8e7a0 fffff800`01ad88af nt!KiCommitThreadWait+0&#215;1d2<br />
fffff880`06c8e830 fffff800`01aedbef nt!KeWaitForSingleObject+0&#215;19f<br />
fffff880`06c8e8d0 fffff800`01dd6a36 nt!AlpcpSignalAndWait+0&#215;8f<br />
fffff880`06c8e980 fffff800`01dd49c0 nt!AlpcpReceiveSynchronousReply+0&#215;46<br />
fffff880`06c8e9e0 fffff800`01dd1f3b nt!AlpcpProcessSynchronousRequest+0&#215;33d<br />
fffff880`06c8eb00 fffff800`01ace853 nt!NtAlpcSendWaitReceivePort+0&#215;1ab<br />
fffff880`06c8ebb0 00000000`76e3070a nt!KiSystemServiceCopyEnd+0&#215;13 (TrapFrame @ fffff880`06c8ec20)<br />
00000000`0103f298 000007fe`fea8aa76 ntdll!ZwAlpcSendWaitReceivePort+0xa<br />
00000000`0103f2a0 000007fe`feb2cb64 RPCRT4!LRPC_CCALL::SendReceive+0&#215;156<br />
00000000`0103f360 000007fe`feb2cd55 RPCRT4!NdrpClientCall3+0&#215;244<br />
00000000`0103f620 00000000`ffc24979 RPCRT4!NdrClientCall3+0xf2<br />
00000000`0103f9b0 00000000`ffc4e781 winlogon!WluiRequestCredentials+0&#215;71<br />
00000000`0103fa20 00000000`ffc21d04 winlogon!WLGeneric_Request_Change_Credz_Execute+0xa5<br />
00000000`0103fa90 00000000`76df0fb4 winlogon!StateMachineWorkerCallback+0&#215;7f<br />
00000000`0103fac0 00000000`76df4b1f ntdll!TppWorkpExecuteCallback+0xa4<br />
00000000`0103fb20 00000000`76bdf56d ntdll!TppWorkerThread+0&#215;6c9<br />
00000000`0103fe20 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`0103fe50 00000000`00000000 ntdll!RtlUserThreadStart+0&#215;1d</code></span></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa8006480640  Cid 01c0.131c  Teb: 000007fffffd9000 Win32Thread: 0000000000000000 WAIT: (WrQueue) UserMode Alertable<br />
    fffffa80042479a0  QueueObject<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa80048879d0       Image:         winlogon.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34664380       Ticks: 2346 (0:00:00:36.597)<br />
Context Switch Count      2<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address ntdll!TppWorkerThread (0x0000000076df8f00)<br />
Stack Init fffff8800715ddb0 Current fffff8800715d7d0<br />
Base fffff8800715e000 Limit fffff88007158000 Call 0<br />
Priority 13 BasePriority 13 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`0715d810 fffff800`01ad6752 nt!KiSwapContext+0x7a<br />
fffff880`0715d950 fffff800`01ada1c1 nt!KiCommitThreadWait+0x1d2<br />
fffff880`0715d9e0 fffff800`01dcb9d7 nt!KeRemoveQueueEx+0x301<br />
fffff880`0715da90 fffff800`01adf996 nt!IoRemoveIoCompletion+0x47<br />
fffff880`0715db20 fffff800`01ace853 nt!NtWaitForWorkViaWorkerFactory+0x285<br />
fffff880`0715dc20 00000000`76e317ba nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`0715dc20)<br />
00000000`010bf908 00000000`76df914b ntdll!NtWaitForWorkViaWorkerFactory+0xa<br />
00000000`010bf910 00000000`76bdf56d ntdll!TppWorkerThread+0x2c9<br />
00000000`010bfc10 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`010bfc40 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa8005916290  Cid 01c0.0c04  Teb: 000007fffffd5000 Win32Thread: 0000000000000000 WAIT: (WrQueue) UserMode Alertable<br />
    fffffa80042479a0  QueueObject<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa80048879d0       Image:         winlogon.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34664851       Ticks: 1875 (0:00:00:29.250)<br />
Context Switch Count      3<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address ntdll!TppWorkerThread (0x0000000076df8f00)<br />
Stack Init fffff88007126db0 Current fffff880071267d0<br />
Base fffff88007127000 Limit fffff88007121000 Call 0<br />
Priority 13 BasePriority 13 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`07126810 fffff800`01ad6752 nt!KiSwapContext+0x7a<br />
fffff880`07126950 fffff800`01ada1c1 nt!KiCommitThreadWait+0x1d2<br />
fffff880`071269e0 fffff800`01dcb9d7 nt!KeRemoveQueueEx+0x301<br />
fffff880`07126a90 fffff800`01adf996 nt!IoRemoveIoCompletion+0x47<br />
fffff880`07126b20 fffff800`01ace853 nt!NtWaitForWorkViaWorkerFactory+0x285<br />
fffff880`07126c20 00000000`76e317ba nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`07126c20)<br />
00000000`009cfaa8 00000000`76df914b ntdll!NtWaitForWorkViaWorkerFactory+0xa<br />
00000000`009cfab0 00000000`76bdf56d ntdll!TppWorkerThread+0x2c9<br />
00000000`009cfdb0 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`009cfde0 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><em>We now see the new thread <span style="color: blue;">fffffa8005b8e810</span> waiting for an ALPC message <span style="color: magenta;">fffff8a00c87e750</span>:</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>0: kd&gt; !alpc /m fffff8a00c87e750</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>Message @ fffff8a00c87e750<br />
  MessageID             : 0x0534 (1332)<br />
  CallbackID            : 0x14152C5 (21058245)<br />
  SequenceNumber        : 0x00000006 (6)<br />
  Type                  : LPC_REQUEST<br />
  DataLength            : 0x0060 (96)<br />
  TotalLength           : 0x0088 (136)<br />
  Canceled              : No<br />
  Release               : No<br />
  ReplyWaitReply        : No<br />
  Continuation          : Yes<br />
  OwnerPort             : fffffa80065696c0 [ALPC_CLIENT_COMMUNICATION_PORT]<br />
  WaitingThread         : fffffa8005b8e810<br />
  QueueType             : ALPC_MSGQUEUE_PENDING<br />
  QueuePort             : fffffa800661ec60 [ALPC_CONNECTION_PORT]<br />
<span style="color: blue;">  QueuePortOwnerProcess : fffffa8005f442b0 (LogonUI.exe)</span><br />
<span style="color: magenta;">  ServerThread          : fffffa8005a9b2a0</span><br />
  QuotaCharged          : No<br />
  CancelQueuePort       : 0000000000000000<br />
  CancelSequencePort    : 0000000000000000<br />
  CancelSequenceNumber  : 0&#215;00000000 (0)<br />
  ClientContext         : 00000000003f5b30<br />
  ServerContext         : 0000000000000000<br />
  PortContext           : 00000000015e2640<br />
  CancelPortContext     : 0000000000000000<br />
  SecurityData          : 0000000000000000<br />
  View                  : 0000000000000000</code></span></p>
<p style="text-align: left;"><em>The server thread is fffffa8005a9b2a0 and is owned by LogonUI.exe. Here are all threads in that process where I highlighted credential providers:</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa8005f47b60  Cid 06d0.13e0  Teb: 000007fffffde000 Win32Thread: fffff900c1d6ec30 WAIT: (UserRequest) UserMode Non-Alertable<br />
    fffffa80065be260  SynchronizationEvent<br />
    fffffa8005bf6240  SynchronizationEvent<br />
    fffffa8005bcbc70  SynchronizationEvent<br />
    fffffa80052a9dc0  SynchronizationEvent<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa8005f442b0       Image:         LogonUI.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34666693       Ticks: 33 (0:00:00:00.514)<br />
Context Switch Count      722                 LargeStack<br />
UserTime                  00:00:00.171<br />
KernelTime                00:00:00.140<br />
Win32 Start Address LogonUI!wWinMainCRTStartup (0x00000000ffb45c58)<br />
Stack Init fffff88004911db0 Current fffff88004910fd0<br />
Base fffff88004912000 Limit fffff88004908000 Call 0<br />
Priority 15 BasePriority 13 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`04911010 fffff800`01ad6752 nt!KiSwapContext+0x7a<br />
fffff880`04911150 fffff800`01ad2c4b nt!KiCommitThreadWait+0x1d2<br />
fffff880`049111e0 fffff800`01dcbecf nt!KeWaitForMultipleObjects+0x271<br />
fffff880`04911490 fffff800`01dcc7d6 nt!ObpWaitForMultipleObjects+0x294<br />
fffff880`04911960 fffff800`01ace853 nt!NtWaitForMultipleObjects+0xe5<br />
fffff880`04911bb0 00000000`76e3046a nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`04911c20)<br />
00000000`001bf708 000007fe`fd0813a6 ntdll!NtWaitForMultipleObjects+0xa<br />
00000000`001bf710 00000000`76be3143 KERNELBASE!WaitForMultipleObjectsEx+0xe8<br />
00000000`001bf810 00000000`76cfbc3d kernel32!WaitForMultipleObjectsExImplementation+0xb3<br />
00000000`001bf8a0 000007fe`fae19ecd USER32!RealMsgWaitForMultipleObjectsEx+0x12a<br />
00000000`001bf940 000007fe`fae19d8e DUser!CoreSC::DUIMsgWaitForMultipleObjectsEx+0x17c<br />
00000000`001bf9f0 00000000`76cf9079 DUser!MphMsgWaitForMultipleObjectsEx+0x7a<br />
00000000`001bfa30 000007fe`fb8e407b USER32!MsgWaitForMultipleObjectsEx+0x37<br />
<span style="color: blue;">00000000`001bfa70 000007fe`fb8e4f6c authui!CLogonFrame::DoModal+0&#215;67<br />
00000000`001bfaf0 000007fe`fb8e50cf authui!CLogonUI_CreateThenDoModalThenDestroy+0&#215;299<br />
00000000`001bfb50 00000000`ffb454df authui!CLogonUI::DoModal+0&#215;73</span><br />
00000000`001bfb80 00000000`ffb45ae6 LogonUI!wWinMain+0xfb<br />
00000000`001bfbe0 00000000`76bdf56d LogonUI!ParseCommandLineToStringArrayLocalAlloc+0&#215;33a<br />
00000000`001bfca0 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`001bfcd0 00000000`00000000 ntdll!RtlUserThreadStart+0&#215;1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa8006595720  Cid 06d0.1158  Teb: 000007fffffdc000 Win32Thread: fffff900c35105f0 WAIT: (UserRequest) UserMode Non-Alertable<br />
    fffffa8005cad160  SynchronizationEvent<br />
    fffffa8005618d30  SynchronizationEvent<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa8005f442b0       Image:         LogonUI.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34664381       Ticks: 2345 (0:00:00:36.582)<br />
Context Switch Count      2                 LargeStack<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address msvcrt!endthreadex (0x000007feff0573fc)<br />
Stack Init fffff88005638db0 Current fffff88005637fd0<br />
Base fffff88005639000 Limit fffff88005632000 Call 0<br />
Priority 13 BasePriority 13 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`05638010 fffff800`01ad6752 nt!KiSwapContext+0x7a<br />
fffff880`05638150 fffff800`01ad2c4b nt!KiCommitThreadWait+0x1d2<br />
fffff880`056381e0 fffff800`01dcbecf nt!KeWaitForMultipleObjects+0x271<br />
fffff880`05638490 fffff800`01dcc7d6 nt!ObpWaitForMultipleObjects+0x294<br />
fffff880`05638960 fffff800`01ace853 nt!NtWaitForMultipleObjects+0xe5<br />
fffff880`05638bb0 00000000`76e3046a nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`05638c20)<br />
00000000`00eaf4d8 000007fe`fd0813a6 ntdll!NtWaitForMultipleObjects+0xa<br />
00000000`00eaf4e0 00000000`76be3143 KERNELBASE!WaitForMultipleObjectsEx+0xe8<br />
00000000`00eaf5e0 00000000`76cfbc3d kernel32!WaitForMultipleObjectsExImplementation+0xb3<br />
00000000`00eaf670 000007fe`fae114e6 USER32!RealMsgWaitForMultipleObjectsEx+0x12a<br />
00000000`00eaf710 000007fe`fae116b2 DUser!CoreSC::Wait+0x62<br />
00000000`00eaf760 000007fe`fae205dd DUser!CoreSC::xwProcessNL+0xed<br />
00000000`00eaf7d0 000007fe`fae20500 DUser!GetMessageExA+0x7b<br />
00000000`00eaf820 000007fe`ff0542bf DUser!ResourceManager::SharedThreadProc+0xe8<br />
00000000`00eaf8b0 000007fe`ff057459 msvcrt!endthreadex+0x47<br />
00000000`00eaf8e0 00000000`76bdf56d msvcrt!endthreadex+0xe0<br />
00000000`00eaf910 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`00eaf940 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa8006646060  Cid 06d0.1174  Teb: 000007fffffda000 Win32Thread: fffff900c397bc30 WAIT: (UserRequest) UserMode Non-Alertable<br />
    fffffa80059522e0  SynchronizationEvent<br />
    fffffa80061cf2d0  SynchronizationEvent<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa8005f442b0       Image:         LogonUI.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34664855       Ticks: 1871 (0:00:00:29.187)<br />
Context Switch Count      101                 LargeStack<br />
UserTime                  00:00:00.015<br />
KernelTime                00:00:00.015<br />
Win32 Start Address authui!CCredentialProviderThread::_sThreadProc (0x000007fefb8e51c0)<br />
Stack Init fffff880057addb0 Current fffff880057acfd0<br />
Base fffff880057ae000 Limit fffff880057a6000 Call 0<br />
Priority 15 BasePriority 13 UnusualBoost 0 ForegroundBoost 1 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`057ad010 fffff800`01ad6752 nt!KiSwapContext+0x7a<br />
fffff880`057ad150 fffff800`01ad2c4b nt!KiCommitThreadWait+0x1d2<br />
fffff880`057ad1e0 fffff800`01dcbecf nt!KeWaitForMultipleObjects+0x271<br />
fffff880`057ad490 fffff800`01dcc7d6 nt!ObpWaitForMultipleObjects+0x294<br />
fffff880`057ad960 fffff800`01ace853 nt!NtWaitForMultipleObjects+0xe5<br />
fffff880`057adbb0 00000000`76e3046a nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`057adc20)<br />
00000000`02c5f9b8 000007fe`fd0813a6 ntdll!NtWaitForMultipleObjects+0xa<br />
00000000`02c5f9c0 00000000`76be3143 KERNELBASE!WaitForMultipleObjectsEx+0xe8<br />
00000000`02c5fac0 00000000`76cfbc3d kernel32!WaitForMultipleObjectsExImplementation+0xb3<br />
00000000`02c5fb50 00000000`76cf905a USER32!RealMsgWaitForMultipleObjectsEx+0x12a<br />
00000000`02c5fbf0 000007fe`febdb46a USER32!MsgWaitForMultipleObjectsEx+0x46<br />
00000000`02c5fc30 000007fe`fecfa542 ole32!CCliModalLoop::BlockFn+0xc2<br />
00000000`02c5fc80 000007fe`fb8e4bc1 ole32!CoWaitForMultipleHandles+0x102<br />
<span style="color: blue;">00000000`02c5fd90 000007fe`fb8e4a4a authui!InternalCoWaitForSingleHandle+0&#215;31<br />
00000000`02c5fdd0 000007fe`fb8e51c9 authui!CCredentialProviderThread::_vThreadProc+0xbf<br />
00000000`02c5fe10 00000000`76bdf56d authui!CCredentialProviderThread::_sThreadProc+0&#215;9</span><br />
00000000`02c5fe40 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`02c5fe70 00000000`00000000 ntdll!RtlUserThreadStart+0&#215;1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code><span style="color: magenta;">THREAD fffffa8005a9b2a0</span>  Cid 06d0.1248  Teb: 000007fffffd4000 Win32Thread: fffff900c397b850 WAIT: (UserRequest) UserMode Non-Alertable<br />
    fffffa800559c800  NotificationEvent<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa8005f442b0       Image:         LogonUI.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34664851       Ticks: 1875 (0:00:00:29.250)<br />
Context Switch Count      12                 LargeStack<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address ntdll!TppWorkerThread (0&#215;0000000076df8f00)<br />
Stack Init fffff88005871db0 Current fffff88005871900<br />
Base fffff88005872000 Limit fffff8800586b000 Call 0<br />
Priority 15 BasePriority 13 UnusualBoost 0 ForegroundBoost 2 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`05871940 fffff800`01ad6752 nt!KiSwapContext+0&#215;7a<br />
fffff880`05871a80 fffff800`01ad88af nt!KiCommitThreadWait+0&#215;1d2<br />
fffff880`05871b10 fffff800`01dcadb2 nt!KeWaitForSingleObject+0&#215;19f<br />
fffff880`05871bb0 fffff800`01ace853 nt!NtWaitForSingleObject+0xb2<br />
fffff880`05871c20 00000000`76e2fefa nt!KiSystemServiceCopyEnd+0&#215;13 (TrapFrame @ fffff880`05871c20)<br />
00000000`02aee898 000007fe`fd0810ac ntdll!NtWaitForSingleObject+0xa<br />
00000000`02aee8a0 000007fe`fb8e4586 KERNELBASE!WaitForSingleObjectEx+0&#215;79<br />
<span style="color: blue;">00000000`02aee940 000007fe`fb8e891c authui!InternalWaitForSingleObject+0&#215;26<br />
00000000`02aee980 000007fe`fb8e8ac4 authui!WPP_SF_qqddd+0&#215;157d<br />
00000000`02aee9e0 000007fe`fea7c7f5 authui!WluirRequestCredentials+0&#215;44</span><br />
00000000`02aeea20 000007fe`feb2b62e RPCRT4!Invoke+0&#215;65<br />
00000000`02aeeaa0 000007fe`fea74070 RPCRT4!Ndr64StubWorker+0&#215;61b<br />
00000000`02aef060 000007fe`fea79c24 RPCRT4!NdrServerCallAll+0&#215;40<br />
00000000`02aef0b0 000007fe`fea79d86 RPCRT4!DispatchToStubInCNoAvrf+0&#215;14<br />
00000000`02aef0e0 000007fe`fea7c44b RPCRT4!RPC_INTERFACE::DispatchToStubWorker+0&#215;146<br />
00000000`02aef200 000007fe`fea7c38b RPCRT4!RPC_INTERFACE::DispatchToStub+0&#215;9b<br />
00000000`02aef240 000007fe`fea7c322 RPCRT4!RPC_INTERFACE::DispatchToStubWithObject+0&#215;5b<br />
00000000`02aef2c0 000007fe`fea7a11d RPCRT4!LRPC_SCALL::DispatchRequest+0&#215;422<br />
00000000`02aef3a0 000007fe`fea87ddf RPCRT4!LRPC_SCALL::HandleRequest+0&#215;20d<br />
00000000`02aef4d0 000007fe`fea87995 RPCRT4!LRPC_ADDRESS::ProcessIO+0&#215;3bf<br />
00000000`02aef610 00000000`76dfb43b RPCRT4!LrpcIoComplete+0xa5<br />
00000000`02aef6a0 00000000`76df923f ntdll!TppAlpcpExecuteCallback+0&#215;26b<br />
00000000`02aef730 00000000`76bdf56d ntdll!TppWorkerThread+0&#215;3f8<br />
00000000`02aefa30 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`02aefa60 00000000`00000000 ntdll!RtlUserThreadStart+0&#215;1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa8005941a10  Cid 06d0.0f10  Teb: 000007fffffae000 Win32Thread: 0000000000000000 WAIT: (UserRequest) UserMode Alertable<br />
    fffffa800663a9a0  SynchronizationTimer<br />
    fffffa8005881650  SynchronizationTimer<br />
    fffffa8006577ef0  SynchronizationTimer<br />
    fffffa8005a93bd0  NotificationEvent<br />
    fffffa80063f6450  SynchronizationEvent<br />
    fffffa80058fe4c0  SynchronizationEvent<br />
    fffffa80064c0290  SynchronizationEvent<br />
    fffffa8004e49e90  NotificationEvent<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa8005f442b0       Image:         LogonUI.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34664421       Ticks: 2305 (0:00:00:35.958)<br />
Context Switch Count      11<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address ntdll!TppWaiterpThread (0x0000000076df9a90)<br />
Stack Init fffff88006946db0 Current fffff88006945fd0<br />
Base fffff88006947000 Limit fffff88006941000 Call 0<br />
Priority 15 BasePriority 13 UnusualBoost 0 ForegroundBoost 2 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`06946010 fffff800`01ad6752 nt!KiSwapContext+0x7a<br />
fffff880`06946150 fffff800`01ad2c4b nt!KiCommitThreadWait+0x1d2<br />
fffff880`069461e0 fffff800`01dcbecf nt!KeWaitForMultipleObjects+0x271<br />
fffff880`06946490 fffff800`01dcc7d6 nt!ObpWaitForMultipleObjects+0x294<br />
fffff880`06946960 fffff800`01ace853 nt!NtWaitForMultipleObjects+0xe5<br />
fffff880`06946bb0 00000000`76e3046a nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`06946c20)<br />
00000000`02dbf718 00000000`76df9bd7 ntdll!NtWaitForMultipleObjects+0xa<br />
00000000`02dbf720 00000000`76bdf56d ntdll!TppWaiterpThread+0x14d<br />
00000000`02dbf9c0 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`02dbf9f0 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa80056de060  Cid 06d0.0ba8  Teb: 000007fffffac000 Win32Thread: 0000000000000000 WAIT: (WrQueue) UserMode Alertable<br />
    fffffa8005f7d3e0  QueueObject<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa8005f442b0       Image:         LogonUI.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34664389       Ticks: 2337 (0:00:00:36.457)<br />
Context Switch Count      5<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address ntdll!TppWorkerThread (0x0000000076df8f00)<br />
Stack Init fffff8800569ddb0 Current fffff8800569d7d0<br />
Base fffff8800569e000 Limit fffff88005698000 Call 0<br />
Priority 13 BasePriority 13 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`0569d810 fffff800`01ad6752 nt!KiSwapContext+0x7a<br />
fffff880`0569d950 fffff800`01ada1c1 nt!KiCommitThreadWait+0x1d2<br />
fffff880`0569d9e0 fffff800`01dcb9d7 nt!KeRemoveQueueEx+0x301<br />
fffff880`0569da90 fffff800`01adf996 nt!IoRemoveIoCompletion+0x47<br />
fffff880`0569db20 fffff800`01ace853 nt!NtWaitForWorkViaWorkerFactory+0x285<br />
fffff880`0569dc20 00000000`76e317ba nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`0569dc20)<br />
00000000`035cfbb8 00000000`76df914b ntdll!NtWaitForWorkViaWorkerFactory+0xa<br />
00000000`035cfbc0 00000000`76bdf56d ntdll!TppWorkerThread+0x2c9<br />
00000000`035cfec0 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`035cfef0 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa8005ccfa10  Cid 06d0.03a0  Teb: 000007fffffd8000 Win32Thread: 0000000000000000 WAIT: (WrQueue) UserMode Alertable<br />
    fffffa8005f7d3e0  QueueObject<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa8005f442b0       Image:         LogonUI.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34664420       Ticks: 2306 (0:00:00:35.973)<br />
Context Switch Count      7<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address ntdll!TppWorkerThread (0x0000000076df8f00)<br />
Stack Init fffff8800459bdb0 Current fffff8800459b7d0<br />
Base fffff8800459c000 Limit fffff88004596000 Call 0<br />
Priority 15 BasePriority 13 UnusualBoost 0 ForegroundBoost 2 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`0459b810 fffff800`01ad6752 nt!KiSwapContext+0x7a<br />
fffff880`0459b950 fffff800`01ada1c1 nt!KiCommitThreadWait+0x1d2<br />
fffff880`0459b9e0 fffff800`01dcb9d7 nt!KeRemoveQueueEx+0x301<br />
fffff880`0459ba90 fffff800`01adf996 nt!IoRemoveIoCompletion+0x47<br />
fffff880`0459bb20 fffff800`01ace853 nt!NtWaitForWorkViaWorkerFactory+0x285<br />
fffff880`0459bc20 00000000`76e317ba nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`0459bc20)<br />
00000000`02e5f8c8 00000000`76df914b ntdll!NtWaitForWorkViaWorkerFactory+0xa<br />
00000000`02e5f8d0 00000000`76bdf56d ntdll!TppWorkerThread+0x2c9<br />
00000000`02e5fbd0 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`02e5fc00 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa800662a800  Cid 06d0.0a54  Teb: 000007fffffaa000 Win32Thread: 0000000000000000 WAIT: (DelayExecution) UserMode Non-Alertable<br />
    fffffa800662aad8  Semaphore Limit 0x2<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa8005f442b0       Image:         LogonUI.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34664389       Ticks: 2337 (0:00:00:36.457)<br />
Context Switch Count      1<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address ole32!CRpcThreadCache::RpcWorkerThreadEntry (0x000007fefebf3570)<br />
Stack Init fffff8800568fdb0 Current fffff8800568f970<br />
Base fffff88005690000 Limit fffff8800568a000 Call 0<br />
Priority 13 BasePriority 13 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`0568f9b0 fffff800`01ad6752 nt!KiSwapContext+0x7a<br />
fffff880`0568faf0 fffff800`01ad8e56 nt!KiCommitThreadWait+0x1d2<br />
fffff880`0568fb80 fffff800`01dcacee nt!KeDelayExecutionThread+0x186<br />
fffff880`0568fbf0 fffff800`01ace853 nt!NtDelayExecution+0x59<br />
fffff880`0568fc20 00000000`76e301fa nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`0568fc20)<br />
00000000`0371fa68 000007fe`fd081203 ntdll!NtDelayExecution+0xa<br />
00000000`0371fa70 000007fe`febeea00 KERNELBASE!SleepEx+0xab<br />
00000000`0371fb10 000007fe`febf2046 ole32!CROIDTable::WorkerThreadLoop+0x10<br />
00000000`0371fb40 000007fe`febf358a ole32!CRpcThread::WorkerLoop+0x1e<br />
00000000`0371fb80 00000000`76bdf56d ole32!CRpcThreadCache::RpcWorkerThreadEntry+0x1a<br />
00000000`0371fbb0 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`0371fbe0 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa80063a4490  Cid 06d0.0ca0  Teb: 000007fffffa8000 Win32Thread: fffff900c1fffc30 WAIT: (WrLpcReceive) UserMode Non-Alertable<br />
    fffffa80063a4850  Semaphore Limit 0x1<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa8005f442b0       Image:         LogonUI.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34664404       Ticks: 2322 (0:00:00:36.223)<br />
Context Switch Count      11                 LargeStack<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address MSCTF!CCtfServerPort::StaticServerThread (0x000007fefe959274)<br />
Stack Init fffff88005b30db0 Current fffff88005b30750<br />
Base fffff88005b31000 Limit fffff88005b2a000 Call 0<br />
Priority 15 BasePriority 13 UnusualBoost 0 ForegroundBoost 2 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`05b30790 fffff800`01ad6752 nt!KiSwapContext+0x7a<br />
fffff880`05b308d0 fffff800`01ad88af nt!KiCommitThreadWait+0x1d2<br />
fffff880`05b30960 fffff800`01dcf329 nt!KeWaitForSingleObject+0x19f<br />
fffff880`05b30a00 fffff800`01dd0a37 nt!AlpcpReceiveMessagePort+0x189<br />
fffff880`05b30a60 fffff800`01dd1f76 nt!AlpcpReceiveMessage+0x2d4<br />
fffff880`05b30b00 fffff800`01ace853 nt!NtAlpcSendWaitReceivePort+0x1e6<br />
fffff880`05b30bb0 00000000`76e3070a nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`05b30c20)<br />
00000000`0390e7b8 000007fe`fe9426a9 ntdll!ZwAlpcSendWaitReceivePort+0xa<br />
00000000`0390e7c0 000007fe`fe959417 MSCTF!CCtfServerPort::ServerLoop+0x16c<br />
00000000`0390f8e0 000007fe`fe959296 MSCTF!CCtfServerPort::ServerThread+0x15b<br />
00000000`0390fc20 00000000`76bdf56d MSCTF!CCtfServerPort::StaticServerThread+0x28<br />
00000000`0390fc50 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`0390fc80 00000000`00000000 ntdll!RtlUserThreadStart+0x1d</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>THREAD fffffa800489eb60  Cid 06d0.13b8  Teb: 000007fffffa6000 Win32Thread: 0000000000000000 WAIT: (UserRequest) UserMode Non-Alertable<br />
    fffffa8005833be0  NotificationEvent<br />
    fffffa8005a03ad0  SynchronizationEvent<br />
Not impersonating<br />
DeviceMap                 fffff8a000008c10<br />
Owning Process            fffffa8005f442b0       Image:         LogonUI.exe<br />
Attached Process          N/A            Image:         N/A<br />
Wait Start TickCount      34664421       Ticks: 2305 (0:00:00:35.958)<br />
Context Switch Count      19<br />
UserTime                  00:00:00.000<br />
KernelTime                00:00:00.000<br />
Win32 Start Address SmartcardCredentialProvider!I_ReaderMonitorThreadProc (0x000007feed747028)<br />
Stack Init fffff88005894db0 Current fffff88005893fd0<br />
Base fffff88005895000 Limit fffff8800588f000 Call 0<br />
Priority 15 BasePriority 13 UnusualBoost 0 ForegroundBoost 1 IoPriority 2 PagePriority 5<br />
Child-SP          RetAddr           Call Site<br />
fffff880`05894010 fffff800`01ad6752 nt!KiSwapContext+0x7a<br />
fffff880`05894150 fffff800`01ad2c4b nt!KiCommitThreadWait+0x1d2<br />
fffff880`058941e0 fffff800`01dcbecf nt!KeWaitForMultipleObjects+0x271<br />
fffff880`05894490 fffff800`01dcc7d6 nt!ObpWaitForMultipleObjects+0x294<br />
fffff880`05894960 fffff800`01ace853 nt!NtWaitForMultipleObjects+0xe5<br />
fffff880`05894bb0 00000000`76e3046a nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`05894c20)<br />
00000000`02d1f948 000007fe`fd0813a6 ntdll!NtWaitForMultipleObjects+0xa<br />
00000000`02d1f950 00000000`76bcf190 KERNELBASE!WaitForMultipleObjectsEx+0xe8<br />
00000000`02d1fa50 000007fe`ed746b84 kernel32!WaitForMultipleObjects+0xb0<br />
<span style="color: blue;">00000000`02d1fae0 000007fe`ed747059 SmartcardCredentialProvider!I_ReaderMonitorWorker+0&#215;9c<br />
00000000`02d1fb80 00000000`76bdf56d SmartcardCredentialProvider!I_ReaderMonitorThreadProc+0&#215;31</span><br />
00000000`02d1fbc0 00000000`76e13281 kernel32!BaseThreadInitThunk+0xd<br />
00000000`02d1fbf0 00000000`00000000 ntdll!RtlUserThreadStart+0&#215;1d</code></span></p>
<p style="text-align: left;"><em>So according to memory dump analysis pattern terminology these 2 processes are strongly coupled and this fact can be used for analysis logon problems in terminal services environments: </em><a href="http://www.dumpanalysis.org/blog/index.php/2007/09/26/crash-dump-analysis-patterns-part-28/"><em>http://www.dumpanalysis.org/blog/index.php/2007/09/26/crash-dump-analysis-patterns-part-28/</em></a><em> </em></p>
<p style="text-align: left;">intrauser isolation (p. 459)</p>
<p style="text-align: left;">file object security (p. 460) - <em>here is an example from x64 W2K8 R2:</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>0: kd&gt; !handle<br />
[...]<br />
0008: Object: fffffa800658e070  GrantedAccess: 00100020 Entry: fffff8a00445d020<br />
Object: fffffa800658e070  <span style="color: blue;">Type: (fffffa8003c0dde0) File</span><br />
    ObjectHeader: fffffa800658e040 (new version)<br />
        HandleCount: 1  PointerCount: 1<br />
        Directory Object: 00000000  Name: \DL\Notmyfault\exe\x64\Release {HarddiskVolume2}<br />
[&#8230;]<br />
001c: Object: fffffa8005f44ee0  GrantedAccess: 001f0003 (Protected) Entry: fffff8a00445d070<br />
Object: fffffa8005f44ee0  <span style="color: blue;">Type: (fffffa8003c00570) Event</span><br />
    ObjectHeader: fffffa8005f44eb0 (new version)<br />
        HandleCount: 1  PointerCount: 2<br />
[&#8230;]</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>0: kd&gt; dt _OBJECT_TYPE fffffa8003c0dde0<br />
ntdll!_OBJECT_TYPE<br />
   +0x000 TypeList         : _LIST_ENTRY [ 0xfffffa80`03c0dde0 - 0xfffffa80`03c0dde0 ]<br />
   +0x010 Name             : _UNICODE_STRING "File"<br />
   +0x020 DefaultObject    : 0x00000000`00000098<br />
   +0x028 Index            : 0x1c ''<br />
   +0x02c TotalNumberOfObjects : 0x5645<br />
   +0x030 TotalNumberOfHandles : 0x89e<br />
   +0x034 HighWaterNumberOfObjects : 0x5baf<br />
   +0x038 HighWaterNumberOfHandles : 0x8b5<br />
<span style="color: blue;">   +0&#215;040 TypeInfo         : _OBJECT_TYPE_INITIALIZER</span><br />
   +0&#215;0b0 TypeLock         : _EX_PUSH_LOCK<br />
   +0&#215;0b8 Key              : 0&#215;656c6946<br />
   +0&#215;0c0 CallbackList     : _LIST_ENTRY [ 0xfffffa80`03c0dea0 - 0xfffffa80`03c0dea0 ]</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>0: kd&gt; dt _OBJECT_TYPE_INITIALIZER fffffa8003c0dde0+40<br />
ntdll!_OBJECT_TYPE_INITIALIZER<br />
   +0x000 Length           : 0x70<br />
   +0x002 ObjectTypeFlags  : 0x11 ''<br />
   +0x002 CaseInsensitive  : 0y1<br />
   +0x002 UnnamedObjectsOnly : 0y0<br />
   +0x002 UseDefaultObject : 0y0<br />
   +0x002 SecurityRequired : 0y0<br />
   +0x002 MaintainHandleCount : 0y1<br />
   +0x002 MaintainTypeList : 0y0<br />
   +0x002 SupportsObjectCallbacks : 0y0<br />
   +0x004 ObjectTypeCode   : 1<br />
   +0x008 InvalidAttributes : 0x130<br />
   +0x00c GenericMapping   : _GENERIC_MAPPING<br />
   +0x01c ValidAccessMask  : 0x1f01ff<br />
   +0x020 RetainAccess     : 0<br />
   +0x024 PoolType         : 0 ( NonPagedPool )<br />
   +0x028 DefaultPagedPoolCharge : 0x400<br />
   +0x02c DefaultNonPagedPoolCharge : 0x180<br />
   +0x030 DumpProcedure    : (null)<br />
   +0x038 OpenProcedure    : (null)<br />
   +0x040 CloseProcedure   : 0xfffff800`01de6890     void  nt!IopCloseFile+0<br />
   +0x048 DeleteProcedure  : 0xfffff800`01de6610     void  nt!IopDeleteFile+0<br />
   +0x050 ParseProcedure   : 0xfffff800`01df7370     long  nt!IopParseFile+0<br />
<span style="color: blue;">   +0&#215;058 SecurityProcedure : 0xfffff800`01db7130     long  nt!IopGetSetSecurityObject+0</span><br />
   +0&#215;060 QueryNameProcedure : 0xfffff800`01db7470     long  nt!IopQueryName+0&lt;&gt;<br />
   +0&#215;068 OkayToCloseProcedure : (null)</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>0: kd&gt; dt _OBJECT_TYPE_INITIALIZER fffffa8003c00570+40<br />
ntdll!_OBJECT_TYPE_INITIALIZER<br />
   +0x000 Length           : 0x70<br />
   +0x002 ObjectTypeFlags  : 0 ''<br />
   +0x002 CaseInsensitive  : 0y0<br />
   +0x002 UnnamedObjectsOnly : 0y0<br />
   +0x002 UseDefaultObject : 0y0<br />
   +0x002 SecurityRequired : 0y0<br />
   +0x002 MaintainHandleCount : 0y0<br />
   +0x002 MaintainTypeList : 0y0<br />
   +0x002 SupportsObjectCallbacks : 0y0<br />
   +0x004 ObjectTypeCode   : 2<br />
   +0x008 InvalidAttributes : 0x100<br />
   +0x00c GenericMapping   : _GENERIC_MAPPING<br />
   +0x01c ValidAccessMask  : 0x1f0003<br />
   +0x020 RetainAccess     : 0<br />
   +0x024 PoolType         : 0 ( NonPagedPool )<br />
   +0x028 DefaultPagedPoolCharge : 0<br />
   +0x02c DefaultNonPagedPoolCharge : 0x70<br />
   +0x030 DumpProcedure    : (null)<br />
   +0x038 OpenProcedure    : (null)<br />
   +0x040 CloseProcedure   : (null)<br />
   +0x048 DeleteProcedure  : (null)<br />
   +0x050 ParseProcedure   : (null)<br />
<span style="color: blue;">   +0&#215;058 SecurityProcedure : 0xfffff800`01d97070     long  nt!SeDefaultObjectMethod+0</span><br />
   +0&#215;060 QueryNameProcedure : (null)<br />
   +0&#215;068 OkayToCloseProcedure : (null)</code></span></p>
<p style="text-align: left;">SID = SVAS*-RID, S-Version-Authority-Subauthority*-RelativeID (pp. 461 - 462)</p>
<p style="text-align: left;">PsGetSid (p. 463)</p>
<p style="text-align: left;">Administrator SID = Machine SID + &#8216;-500&#8242; (p. 463) - <em>here&#8217;s my test (real computer name has been changed to COMPUTER):</em></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>C:\PsTools&gt;PsGetSid COMPUTER</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>PsGetSid v1.44 - Translates SIDs to names and vice versa<br />
Copyright (C) 1999-2008 Mark Russinovich<br />
Sysinternals - <a href="http://www.sysinternals.com">www.sysinternals.com</a></code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>SID for COMPUTER\COMPUTER:<br />
S-1-5-21-30...49-19...94-15...96</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>C:\PsTools&gt;PsGetSid S-1-5-21-30...49-19...94-15...96-500</code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>PsGetSid v1.44 - Translates SIDs to names and vice versa<br />
Copyright (C) 1999-2008 Mark Russinovich<br />
Sysinternals - <a href="http://www.sysinternals.com">www.sysinternals.com</a></code></span></p>
<p style="text-align: left;"><span style="font-size: xx-small;"><code>Account for COMPUTER\S-1-5-21-30...49-19...94-15...96-500:<br />
User: COMPUTER\Administrator</code></span></p>
<p style="text-align: left;">- Dmitry Vostokov @ <a href="http://www.softwaregeneralist.com/">SoftwareGeneralist.com</a> -</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaregeneralist.com/2010/05/13/reading-notebook-12-may-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>100 posts</title>
		<link>http://www.softwaregeneralist.com/2010/04/10/100-posts/</link>
		<comments>http://www.softwaregeneralist.com/2010/04/10/100-posts/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 00:30:53 +0000</pubDate>
		<dc:creator>Dmitry Vostokov</dc:creator>
		
		<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.softwaregeneralist.com/?p=106</guid>
		<description><![CDATA[Established 2 years ago, in April 2008, Software Generalist blog celebrates its 100th post.
- Dmitry Vostokov @ SoftwareGeneralist.com -
]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Established 2 years ago, in April 2008, Software Generalist blog celebrates its 100th post.</p>
<p>- Dmitry Vostokov @ <a href="http://www.softwaregeneralist.com/">SoftwareGeneralist.com</a> -</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaregeneralist.com/2010/04/10/100-posts/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
