NTSTATUS
TdInputThread( PTD pTd )
{
(void) IcaChannelInput( pTd->pContext,
Channel_Command,
0,
NULL,
(PCHAR) &Command,
sizeof(Command) );
}
1: kd> p
TDTCP!TdInputThread+0x3d1:
b98a7613 c785ecf7ffff02000000 mov dword ptr [ebp-814h],2
1: kd> p
TDTCP!TdInputThread+0x3db:
b98a761d e9f1010000 jmp TDTCP!TdInputThread+0x5d1 (b98a7813)
1: kd> p
TDTCP!TdInputThread+0x5d1:
b98a7813 6808080000 push 808h
1: kd> t
Breakpoint 6 hit
TDTCP!IcaChannelInput:
b98acb90 ff2528d08ab9 jmp dword ptr [TDTCP!_imp__IcaChannelInput (b98ad028)]
1: kd> kc
00 TDTCP!IcaChannelInput
01 termdd!_IcaDriverThread
02 nt!PspSystemThreadStartup
03 nt!KiThreadStartup
1: kd> p
termdd!IcaChannelInput:
ba84fa6c 55 push ebp
1: kd> kc
00 termdd!IcaChannelInput
01 TDTCP!TdInputThread
02 termdd!_IcaDriverThread
03 nt!PspSystemThreadStartup
04 nt!KiThreadStartup
1: kd> bp termdd!IcaChannelInputInternal
1: kd> g
Breakpoint 13 hit
termdd!IcaChannelInputInternal:
ba84ebce 55 push ebp
1: kd> kc
00 termdd!IcaChannelInputInternal
01 termdd!IcaChannelInput
02 RDPWD!MCSIcaChannelInput
03 termdd!IcaChannelInput
04 TDTCP!TdInputThread
05 termdd!_IcaDriverThread
06 nt!PspSystemThreadStartup
07 nt!KiThreadStartup
1: kd> dv
pStack = 0x89304020
ChannelClass = Channel_Command (0n4)
VirtualClass = 0n0
pInBuf = 0x00000000
pBuffer = 0xb9b7c548 "???"
ByteCount = 0x808
pChannel = 0x80ae2bca
Status = 0n-1165694001
cancelIrql = 0x08 ''
SdIoctl = struct _SD_IOCTL
IrpSp = 0x00000000
CopyCount = 0
pConnect = 0xb9b7c4c8
Irp = 0x00000808
pFilterBuf = 0x00000000
case Channel_Command :
if ( ByteCount < sizeof(ICA_COMMAND_HEADER) ) {
TRACESTACK(( pStack, TC_ICADD, TT_ERROR,
"TermDD: IcaChannelInputInternal: Channel_command bad bytecount\n" ));
break;
}
pHeader = (PICA_COMMAND_HEADER) pBuffer;
switch ( pHeader->Command ) {
case ICA_COMMAND_BROKEN_CONNECTION :
TRACESTACK(( pStack, TC_ICADD, TT_API1,
"TermDD: IcaChannelInputInternal, Broken Connection\n" ));
/* set closing flag */
pStack->fClosing = TRUE;
srv03rtm/public/internal/termsrv/inc/icadd.h
/*
* IcaTrace - Trace Class
*/
#define TC_ICASRV 0x00000001 // ica service
#define TC_ICAAPI 0x00000002 // icadd interface dll
#define TC_ICADD 0x00000004 // ica device driver
#define TC_WD 0x00000008 // winstation driver
#define TC_CD 0x00000010 // connection driver
#define TC_PD 0x00000020 // protocol driver
#define TC_TD 0x00000040 // transport driver
#define TC_RELIABLE 0x00000100 // reliable protocol driver
#define TC_FRAME 0x00000200 // frame protocol driver
#define TC_COMP 0x00000400 // compression
#define TC_CRYPT 0x00000800 // encryption
#define TC_TW 0x10000000 // thinwire
#define TC_DISPLAY 0x10000000 // display driver
#define TC_WFSHELL 0x20000000
#define TC_WX 0x40000000 // winstation extension
#define TC_LOAD 0x80000000 // load balancing
#define TC_ALL 0xffffffff // everything