Loading
Dump File [C:\Data\dvd-linux\memory dump\MEMORY.DMP]
Kernel
Complete Dump File: Full address space is available
Symbol
search path is: SRV*c:\symbols*http://msdl.microsoft.com/download/symbols;
;C:\baan\fat_gemini_76b\bin;SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Executable
search path is:
Windows
XP Kernel Version 2600 (Service Pack 2) UP Free x86 compatible
Product:
WinNt, suite: TerminalServer SingleUserTS
Built
by: 2600.xpsp_sp2_rtm.040803-2158
Kernel
base = 0x804d7000 PsLoadedModuleList = 0x8055ab20
Debug
session time: Fri Aug 31 11:48:53.461 2007 (GMT+2)
System
Uptime: 0 days 1:18:16.351
Loading
Kernel Symbols
....................................................................................................
Loading
User Symbols
Loading
unloaded module list
......................
*******************************************************************************
*
*
* Bugcheck Analysis *
*
*
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck
D1, {10, 2, 0, fbb3a018}
Probably
caused by : STREAM.SYS (
STREAM!SCProcessCompletedDataRequest+e6 )
Followup:
MachineOwner
---------
kd>
!analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
*
*
*******************************************************************************
DRIVER_IRQL_NOT_LESS_OR_EQUAL
(d1)
An
attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high. This is usually
caused by drivers using improper addresses.
If
kernel debugger is available get stack backtrace.
Arguments:
Arg1:
00000010, memory referenced
Arg2:
00000002, IRQL
Arg3:
00000000, value 0 = read operation, 1 = write operation
Arg4:
fbb3a018, address which referenced memory
Debugging
Details:
------------------
READ_ADDRESS: 00000010
CURRENT_IRQL: 2
FAULTING_IP:
STREAM!SCProcessCompletedDataRequest+e6
fbb3a018
8b4010 mov eax,dword ptr
[eax+10h]
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0xD1
PROCESS_NAME: System
TRAP_FRAME: fe23ecf8 -- (.trap 0xfffffffffe23ecf8)
ErrCode
= 00000000
eax=00000000
ebx=ffa07f80 ecx=01afe000 edx=00000000 esi=ffa10e88 edi=00000000
eip=fbb3a018
esp=fe23ed6c ebp=fe23ed80 iopl=0
nv up ei pl zr na pe nc
cs=0008 ss=0010
ds=0023 es=0023 fs=0030
gs=0000 efl=00210246
STREAM!SCProcessCompletedDataRequest+0xe6:
fbb3a018 8b4010 mov eax,dword ptr [eax+10h]
ds:0023:00000010=????????
Resetting
default scope
LAST_CONTROL_TRANSFER: from fbb3a018 to 804e2158
STACK_TEXT:
fe23ecf8
fbb3a018 badb0d00 00000000 ffa65002 nt!KiTrap0E+0x233
fe23ed80
fbb39cf3 00000068 810912a0 ffa1d8d8 STREAM!SCProcessCompletedDataRequest+0xe6
fe23ed94
fbb3a2de ffa10e88 ffa1d8d8 ffa1d9b0 STREAM!SCCallBackSrb+0x43
fe23ee68
fbb3a5d0 00000000 ffa1d820 00000000 STREAM!StreamClassDpc+0xc2
fe23ee88
804dcaad ffa1d944 ffa1d8d8 2409cb70 STREAM!SCMinidriverDeviceTimerDpc+0x48
fe23efa4
804dc928 ef3e0420 0000000a ffdff000 nt!KiTimerListExpire+0x122
fe23efd0
804dc179 80559980 00000000 000727df nt!KiTimerExpiration+0xaf
fe23eff4
804dbe2d fe26eb58 00000000 00000000 nt!KiRetireDpcList+0x46
fe23eff8
fe26eb58 00000000 00000000 00000000 nt!KiDispatchInterrupt+0x2a
WARNING:
Frame IP not in any known module. Following frames may be wrong.
804dbe2d
00000000 00000009 bb835675 00000128 0xfe26eb58
STACK_COMMAND: kb
FOLLOWUP_IP:
STREAM!SCProcessCompletedDataRequest+e6
fbb3a018
8b4010 mov eax,dword ptr
[eax+10h]
SYMBOL_STACK_INDEX: 1
SYMBOL_NAME: STREAM!SCProcessCompletedDataRequest+e6
FOLLOWUP_NAME: MachineOwner
MODULE_NAME:
STREAM
IMAGE_NAME: STREAM.SYS
DEBUG_FLR_IMAGE_TIMESTAMP: 41107d3e
FAILURE_BUCKET_ID: 0xD1_STREAM!SCProcessCompletedDataRequest+e6
BUCKET_ID: 0xD1_STREAM!SCProcessCompletedDataRequest+e6
Followup:
MachineOwner
---------
fe23ed3c 00000000
fe23ed40 fe23ed50
fe23ed44
ffffffff
fe23ed48 00000030
fe23ed4c 00000000
fe23ed50 ffa10e88
fe23ed54 ffa07f80
fe23ed58 fe23ed80
fe23ed5c 00000000
fe23ed60
fbb3a018 STREAM!SCProcessCompletedDataRequest+0xe6
fe23ed64 00000008
fe23ed68 00210246
fe23ed6c ffa10e88
fe23ed70 00000000
fe23ed74 ffa1d8d8
fe23ed78 00000000
fe23ed7c ffa1d8d8
fe23ed80 fe23ed94
fe23ed84
fbb39cf3 STREAM!SCCallBackSrb+0x43
fe23ed88 00000068
fe23ed8c 810912a0
fe23ed90 ffa1d8d8 << Parameter 2 of
SCCallBackSrb
fe23ed94
fe23ee68 <<
Parameter 1 of SCCallBackSrb
fe23ed98
fbb3a2de STREAM!StreamClassDpc+0xc2
int
__stdcall SCCallBackSrb(int a1,int a2)
{
int v2; // edi@1
int v3; // edx@2
int v4; // esi@2
v2 = a1;
if ( *(_BYTE *)(a2 +
0x158) )
{
v4 = a2 + 0xD8;
LOBYTE(v3) =
KfAcquireSpinLock(a2 + 0xD8);
if ( *(_DWORD
*)(v2 + 0x8C) )
return
KfReleaseSpinLock(v4, v3);
KfReleaseSpinLock(v4,
v3);
}
return (*(int
(__stdcall **)(int))(v2 + 0x6C))(v2);
}
v2:
ffa10e88 0000004c 0 00
ffa10e8c 00000001 1 04
ffa10e90 00000000 2 08
ffa10e94 81091348 3 0c
ffa10e98 ffa1db1c 4 10
ffa10e9c ffa10f30 5 14
ffa10ea0 ffa07aa0 6 18
ffa10ea4 0000001a 7 1c
ffa10ea8 0000000e 8 20
ffa10eac 0000000f 9 24
ffa10eb0 00000000 10 28
ffa10eb4 ffa17a90 11 2c
ffa10eb8 00000003 30
ffa10ebc ffa33504 34
ffa10ec0 00000003 38
ffa10ec4 ffa10f94 3c
ffa10ec8 00000000 40
ffa10ecc ffa10f9c 44
ffa10ed0 00000000 48
ffa10ed4 00000000 4c
ffa10ed8
00000000 50
ffa10edc
00000000 54
ffa10ee0
ffa0f9e8 58
ffa10ee4
00000000 5c
ffa10ee8
ffaa5008 60
ffa10eec
00000000 64
ffa10ef0
00000174 68
ffa10ef4
fbb39f32 6c STREAM!SCProcessCompletedDataRequest
Variable
P will have the value of 0xffa17a90
ffa17a90
01900006 ffa0f918 00000030 ffa07aa0
ffa17aa0
ffa65230 ffa06e80 00000000 00000000
ffa17ab0
04020101 0c000000 00da5d6c ffa13700
ffa17ac0
00000000 00da5d6c 00000000 00db1038
ffa17ad0
00300012 00000000 ffa65020 ffa06ebc
ffa17ae0
ffa65054 804ecf53 80618549 00000000
ffa17af0 00000000 ffb92a48
00000000 00010000
ffa17b00
00000000 00000000 00000000 00000000
int
__stdcall SCProcessCompletedDataRequest(PVOID P)
{
int v1; // eax@1
int v2; // ecx@1
PVOID v3; // esi@1
PVOID v4; // edx@2
int v5; // ebx@2
int v6; // edi@2
int v8; // [sp+8h]
[bp-4h]@1
int BadPointer; //
[sp+4h] [bp-8h]@2
v3 = P;
v2 = *((_DWORD *)P + 11); ç v2 = 0xffa17a90
v1 = *((_DWORD *)P + 4) - 0x244;
v8 = *((_DWORD *)P + 4) - 0x244;
if ( v2 )
{
v4 = *(PVOID *)(v2 + 0x60);
v5 = *((_DWORD *)P + 6);
v6 = *(_DWORD *)(v2 + 4);
BadPointer = *(_DWORD *)(v2 + 0x60); ß
BadPointer becomes 0x0 !!!!
if ( v6 )
{
P = 0;
do
{
if ( *(_BYTE
*)(*((_DWORD *)v3 + 3) + 37) )
{
while ( !*(_DWORD *)(v5 + 36) && !*(_DWORD
*)(v5 + 32) )
v5 += *((_DWORD *)v3 + 34);
if ( *((_BYTE *)v3 + 160) )
{
v4 = P;
*(_DWORD *)(v5
+ 40) = *(_DWORD *)((char *)P + *((_DWORD *)v3 + 41));
}
P = (char *)P
+ 4;
v5 += *((_DWORD *)v3
+ 34);
}
if ( *((_DWORD
*)v3 + 23) )
{
LOBYTE(v4) =
*((_DWORD *)v3 + 1) != 0;
(*(int
(__stdcall **)(_DWORD,int,_DWORD,int,_DWORD,PVOID))(*(_DWORD
*)(*(_DWORD *)(v1 + 0xB4) + 4) + 20))(
*(_DWORD *)(v1 + 0xB4),
v6,
*((_DWORD *)v3 + 23),
*(_DWORD *)(v6 + 16) + *(_DWORD *)(v6 + 24),
*(_DWORD *)(v6 + 20),
v4);
v1 = v8;
}
v6 = *(_DWORD *)v6;
}
while ( v6 );
}
if ( *((_DWORD
*)v3 + 23) )
{
(*(int
(__stdcall **)(_DWORD,_DWORD,_DWORD,int,_DWORD,_DWORD))(*(_DWORD
*)(*(_DWORD *)(v1 + 0xB4) + 4) + 20))(
*(_DWORD
*)(v1 + 0xB4),
*((_DWORD *)v3 + 22),
*((_DWORD
*)v3 + 23),
*(_DWORD
*)(*((_DWORD *)v3 + 22) + 0x10) + *(_DWORD *)(*((_DWORD *)v3 + 22) + 24),
*((_DWORD
*)v3 + 26),
0);
(*(int
(__stdcall **)(_DWORD,_DWORD,_DWORD))(*(_DWORD
*)(*(_DWORD *)(v8 + 180) + 4) + 28))(
*(_DWORD
*)(v8 + 180),
*((_DWORD
*)v3 + 23),
*((_DWORD
*)v3 + 16));
}
if ( *(_DWORD
*)(BadPointer + 0x10) )
// Here the stream.sys crashes.
ExFreePool(*(PVOID
*)(BadPointer + 0x10));
}
return
SCProcessCompletedRequest(v3);
}
Value
for P:
kd> !irpfind
unable to get large pool allocation table -
either wrong symbols or pool tagging is disabled
Searching NonPaged pool (81061000 : 81261000) for Tag: Irp?
Irp [ Thread ] irpStack:
(Mj,Mn) DevObj [Driver] MDL Process
810d25c8 [ffb477c8] irpStack: ( e, 0) ffa1d820 [
\Driver\mdvdwdm] 0xffa25020
810d29d8 [ffb477c8] irpStack: ( e, 0) ffa1d820 [
\Driver\mdvdwdm] 0xffa25020
810d2cd8 [ffb477c8] irpStack: ( e, 0) ffa1d820 [
\Driver\mdvdwdm] 0xffa25020
ffa17638 [ffb477c8] irpStack: ( e, 0) ffa1d820 [
\Driver\mdvdwdm] 0xffa25020
ffa227b0 [ffb477c8] irpStack: ( e, 0) ffa1d820 [
\Driver\mdvdwdm] 0xffa25020
ffa291a8 [ffb477c8] irpStack: ( e, 0) ffa1d820 [ \Driver\mdvdwdm]
0xffa25020
ffaaa208 [ffb477c8] irpStack: ( e, 0) ffa1d820 [
\Driver\mdvdwdm] 0xffa25020
ffb85d00 [ffb477c8] irpStack: ( e, 0) ffa1d820 [
\Driver\mdvdwdm] 0xffa25020
kd>
!sprocess 0 1f DVDPlay.exe
Dumping
Session 0
_MM_SESSION_SPACE
fe351000
_MMSESSION fe35115c
PROCESS
ffa25020 SessionId:
0 Cid: 0634 Peb: 7ffdd000 ParentCid: 0728
DirBase: 00ede000 ObjectTable: e1660ad8 HandleCount: 274.
Image: DVDPlay.exe
VadRoot 810d8478 Vads 107 Clone 0 Private
703. Modified 38. Locked 259.
DeviceMap e150f088
Token e16c68c0
ElapsedTime 00:30:02.932
UserTime 00:02:17.457
KernelTime 00:03:48.989
QuotaPoolUsage[PagedPool] 44892
QuotaPoolUsage[NonPagedPool] 19384
Working Set Sizes (now,min,max) (1839, 50, 345) (7356KB, 200KB, 1380KB)
PeakWorkingSetSize 2010
VirtualSize 52 Mb
PeakVirtualSize 52 Mb
PageFaultCount 2104
MemoryPriority BACKGROUND
BasePriority 8
CommitCharge 1130
THREAD ffa23020 Cid 0634.0198 Teb: 7ffdf000 Win32Thread: e1068ba8 WAIT:
(WrUserRequest) UserMode Non-Alertable
810c6ff0 SynchronizationEvent
Not impersonating
DeviceMap e150f088
Owning Process ffa25020 Image: DVDPlay.exe
Wait Start TickCount 468953 Ticks: 6 (0:00:00:00.060)
Context Switch Count 64547 LargeStack
UserTime 00:00:57.122
KernelTime 00:01:22.718
***
WARNING: Unable to verify timestamp for DVDPlay.exe
Win32 Start Address DVDPlay!WinMainCRTStartup (0x00439280)
Start Address kernel32!BaseProcessStartThunk (0x7c810867)
Stack Init fbbf1000 Current fbbf0c20
Base fbbf1000 Limit fbbec000 Call 0
Priority 12 BasePriority 8
PriorityDecrement 2 DecrementCount 16
ChildEBP RetAddr
fbbf0c38 804dc6a6 nt!KiSwapContext+0x2e
(FPO: [Uses EBP] [0,0,4])
fbbf0c44 804dc6f2 nt!KiSwapThread+0x46
(FPO: [0,0,0])
fbbf0c6c bf802ec4 nt!KeWaitForSingleObject+0x1c2
(FPO: [Non-Fpo])
fbbf0ca8 bf801aa8 win32k!xxxSleepThread+0x192 (FPO: [Non-Fpo])
fbbf0cec bf80f106 win32k!xxxRealInternalGetMessage+0x418 (FPO: [Non-Fpo])
fbbf0d4c 804df06b win32k!NtUserGetMessage+0x27 (FPO: [Non-Fpo])
fbbf0d4c 7c90ebab nt!KiFastCallEntry+0xf8
(FPO: [0,0] TrapFrame @ fbbf0d64)
0012fe78 77d4919b ntdll!KiIntSystemCall+0x6 (FPO: [0,0,0])
0012fea0 004837ea USER32!NtUserGetMessage+0xc
0012fec8 00482f0f DVDPlay!CWinThread::PumpMessage+0x30 (CONV: thiscall) [thrdcore.cpp
@ 821]
0012feec 00481c9a DVDPlay!CWinThread::Run+0x82 (CONV: thiscall) [thrdcore.cpp @ 487]
0012fef8 0048988e DVDPlay!CWinApp::Run+0x3a (CONV: thiscall) [appcore.cpp @ 400]
0012ff18 004595c8 DVDPlay!AfxWinMain+0xce (CONV: stdcall) [winmain.cpp @ 49]
0012ff30 004393a6 DVDPlay!WinMain+0x18 (CONV: stdcall) [appmodul.cpp @ 30]
0012ffc0 7c816d4f DVDPlay!WinMainCRTStartup+0x126 (CONV: cdecl) [crt0.c @ 198]
0012fff0 00000000 kernel32!BaseProcessStart+0x23 (FPO: [Non-Fpo])
THREAD ffa22210 Cid 0634.0164 Teb: 7ffde000 Win32Thread: e182f158 WAIT:
(WrUserRequest) UserMode Non-Alertable
ffb94860 SynchronizationEvent
Not impersonating
DeviceMap e150f088
Owning Process ffa25020 Image: DVDPlay.exe
Wait Start TickCount 367732 Ticks: 101227 (0:00:16:53.727)
Context Switch Count 79 LargeStack
UserTime 00:00:00.110
KernelTime 00:00:00.130
***
ERROR: Symbol file could not be found.
Defaulted to export symbols for QUARTZ.dll -
Win32 Start Address QUARTZ!AMGetErrorTextA (0x7486efb2)
Start Address kernel32!BaseThreadStartThunk
(0x7c810856)
Stack Init fbea6000 Current fbea5c20
Base fbea6000 Limit fbea3000 Call 0
Priority 10 BasePriority 8
PriorityDecrement 0 DecrementCount 16
Kernel stack not
resident.
THREAD ffa1d020 Cid 0634.0140 Teb: 7ffdc000 Win32Thread: e1111368 WAIT:
(UserRequest) UserMode Non-Alertable
ffa23340 SynchronizationEvent
ffa23310 SynchronizationEvent
ffa25330 NotificationEvent
ffa618c0 NotificationEvent
ffa25300 SynchronizationEvent
ffa252d0 SynchronizationEvent
ffa232a0 SynchronizationEvent
Not impersonating
DeviceMap e150f088
Owning Process ffa25020 Image: DVDPlay.exe
Wait Start TickCount 367732 Ticks: 101227 (0:00:16:53.727)
Context Switch Count 14 LargeStack
UserTime 00:00:00.000
KernelTime 00:00:00.000
Win32 Start Address qdvd!CAMThread::InitialThreadProc (0x5dfada2c)
Start Address kernel32!BaseThreadStartThunk (0x7c810856)
Stack Init fbe76000 Current fbe7595c
Base fbe76000 Limit fbe73000 Call 0
Priority 10 BasePriority 8
PriorityDecrement 0 DecrementCount 16
Kernel stack not
resident.
THREAD 810916b0 Cid 0634.0118 Teb: 7ffdb000 Win32Thread: 00000000 WAIT:
(UserRequest) UserMode Non-Alertable
81091e58 NotificationEvent
81091d78 NotificationEvent
ffa32f50 Semaphore Limit 0x7fffffff
ffa196d0 SynchronizationEvent
IRP List:
ffb05008: (0006,0190)
Flags: 00000070 Mdl: 00000000
ffa82930: (0006,0190)
Flags: 00000070 Mdl: 00000000
Not impersonating
DeviceMap e150f088
Owning Process ffa25020 Image: DVDPlay.exe
Wait Start TickCount 323293 Ticks: 145666 (0:00:24:18.757)
Context Switch Count 1
UserTime 00:00:00.000
KernelTime 00:00:00.000
Win32 Start Address ksproxy!CKsQualityF::QualityThread (0x5e04c17f)
Start Address kernel32!BaseThreadStartThunk (0x7c810856)
Stack Init fc0a1000 Current fc0a095c
Base fc0a1000 Limit fc09e000 Call 0
Priority 10 BasePriority 10
PriorityDecrement 0 DecrementCount 0
Kernel stack not
resident.
THREAD 810e0da8 Cid 0634.0148 Teb: 7ffda000 Win32Thread: 00000000 WAIT:
(UserRequest) UserMode Non-Alertable
ffa1d2a0 SynchronizationEvent
ffa13700 NotificationEvent
ffb811f8 NotificationEvent
ffa11758 NotificationEvent
ffa7e618 NotificationEvent
ffb63670 NotificationEvent
ffaa75e8 NotificationEvent
ffa0bef0 NotificationEvent
ffa74650 NotificationEvent
ffa120a8 NotificationEvent
ffb672e0 NotificationEvent
ffa116e0 NotificationEvent
ffb225e0 NotificationEvent
ffad9d90 NotificationEvent
ffb95420 NotificationEvent
ffa044f8 NotificationEvent
ffa748c8 NotificationEvent
ffa0dd70 NotificationEvent
ffa12218 NotificationEvent
ffa12ef0 NotificationEvent
ffa037a0 NotificationEvent
ffb27940 NotificationEvent
Not impersonating
DeviceMap e150f088
Owning Process ffa25020 Image: DVDPlay.exe
Wait Start TickCount 468954 Ticks: 5 (0:00:00:00.050)
Context Switch Count 89361
UserTime 00:00:14.060
KernelTime 00:00:17.615
Win32 Start Address ksproxy!CKsProxy::IoThread (0x5e0344fe)
Start Address kernel32!BaseThreadStartThunk (0x7c810856)
Stack Init fc06d000 Current fc06c95c
Base fc06d000 Limit fc06a000 Call 0
Priority 10 BasePriority 8
PriorityDecrement 2 DecrementCount 16
ChildEBP RetAddr
fc06c974 804dc6a6 nt!KiSwapContext+0x2e
(FPO: [Uses EBP] [0,0,4])
fc06c980 804e40fd nt!KiSwapThread+0x46
(FPO: [0,0,0])
fc06c9b8 80566488 nt!KeWaitForMultipleObjects+0x284
(FPO: [Non-Fpo])
fc06cd48 804df06b nt!NtWaitForMultipleObjects+0x2a2
(FPO: [Non-Fpo])
fc06cd48 7c90ebab nt!KiFastCallEntry+0xf8
(FPO: [0,0] TrapFrame @ fc06cd64)
0116feec 7c90e9ab ntdll!KiIntSystemCall+0x6 (FPO: [0,0,0])
0116fef0 7c8094f2 ntdll!ZwWaitForMultipleObjects+0xc (FPO: [5,0,0])
0116ff8c 5e034521 kernel32!WaitForMultipleObjectsEx+0x12c (FPO: [Non-Fpo])
0116ffb4 7c80b50b ksproxy!CKsProxy::IoThread+0x23 (FPO: [Non-Fpo])
0116ffec 00000000 kernel32!BaseThreadStart+0x37 (FPO: [Non-Fpo])
THREAD 810e0848 Cid 0634.01b0 Teb: 7ffd9000 Win32Thread: e10edc00 WAIT:
(UserRequest) UserMode Non-Alertable
ffa29640 NotificationEvent
ffa2a100 NotificationEvent
Not impersonating
DeviceMap e150f088
Owning Process ffa25020 Image: DVDPlay.exe
Wait Start TickCount 324932 Ticks: 144027 (0:00:24:02.343)
Context Switch Count 14 LargeStack
UserTime 00:00:00.000
KernelTime 00:00:00.020
Win32 Start Address ksproxy!CVPInterfaceHandler::InitialThreadProc (0x5e04c6ea)
Start Address kernel32!BaseThreadStartThunk (0x7c810856)
Stack Init fe09b000 Current fe09a95c
Base fe09b000 Limit fe097000 Call 0
Priority 8 BasePriority 8
PriorityDecrement 0 DecrementCount 16
Kernel stack not
resident.
THREAD ffa2f7d8 Cid 0634.0788 Teb: 7ffd8000 Win32Thread: e184fb00 WAIT:
(UserRequest) UserMode Non-Alertable
ffb6bf20 Semaphore Limit 0x5
ffa2f8c8 NotificationTimer
Not impersonating
DeviceMap e150f088
Owning Process ffa25020 Image: DVDPlay.exe
Wait Start TickCount 468940 Ticks: 19 (0:00:00:00.190)
Context Switch Count 13241 LargeStack
UserTime 00:00:00.120
KernelTime 00:00:00.751
Win32 Start Address DVDPlay!_threadstartex (0x0043b4f0)
Start Address kernel32!BaseThreadStartThunk (0x7c810856)
Stack Init fbe86000 Current fbe85ca0
Base fbe86000 Limit fbe82000 Call 0
Priority 12 BasePriority 8
PriorityDecrement 2 DecrementCount 16
ChildEBP RetAddr
fbe85cb8 804dc6a6 nt!KiSwapContext+0x2e
(FPO: [Uses EBP] [0,0,4])
fbe85cc4 804dc6f2 nt!KiSwapThread+0x46
(FPO: [0,0,0])
fbe85cec 80565a9f nt!KeWaitForSingleObject+0x1c2
(FPO: [Non-Fpo])
fbe85d50 804df06b nt!NtWaitForSingleObject+0x9a
(FPO: [Non-Fpo])
fbe85d50 7c90ebab nt!KiFastCallEntry+0xf8
(FPO: [0,0] TrapFrame @ fbe85d64)
0167fdfc 7c90e9c0 ntdll!KiIntSystemCall+0x6 (FPO: [0,0,0])
0167fe00 7c8025db ntdll!ZwWaitForSingleObject+0xc (FPO: [3,0,0])
0167fe64 7c802542 kernel32!WaitForSingleObjectEx+0xa8 (FPO: [Non-Fpo])
0167fe78 00408b57 kernel32!WaitForSingleObject+0x12 (FPO: [Non-Fpo])
0167fee0 004826a5 DVDPlay!Thread_UIUpdateMsgPump+0x37 (CONV: cdecl)
[c:\data\dvd-linux\margi\dvdtogo\win95\dvdplay\dvdplay.cpp @ 396]
0167ff80 0043b563 DVDPlay!_AfxThreadEntry+0x2b5 (CONV: stdcall) [thrdcore.cpp @ 112]
0167ffb4 7c80b50b DVDPlay!_threadstartex+0x73 (CONV: stdcall) [threadex.c @ 212]
0167ffec 00000000 kernel32!BaseThreadStart+0x37 (FPO: [Non-Fpo])
THREAD ffb477c8 Cid 0634.06dc Teb: 7ffd7000 Win32Thread: 00000000 WAIT:
(UserRequest) UserMode Non-Alertable
810c7c88 SynchronizationEvent
ffaa78c8 SynchronizationEvent
811c0870 SynchronizationEvent
ffb17f30 NotificationEvent
IRP List:
ffaaece0: (0006,0190)
Flags: 00000070 Mdl: ffa2f5a8
810d29d8: (0006,0190)
Flags: 00000070 Mdl: ffa17328
ffa291a8: (0006,0190)
Flags: 00000070 Mdl: 81101b80
ffa17638: (0006,0190)
Flags: 00000070 Mdl: ffa17128
810d2cd8: (0006,0190)
Flags: 00000070 Mdl: ffa27cf8
ffa227b0: (0006,0190)
Flags: 00000070 Mdl: ffa7df08
811018a8: (0006,0190)
Flags: 00000070 Mdl: ffa16870
ffaaa208: (0006,0190)
Flags: 00000070 Mdl: ffb9ba78
810d25c8: (0006,0190)
Flags: 00000070 Mdl: ffb70358
ffb85d00: (0006,0190)
Flags: 00000070 Mdl: ffa1b7a0
Not impersonating
DeviceMap e150f088
Owning Process ffa25020 Image: DVDPlay.exe
Wait Start TickCount 324787 Ticks: 144172 (0:00:24:03.796)
Context Switch Count 3
UserTime 00:00:00.000
KernelTime 00:00:00.010
Win32 Start Address ksproxy!CAsyncItemHandler::AsyncItemProc (0x5e0415d4)
Start Address kernel32!BaseThreadStartThunk (0x7c810856)
Stack Init fbe02000 Current fbe0195c
Base fbe02000 Limit fbdff000 Call 0
Priority 8 BasePriority 8
PriorityDecrement 0 DecrementCount 0
Kernel stack not
resident.
THREAD ffa65020 Cid 0634.0368 Teb: 7ffd6000 Win32Thread: 00000000 READY
IRP List:
ffa02910: (0006,0190)
Flags: 00000030 Mdl: ffa017e8
ffa10008: (0006,0190)
Flags: 00000030 Mdl: ff9ffbd8
ffa0a008: (0006,0190)
Flags: 00000030 Mdl: ffa142b8
ffa11d90: (0006,0190)
Flags: 00000030 Mdl: 81074998
ffa13400: (0006,0190)
Flags: 00000030 Mdl: ffa0be18
ffa035f0: (0006,0190)
Flags: 00000030 Mdl: ffa0ec40
ffa03df0: (0006,0190)
Flags: 00000030 Mdl: ffa04b70
ffa009e0: (0006,0190)
Flags: 00000030 Mdl: ffa15008
ff9ffe70: (0006,0190)
Flags: 00000030 Mdl: ffa122b8
ffa28008: (0006,0190)
Flags: 00000030 Mdl: ffa030c8
ffa01008: (0006,0190)
Flags: 00000030 Mdl: ffa13008
ffa053d0: (0006,0190)
Flags: 00000030 Mdl: ffa0fd08
ffa12838: (0006,0190)
Flags: 00000030 Mdl: ffa018e8
810db008: (0006,0190)
Flags: 00000030 Mdl: ffa06200
ffa0c6e0: (0006,0190)
Flags: 00000030 Mdl: ffa0c348
ffa103b8: (0006,0190)
Flags: 00000030 Mdl: ffa11898
ffa0b3d8: (0006,0190)
Flags: 00000030 Mdl: ffa01568
Not impersonating
DeviceMap e150f088
Owning Process ffa25020 Image: DVDPlay.exe
Wait Start TickCount 468959 Ticks: 0
Context Switch Count 109516
UserTime 00:00:12.227
KernelTime 00:00:26.928
Win32 Start Address qdvd!COutputQueue::InitialThreadProc (0x5dfd7556)
Start Address kernel32!BaseThreadStartThunk (0x7c810856)
Stack Init fbf06000 Current fbf05ca0
Base fbf06000 Limit fbf03000 Call 0
Priority 11 BasePriority 8
PriorityDecrement 2 DecrementCount 16
ChildEBP RetAddr
fbf05cb8 804dc6a6 nt!KiSwapContext+0x2e
(FPO: [Uses EBP] [0,0,4])
fbf05cc4 804dc6f2 nt!KiSwapThread+0x46
(FPO: [0,0,0])
fbf05cec 80565a9f nt!KeWaitForSingleObject+0x1c2
(FPO: [Non-Fpo])
fbf05d50 804df06b nt!NtWaitForSingleObject+0x9a
(FPO: [Non-Fpo])
fbf05d50 7c90ebab nt!KiFastCallEntry+0xf8
(FPO: [0,0] TrapFrame @ fbf05d64)
0189fef0 7c90e9c0 ntdll!KiIntSystemCall+0x6 (FPO: [0,0,0])
0189fef4 7c8025db ntdll!ZwWaitForSingleObject+0xc (FPO: [3,0,0])
0189ff58 7c802542 kernel32!WaitForSingleObjectEx+0xa8 (FPO: [Non-Fpo])
0189ff6c 5dfd7291 kernel32!WaitForSingleObject+0x12 (FPO: [Non-Fpo])
0189ffa4 5dfd756c qdvd!COutputQueue::ThreadProc+0xd5
(FPO: [Non-Fpo])
0189ffb4 7c80b50b qdvd!COutputQueue::InitialThreadProc+0x16 (FPO: [Non-Fpo])
0189ffec 00000000 kernel32!BaseThreadStart+0x37 (FPO: [Non-Fpo])
THREAD ffa16b80 Cid 0634.0674 Teb: 7ffd5000 Win32Thread: 00000000 WAIT:
(UserRequest) UserMode Non-Alertable
ffa77840 Semaphore Limit 0x7fffffff
Not impersonating
DeviceMap e150f088
Owning Process ffa25020 Image: DVDPlay.exe
Wait Start TickCount 468954 Ticks: 5 (0:00:00:00.050)
Context Switch Count 100844
UserTime 00:00:05.658
KernelTime 00:00:13.809
Win32 Start Address qdvd!COutputQueue::InitialThreadProc (0x5dfd7556)
Start Address kernel32!BaseThreadStartThunk (0x7c810856)
Stack Init fc223000 Current fc222ca0
Base fc223000 Limit fc220000 Call 0
Priority 10 BasePriority 8
PriorityDecrement 2 DecrementCount 16
ChildEBP RetAddr
fc222cb8 804dc6a6 nt!KiSwapContext+0x2e
(FPO: [Uses EBP] [0,0,4])
fc222cc4 804dc6f2 nt!KiSwapThread+0x46
(FPO: [0,0,0])
fc222cec 80565a9f nt!KeWaitForSingleObject+0x1c2
(FPO: [Non-Fpo])
fc222d50 804df06b nt!NtWaitForSingleObject+0x9a
(FPO: [Non-Fpo])
fc222d50 7c90ebab nt!KiFastCallEntry+0xf8
(FPO: [0,0] TrapFrame @ fc222d64)
0199fef0 7c90e9c0 ntdll!KiIntSystemCall+0x6 (FPO: [0,0,0])
0199fef4 7c8025db ntdll!ZwWaitForSingleObject+0xc (FPO: [3,0,0])
0199ff58 7c802542 kernel32!WaitForSingleObjectEx+0xa8 (FPO: [Non-Fpo])
0199ff6c 5dfd7291 kernel32!WaitForSingleObject+0x12 (FPO: [Non-Fpo])
0199ffa4 5dfd756c qdvd!COutputQueue::ThreadProc+0xd5 (FPO: [Non-Fpo])
0199ffb4 7c80b50b qdvd!COutputQueue::InitialThreadProc+0x16 (FPO: [Non-Fpo])
0199ffec 00000000 kernel32!BaseThreadStart+0x37 (FPO: [Non-Fpo])
THREAD ffa16908 Cid 0634.07e4 Teb: 7ffd4000 Win32Thread: 00000000 WAIT:
(UserRequest) UserMode Non-Alertable
ffa192e0 Semaphore Limit 0x7fffffff
Not impersonating
DeviceMap e150f088
Owning Process ffa25020 Image: DVDPlay.exe
Wait Start TickCount 468953 Ticks: 6 (0:00:00:00.060)
Context Switch Count 76403
UserTime 00:00:00.761
KernelTime 00:00:01.131
Win32 Start Address qdvd!COutputQueue::InitialThreadProc (0x5dfd7556)
Start Address kernel32!BaseThreadStartThunk (0x7c810856)
Stack Init fbb79000 Current fbb78ca0
Base fbb79000 Limit fbb76000 Call 0
Priority 11 BasePriority 8
PriorityDecrement 2 DecrementCount 16
ChildEBP RetAddr
fbb78cb8 804dc6a6 nt!KiSwapContext+0x2e
(FPO: [Uses EBP] [0,0,4])
fbb78cc4 804dc6f2 nt!KiSwapThread+0x46
(FPO: [0,0,0])
fbb78cec 80565a9f nt!KeWaitForSingleObject+0x1c2
(FPO: [Non-Fpo])
fbb78d50 804df06b nt!NtWaitForSingleObject+0x9a
(FPO: [Non-Fpo])
fbb78d50 7c90ebab nt!KiFastCallEntry+0xf8
(FPO: [0,0] TrapFrame @ fbb78d64)
01a9fef0 7c90e9c0 ntdll!KiIntSystemCall+0x6 (FPO: [0,0,0])
01a9fef4 7c8025db ntdll!ZwWaitForSingleObject+0xc (FPO: [3,0,0])
01a9ff58 7c802542 kernel32!WaitForSingleObjectEx+0xa8 (FPO: [Non-Fpo])
01a9ff6c 5dfd7291 kernel32!WaitForSingleObject+0x12 (FPO: [Non-Fpo])
01a9ffa4 5dfd756c qdvd!COutputQueue::ThreadProc+0xd5 (FPO: [Non-Fpo])
01a9ffb4 7c80b50b qdvd!COutputQueue::InitialThreadProc+0x16 (FPO: [Non-Fpo])
01a9ffec 00000000 kernel32!BaseThreadStart+0x37 (FPO: [Non-Fpo])
THREAD ffa16548 Cid 0634.01b4 Teb: 7ffaf000 Win32Thread: e19503e0 WAIT:
(UserRequest) UserMode Non-Alertable
ffad1338 Semaphore Limit 0x7fffffff
ffab14c0 SynchronizationEvent
ffab1460 SynchronizationEvent
ffa30b60 NotificationEvent
ffa7f8a8 NotificationEvent
ffa7f848 NotificationEvent
810c6318 NotificationEvent
810c62b8 NotificationEvent
ffa16df8 SynchronizationEvent
ffa16638 NotificationTimer
Not impersonating
DeviceMap e150f088
Owning Process ffa25020 Image: DVDPlay.exe
Wait Start TickCount 468953 Ticks: 6 (0:00:00:00.060)
Context Switch Count 326499 LargeStack
UserTime 00:00:47.388
KernelTime 00:01:25.763
Win32 Start Address qdvd!CAMThread::InitialThreadProc (0x5dfada2c)
Start Address kernel32!BaseThreadStartThunk (0x7c810856)
Stack Init fbad9000 Current fbad895c
Base fbad9000 Limit fbad5000 Call 0
Priority 9 BasePriority 9
PriorityDecrement 0 DecrementCount 16
ChildEBP RetAddr
fbad8974 804dc6a6 nt!KiSwapContext+0x2e
(FPO: [Uses EBP] [0,0,4])
fbad8980 804e40fd nt!KiSwapThread+0x46
(FPO: [0,0,0])
fbad89b8 80566488 nt!KeWaitForMultipleObjects+0x284
(FPO: [Non-Fpo])
fbad8d48 804df06b nt!NtWaitForMultipleObjects+0x2a2
(FPO: [Non-Fpo])
fbad8d48 7c90ebab nt!KiFastCallEntry+0xf8
(FPO: [0,0] TrapFrame @ fbad8d64)
01c4fdb4 7c90e9ab ntdll!KiIntSystemCall+0x6 (FPO: [0,0,0])
01c4fdb8 7c8094f2 ntdll!ZwWaitForMultipleObjects+0xc (FPO: [5,0,0])
01c4fe54 7c809c86 kernel32!WaitForMultipleObjectsEx+0x12c (FPO: [Non-Fpo])
01c4fe70 5dfb18e0 kernel32!WaitForMultipleObjects+0x18 (FPO: [Non-Fpo])
01c4fed8 5dfd248d qdvd!CDVDDiskReader::WaitForSingleObject+0x92 (FPO: [Non-Fpo])
01c4fef4 5dfb1311 qdvd!CSequentialAllocator::GetBuffer+0x33 (FPO: [Non-Fpo])
01c4ff18 5dfb13de qdvd!CSequentialAllocator::GetBuffer+0x2e (FPO: [Non-Fpo])
01c4ff38 5dfb1ada qdvd!CDVDDiskReader::GetBuffer+0x16 (FPO: [Non-Fpo])
01c4ff64 5dfb2962 qdvd!CDVDDiskReader::ReadNewData+0x2d (FPO: [Non-Fpo])
01c4ff88 5dfbdddf qdvd!CDVDDiskReader::ProcessData+0x8b (FPO: [Non-Fpo])
01c4ffa4 5dfada41 qdvd!CDVDPump::ThreadProc+0x1fb (FPO: [Non-Fpo])
01c4ffb4 7c80b50b qdvd!CAMThread::InitialThreadProc+0x15 (FPO: [Non-Fpo])
01c4ffec 00000000 kernel32!BaseThreadStart+0x37 (FPO: [Non-Fpo])
kd>
dt -r mdvdwdm!_HW_STREAM_REQUEST_BLOCK ffa10e88
+0x000 SizeOfThisPacket :
0x4c
+0x004 Command : 1
+0x008 Status : 0
+0x00c StreamObject : 0x81091348 _HW_STREAM_OBJECT
+0x000 SizeOfThisPacket
: 0x44
+0x004 StreamNumber : 0
+0x008 HwStreamExtension
: 0x8109149c
+0x00c ReceiveDataPacket
: 0xfb99ac10 void mdvdwdm!VideoReceive+0
+0x010 ReceiveControlPacket
: 0xfb99ade0 void mdvdwdm!VideoControl+0
+0x014 HwClockObject : _HW_CLOCK_OBJECT
+0x000 HwClockFunction : (null)
+0x004 ClockSupportFlags
: 0
+0x008 Reserved : [2] 0
+0x024 Dma : 0 ''
+0x025 Pio : 0x1 ''
+0x028 HwDeviceExtension
: 0xffa1db1c
+0x02c StreamHeaderMediaSpecific
: 0
+0x030 StreamHeaderWorkspace
: 0
+0x034 Allocator : 0 ''
+0x038 HwEventRoutine : (null)
+0x03c Reserved : [2] 0
+0x010 HwDeviceExtension :
0xffa1db1c
+0x014 SRBExtension : 0xffa10f30
+0x018 CommandData : _CommandData
+0x000 DataBufferArray : 0xffa07aa0 KSSTREAM_HEADER
+0x000 Size : 0x30
+0x004 TypeSpecificFlags
: 0x19c20000
+0x008 PresentationTime
: KSTIME
+0x018 Duration : 0
+0x020 FrameExtent : 0x800
+0x024 DataUsed : 0x800
+0x028 Data : 0x01af0800
+0x02c OptionsFlags : 0
+0x000 StreamBuffer : 0xffa07aa0 _HW_STREAM_DESCRIPTOR
+0x000 StreamHeader : _HW_STREAM_HEADER
+0x028 StreamInfo : _HW_STREAM_INFORMATION
+0x000 StreamState : -6260064
+0x000 TimeReference : 0xffa07aa0 _STREAM_TIME_REFERENCE
+0x000 CurrentOnboardClockValue
: 0x19c20000`00000030
+0x008 OnboardClockFrequency
: _LARGE_INTEGER 0x0
+0x010 CurrentSystemTime
: _LARGE_INTEGER 0x1`00000001
+0x018 Reserved : [2] 0
+0x000 PropertyInfo : 0xffa07aa0 _STREAM_PROPERTY_DESCRIPTOR
+0x000 Property : 0x00000030 KSIDENTIFIER
+0x004 PropertySetID : 0x19c20000
+0x008 PropertyInfo : (null)
+0x00c PropertyInputSize
: 0
+0x010 PropertyOutputSize
: 1
+0x000 OpenFormat : 0xffa07aa0 KSDATAFORMAT
+0x000 FormatSize : 0x30
+0x004 Flags : 0x19c20000
+0x008 SampleSize : 0
+0x00c Reserved : 0
+0x010 MajorFormat : _GUID {00000001-0001-0000-0000-000000000000}
+0x020 SubFormat : _GUID
{00000800-0800-0000-0008-af0100000000}
+0x030 Specifier :
_GUID {00000030-0000-19c3-0000-000000000000}
+0x000 Alignment : 1856045996430065712
+0x000 ConfigInfo : 0xffa07aa0
_PORT_CONFIGURATION_INFORMATION
+0x000 SizeOfThisPacket
: 0x30
+0x004 HwDeviceExtension
: 0x19c20000
+0x008 ClassDeviceObject
: (null)
+0x00c PhysicalDeviceObject
: (null)
+0x010 SystemIoBusNumber :
1
+0x014 AdapterInterfaceType
: 1
+0x018 BusInterruptLevel
: 0
+0x01c BusInterruptVector
: 0
+0x020 InterruptMode : 2048
+0x024 DmaChannel : 0x800
+0x028 NumberOfAccessRanges
: 0x1af0800
+0x02c AccessRanges : (null)
+0x030 StreamDescriptorSize
: 0x30
+0x034 Irp : 0x19c30000 _IRP
+0x038 InterruptObject : (null)
+0x03c DmaAdapterObject
: (null)
+0x040 RealPhysicalDeviceObject
: 0x00000001 _DEVICE_OBJECT
+0x044 Reserved : [1] 1
+0x000 MasterClockHandle
: 0xffa07aa0
+0x000 DeviceState : -6260064
+0x000 IntersectInfo : 0xffa07aa0 _STREAM_DATA_INTERSECT_INFO
+0x000 StreamNumber : 0x30
+0x004 DataRange : 0x19c20000 KSDATAFORMAT
+0x008 DataFormatBuffer
: (null)
+0x00c SizeOfDataFormatBuffer
: 0
+0x01c NumberOfBuffers : 0x1a
+0x020 TimeoutCounter : 0xe
+0x024 TimeoutOriginal : 0xf
+0x028 NextSRB : (null)
+0x02c Irp : 0xffa17a90 _IRP
+0x000 Type : 6
+0x002 Size : 0x190
+0x004 MdlAddress : 0xffa0f918 _MDL
+0x000 Next : 0xffa10d30 _MDL
+0x004 Size : 32
+0x006 MdlFlags : 8
+0x008 Process : 0xffa25020 _EPROCESS
+0x00c MappedSystemVa : 0xfe483800
+0x010 StartVa : 0x01af0000
+0x014 ByteCount : 0x800
+0x018 ByteOffset : 0x800
+0x008 Flags : 0x30
+0x00c AssociatedIrp : __unnamed
+0x000 MasterIrp : 0xffa07aa0 _IRP
+0x000 IrpCount : -6260064
+0x000 SystemBuffer : 0xffa07aa0
+0x010 ThreadListEntry : _LIST_ENTRY [ 0xffa65230 -
0xffa06e80 ]
+0x000 Flink : 0xffa65230 _LIST_ENTRY [ 0xffa02920 - 0xffa17aa0 ]
+0x004 Blink : 0xffa06e80 _LIST_ENTRY [ 0xffa17aa0 - 0xffaa1018 ]
+0x018 IoStatus : _IO_STATUS_BLOCK
+0x000 Status : 0
+0x000 Pointer : (null)
+0x004 Information : 0
+0x020 RequestorMode : 1 ''
+0x021 PendingReturned : 0x1 ''
+0x022 StackCount : 2 ''
+0x023 CurrentLocation : 4 ''
+0x024 Cancel : 0 ''
+0x025 CancelIrql : 0 ''
+0x026 ApcEnvironment : 0 ''
+0x027 AllocationFlags : 0xc ''
+0x028 UserIosb : 0x00da5d6c _IO_STATUS_BLOCK
+0x000 Status : ??
+0x000 Pointer : ????
+0x004 Information : ??
+0x02c UserEvent : 0xffa13700 _KEVENT
+0x000 Header : _DISPATCHER_HEADER
+0x030 Overlay : __unnamed
+0x000 AsynchronousParameters
: __unnamed
+0x000 AllocationSize : _LARGE_INTEGER 0xda5d6c`00000000
+0x038 CancelRoutine : (null)
+0x03c UserBuffer : 0x00db1038
+0x040 Tail : __unnamed
+0x000 Overlay : __unnamed
+0x000 Apc : _KAPC
+0x000 CompletionKey : 0x00300012
+0x030 Flags : 3
+0x034 HwInstanceExtension
: 0xffa33504
+0x038 NumberOfBytesToTransfer
: 3
+0x038 ActualBytesTransferred
: 3
+0x03c ScatterGatherBuffer
: 0xffa10f94 KSSCATTER_GATHER
+0x000 PhysicalAddress : _LARGE_INTEGER 0x1af1000`01af0800
+0x000 LowPart : 0x1af0800
+0x004 HighPart : 28250112
+0x000 u : __unnamed
+0x000 QuadPart : 121333307176585216
+0x008 Length : 0x1af1800
+0x040 NumberOfPhysicalPages
: 0
+0x044 NumberOfScatterGatherElements
: 0xffa10f9c
+0x048 Reserved : [1] 0
Memory
read error 00da5d70
From
the debugged/Checked system.sys
v4 =
v1->Tail.Overlay.CurrentStackLocation;
v26 = (char *)v1->Tail.Overlay.CurrentStackLocation;
if ( !v4 )
RtlAssert("IrpStack",
"D:\\nt\\private\\ntos\\dd\\wdm\\dvd\\class\\codguts.c", 1824u,
(PCHAR)v4);
int
__stdcall SCProcessCompletedDataRequest(char *arg1)
{
IRP *v1; // ebx@1
HW_STREAM_REQUEST_BLOCK *_arg1; // esi@1
PKSSTREAM_HEADER v3; // edi@2
struct _IRP::$::$::$::$A02EC6A2CE86544F716F4825015773AC::_IO_STACK_LOCATION
*v4; // eax@4
PMDL v5; // eax@6
PMDL v6; // ebx@6
unsigned __int32 v7;
// eax@18
CHAR *v8; // edx@18
int v9; // ecx@18
char *v10; // eax@23
CHAR *v11; // ecx@23
int v12; // ebx@23
PHW_STREAM_OBJECT v13; // edi@23
int v14; // eax@25
int (__stdcall *v15)(_DWORD,_DWORD,_DWORD); // ebx@25
int v16; // edi@25
char *v18; // eax@1
PVOID v19; // eax@17
int v20; // edx@18
PACCESS_STATE v21; // eax@18
PSECURITY_QUALITY_OF_SERVICE v22; // eax@18
PVOID v23; // eax@22
PIRP v24; // [sp+24h] [bp-Ch]@1
char *v25; //
[sp+28h] [bp-8h]@1
char *v26; //
[sp+Ch] [bp-24h]@4
PVOID v27; // [sp+2Ch] [bp-4h]@17
int v28; // [sp+18h]
[bp-18h]@18
int v29; // [sp+20h]
[bp-10h]@18
PACCESS_STATE v30; // [sp+14h] [bp-1Ch]@18
unsigned __int32
v31; // [sp+10h] [bp-20h]@18
unsigned __int32
v32; // [sp+1Ch] [bp-14h]@18
_arg1 = (HW_STREAM_REQUEST_BLOCK *)arg1;
arg1 = 0;
v1 = _arg1->Irp;
v18 = (char *)_arg1->HwDeviceExtension
- 536;
v24 = _arg1->Irp;
v25 = v18;
if ( v1 )
{
v3 = _arg1->CommandData.DataBufferArray;
if ( !v3 )
RtlAssert(
"CurrentHeader",
"D:\\nt\\private\\ntos\\dd\\wdm\\dvd\\class\\codguts.c",
0x71Du,
(PCHAR)_arg1->CommandData.DataBufferArray);
v4 =
v1->Tail.Overlay.CurrentStackLocation;
v26 = (char *)v1->Tail.Overlay.CurrentStackLocation;
if ( !v4 )
RtlAssert("IrpStack",
"D:\\nt\\private\\ntos\\dd\\wdm\\dvd\\class\\codguts.c", 1824u,
(PCHAR)v4);
v6 = v1->MdlAddress;
v5 = v6;
while ( v5 )
v5 = v5->Next;
while ( v6 )
{
if (
_arg1->StreamObject->Pio )
{
while (
!v3->OptionsFlags && !v3->Data )
v3 = (PKSSTREAM_HEADER)((char *)v3 + (unsigned int)_arg1[1].ScatterGatherBuffer);
if (
LOBYTE(_arg1[2].Status) )
{
StreamClassDebugPrint(5,
"Restoring: Index:%x, Ptr:%x\n", (char)arg1);
*(_DWORD *)&v3[1].PresentationTime.Time
= *(&_arg1[2].StreamObject->SizeOfThisPacket + (_DWORD)arg1);
}
StreamClassDebugPrint(5,
"'SCPioComplete: Irp = %x, header = %x, Data = %x\n", (char)v24);
++arg1;
v3 = (PKSSTREAM_HEADER)((char *)v3 + (unsigned int)_arg1[1].ScatterGatherBuffer);
}
v19 = _arg1[1].HwDeviceExtension;
v27 = _arg1[1].HwDeviceExtension;
if ( v19 )
{
v9 = *((_DWORD *)v25 + 46);
v20 = *(_DWORD *)(v9 + 4);
LOBYTE(v28) = _arg1->Command !=
0;
v21 = (PACCESS_STATE)v6->ByteCount;
v29 = v9;
v8 = *(CHAR **)(v20
+ 20);
v30 = v21;
v22 = (PSECURITY_QUALITY_OF_SERVICE)v6->StartVa;
v31 = (unsigned __int32)v8;
v7 = (unsigned __int32)((char *)v22 + v6->ByteOffset);
v32 = v7;
if ( !v8 )
{
RtlAssert("flushAdapterBuffers !=
NULL", "D:\\NT\\public\\sdk\\inc\\wdm.h", 0x2A72u, v8);
v9 = v29;
v7 = v32;
}
((int (__stdcall *)(int,PMDL,PVOID,unsigned
__int32,PACCESS_STATE,int))v31)(v9, v6, v27, v7, v30, v28);
}
v6 = v6->Next;
}
v23 = _arg1[1].HwDeviceExtension;
v27 = _arg1[1].HwDeviceExtension;
if ( v23 )
{
v13 = _arg1[1].StreamObject;
v31 = _arg1[1].NumberOfBuffers;
v10 = (char *)*((_DWORD *)v25 + 46);
v12
= (int)((char *)v13->ReceiveControlPacket +
v13->HwClockObject.ClockSupportFlags);
arg1 = (char *)*((_DWORD *)v25 + 46);
v11 = *(CHAR **)(*((_DWORD
*)v10 + 1) + 20);
v30 = *(PACCESS_STATE *)(*((_DWORD
*)v10 + 1) + 20);
if ( !v11 )
{
RtlAssert("flushAdapterBuffers
!= NULL", "D:\\NT\\public\\sdk\\inc\\wdm.h", 0x2A72u, v11);
v10 = arg1;
}
((int (__stdcall *)(char
*,PHW_STREAM_OBJECT,PVOID,int,unsigned __int32,_DWORD))v30)(v10, v13, v27, v12,
v31, 0);
arg1 = (char *)_arg1->NumberOfPhysicalPages;
v31 = (unsigned __int32)_arg1[1].HwDeviceExtension;
v16 = *((_DWORD *)v25 + 46);
v14 = *(_DWORD *)(v16 + 4);
v15 = *(int (__stdcall **)(_DWORD,_DWORD,_DWORD))(v14 + 28);
if ( !v15 )
RtlAssert("freeMapRegisters
!= NULL", "D:\\NT\\public\\sdk\\inc\\wdm.h", 0x2A96u, *(PCHAR
*)(v14 + 28));
v15(v16, v31,
arg1);
}
if ( *((_DWORD
*)v26 + 4) )
{
DbgBreakPoint();
ExFreePool(*((PVOID
*)v26 + 4));
}
}
return
SCProcessCompletedRequest((KIRQL)_arg1);
}
Tail:
union {
struct
Overlay;
KAPC Apc;
PVOID CompletionKey;
}
Overlay:
struct {
union {
KDEVICE_QUEUE_ENTRY
DeviceQueueEntry;
struct
{
PVOID DriverContext[4];
} _unamed2
} _unamed1
PETHREAD Thread;
PCHAR AuxiliaryBuffer;
struct {
LIST_ENTRY ListEntry;
union
{
struct
_IO_STACK_LOCATION *CurrentStackLocation;
ULONG PacketType;
};
};
PFILE_OBJECT OriginalFileObject;
}
KAPC
Apc |
PVOID
CompletionKey |
|
KDEVICE_QUEUE |
LIST_ENTRY |
*Flink |
DriverContext[0] |
||
*Blink |
DriverContext[1] |
|||||||
ULONG
SortKey |
DriverContext[2] |
|||||||
BOOLEAN
Inserted |
DriverContext[3] |
|||||||
PETHREAD
Thread |
||||||||
PCHAR
AuxiliaryBuffer |
||||||||
|
LIST_ENTRY
ListEntry |
|||||||
|
struct
_IO_STACK_LOCATION *CurrentStackLocation |
ULONG
PacketType |
||||||
PFILE_OBJECT
OriginalFileObject |
||||||||
StreamDispatchIoControl
stack:
#
ChildEBP RetAddr
00
fba0ac00 fdb57f0f STREAM!StreamDispatchIoControl (FPO:
[Non-Fpo])
01
fba0ac10 fb9ecb5d ks!KsDispatchIrp+0x126 (FPO: [Non-Fpo])
02
fba0ac34 804e3d77 STREAM!StreamClassPassThroughIrp+0xf1
(FPO: [Non-Fpo])
03
fba0ac44 8056a9ab nt!IopfCallDriver+0x31 (FPO:
[0,0,0])
04
fba0ac58 8057d9f7 nt!IopSynchronousServiceTail+0x60
(FPO: [Non-Fpo])
05
fba0ad00 8057fbfa nt!IopXxxControlFile+0x611 (FPO:
[Non-Fpo])
06
fba0ad34 804df06b nt!NtDeviceIoControlFile+0x2a (FPO:
[Non-Fpo])
07
fba0ad34 7c90ebab nt!KiFastCallEntry+0xf8 (FPO: [0,0]
TrapFrame @ fba0ad64)
08
0012ef1c 7c90d8ef ntdll!KiIntSystemCall+0x6 (FPO:
[0,0,0])
09
0012ef20 7c8016be ntdll!ZwDeviceIoControlFile+0xc
(FPO: [10,0,0])
0a
0012ef80 5e03df26 kernel32!DeviceIoControl+0x78 (FPO:
[Non-Fpo])
0b
0012efc8 5e03ea04 ksproxy!KsSynchronousDeviceControl+0x65
(FPO: [Non-Fpo])
0c
0012f020 5e041e7a ksproxy!CollectAllSets+0x45 (FPO:
[Non-Fpo])
0d
0012f0c4 5e038ddf ksproxy!AggregateSets+0x42 (FPO:
[Non-Fpo])
0e
0012f11c 5e0394c8 ksproxy!CKsInputPin::ProcessCompleteConnect+0x19d
(FPO: [Non-Fpo])
0f
0012f134 5e0484e4 ksproxy!CKsInputPin::CompleteConnect+0x12
(FPO: [Non-Fpo])
10
0012f14c 5dfaa12d ksproxy!CBasePin::ReceiveConnection+0xc2
(FPO: [Non-Fpo])
11
0012f16c 5dfaa226 qdvd!CBasePin::AttemptConnection+0x54
(FPO: [Non-Fpo])
12
0012f190 5dfaa2f8 qdvd!CBasePin::TryMediaTypes+0x64
(FPO: [Non-Fpo])
13
0012f1bc 5dfac167 qdvd!CBasePin::AgreeMediaType+0x73
(FPO: [Non-Fpo])
14
0012f1d4 7483d8d0 qdvd!CBasePin::Connect+0x55 (FPO:
[Non-Fpo])
WARNING:
Stack unwind information not available. Following
frames may be wrong.
15
0012f200 74841b51 QUARTZ!DllGetClassObject+0xa9d5
16
0012f220 5dfd38a2 QUARTZ!DllGetClassObject+0xec56
17
0012f240 5dfd4d6b qdvd!CDvdGraphBuilder::ConnectPins+0x36
(FPO: [Non-Fpo])
18
0012f280 5dfd5ef4 qdvd!CDvdGraphBuilder::HWDecodeDVDStream+0xa6
(FPO: [Non-Fpo])
19
0012f3cc 5dfd63a9 qdvd!CDvdGraphBuilder::DecodeDVDStream+0xf1
(FPO: [Non-Fpo])
1a
0012f520 5dfd6770 qdvd!CDvdGraphBuilder::RenderNavVideoOutPin+0x70
(FPO: [Non-Fpo])
1b
0012f540 1000772e qdvd!CDvdGraphBuilder::RenderDvdVideoVolume+0x155
(FPO: [Non-Fpo])
1c
0012fbdc 10009989 DVDShow!CSampleDVDPlay::InitBuildGraph(void)+0x20e
(CONV: thiscall) [c:\data\dvd-linux\margi\dvdtogo\wdm\dshow\dvdgraph.cpp @ 344]
1d
0012fc38 1000ec48 DVDShow!CSampleDVDPlay::Initialize_directshow(struct
HWND__ * hwnd = 0x00020104)+0x199 (CONV: thiscall)
[c:\data\dvd-linux\margi\dvdtogo\wdm\dshow\dvdshow.cpp @ 141]
1e
0012fcac 1000e9f1 DVDShow!ProcessMessage(unsigned long
dwMsg = 0x14, long lParam1 = 393217, long lParam2 = 131332)+0x238 (CONV: cdecl)
[c:\data\dvd-linux\margi\dvdtogo\wdm\dshow\main.cpp @ 241]
1f
0012fd10 004084ff DVDShow!DVDSendNavigatorMsg(unsigned
long dwMsg = 0x14, long lParam1 = 393217, long lParam2 = 131332)+0x21 (CONV:
cdecl) [c:\data\dvd-linux\margi\dvdtogo\wdm\dshow\main.cpp @ 169]
20
0012fe4c 0040823a DVDPlay!CDVDPlayApp::InitializeDVDNavigator(void)+0x18f
(CONV: thiscall) [c:\data\dvd-linux\margi\dvdtogo\win95\dvdplay\dvdplay.cpp @
209]
21
0012fef8 00489843 DVDPlay!CDVDPlayApp::InitInstance(void)+0x1da
(CONV: thiscall) [c:\data\dvd-linux\margi\dvdtogo\win95\dvdplay\dvdplay.cpp @
141]
22
0012ff18 004595c8 DVDPlay!AfxWinMain(struct HINSTANCE__
* hInstance = 0x00400000, struct HINSTANCE__ * hPrevInstance = 0x00000000, char
* lpCmdLine = 0x00142380 "", int nCmdShow = 1)+0x83 (CONV: stdcall)
[winmain.cpp @ 39]
23
0012ff30 004393a6 DVDPlay!WinMain(struct HINSTANCE__ *
hInstance = 0x00400000, struct HINSTANCE__ * hPrevInstance = 0x00000000, char *
lpCmdLine = 0x00142380 "", int nCmdShow = 1)+0x18 (CONV: stdcall)
[appmodul.cpp @ 30]
24
0012ffc0 7c816d4f DVDPlay!WinMainCRTStartup(void)+0x126
(CONV: cdecl) [crt0.c @ 198]
25
0012fff0 00000000 kernel32!BaseProcessStart+0x23 (FPO:
[Non-Fpo])
IRP |
... |
0x60
Tail->Overlay->CurrentStackLocation |
|
NTSTATUS
StreamClassRegisterMinidriver(
IN PVOID Argument1,
IN PVOID Argument2,
IN PHW_INITIALIZATION_DATA HwInitializationData
);
Argument1
First argument of the DriverEntry routine (DriverObject)
Argument2 Second argument of the DriverEntry routine. (Registry Path)
StreamClassRegisterAdapter