|
|
/*
* This file is generated by the automatic RPC Parser generator. (Version 0.21) * * Created on 04/09/97 at 00:00:13. */
#include "precomp.h"
#pragma hdrstop
/* Globals used throughout */ DWORD nPropertyLevel = 1; BOOL fIsFlipped = FALSE; BOOL fIgnoreFlatPart = FALSE; BOOL fIgnorePointers = FALSE;
DWORD Conformance = 0; BOOL fConformanceIsSet = FALSE;
/* ======================================================================== *
* Protocol Entry points for Interface IntraCluster * uuid=(e248d0b8-bf15-11cf-8c5e-08002bb49649) * ======================================================================== */
VOID WINAPI IntraCluster_Register(HPROTOCOL); VOID WINAPI IntraCluster_Deregister(HPROTOCOL); LPBYTE WINAPI IntraCluster_RecognizeFrame(HFRAME, LPVOID, LPVOID, DWORD, DWORD, HPROTOCOL, DWORD, LPDWORD, LPHPROTOCOL, LPDWORD); LPBYTE WINAPI IntraCluster_AttachProperties(HFRAME, LPVOID, LPVOID, DWORD, DWORD, HPROTOCOL, DWORD, DWORD); DWORD WINAPI IntraCluster_FormatProperties(HFRAME, LPVOID, LPVOID, DWORD, LPPROPERTYINST);
ENTRYPOINTS IntraCluster_EntryPoints = { IntraCluster_Register, IntraCluster_Deregister, IntraCluster_RecognizeFrame, IntraCluster_AttachProperties, IntraCluster_FormatProperties };
HPROTOCOL hIntraCluster = NULL;
/* ======================================================================== *
* Protocol Entry points for Interface ExtroCluster * uuid=(e248d0b8-bf15-11cf-8c5e-08002bb49649) * ======================================================================== */
VOID WINAPI ExtroCluster_Register(HPROTOCOL); VOID WINAPI ExtroCluster_Deregister(HPROTOCOL); LPBYTE WINAPI ExtroCluster_RecognizeFrame(HFRAME, LPVOID, LPVOID, DWORD, DWORD, HPROTOCOL, DWORD, LPDWORD, LPHPROTOCOL, LPDWORD); LPBYTE WINAPI ExtroCluster_AttachProperties(HFRAME, LPVOID, LPVOID, DWORD, DWORD, HPROTOCOL, DWORD, DWORD); DWORD WINAPI ExtroCluster_FormatProperties(HFRAME, LPVOID, LPVOID, DWORD, LPPROPERTYINST);
ENTRYPOINTS ExtroCluster_EntryPoints = { ExtroCluster_Register, ExtroCluster_Deregister, ExtroCluster_RecognizeFrame, ExtroCluster_AttachProperties, ExtroCluster_FormatProperties };
HPROTOCOL hExtroCluster = NULL;
/* ======================================================================== *
* Protocol Entry points for Interface clusapi * uuid=(b97db8b2-4c63-11cf-bff6-08002be23f2f) * ======================================================================== */
VOID WINAPI Clusapi_Register(HPROTOCOL); VOID WINAPI Clusapi_Deregister(HPROTOCOL); LPBYTE WINAPI Clusapi_RecognizeFrame(HFRAME, LPVOID, LPVOID, DWORD, DWORD, HPROTOCOL, DWORD, LPDWORD, LPHPROTOCOL, LPDWORD); LPBYTE WINAPI Clusapi_AttachProperties(HFRAME, LPVOID, LPVOID, DWORD, DWORD, HPROTOCOL, DWORD, DWORD); DWORD WINAPI Clusapi_FormatProperties(HFRAME, LPVOID, LPVOID, DWORD, LPPROPERTYINST);
ENTRYPOINTS Clusapi_EntryPoints = { Clusapi_Register, Clusapi_Deregister, Clusapi_RecognizeFrame, Clusapi_AttachProperties, Clusapi_FormatProperties };
HPROTOCOL hclusapi = NULL;
/* ======================================================================== *
* Protocol Entry points for Interface JoinVersion * uuid=(6e17aaa0-1a47-11d1-98bd-0000f875292e) * ======================================================================== */
VOID WINAPI JoinVersion_Register(HPROTOCOL); VOID WINAPI JoinVersion_Deregister(HPROTOCOL); LPBYTE WINAPI JoinVersion_RecognizeFrame(HFRAME, LPVOID, LPVOID, DWORD, DWORD, HPROTOCOL, DWORD, LPDWORD, LPHPROTOCOL, LPDWORD); LPBYTE WINAPI JoinVersion_AttachProperties(HFRAME, LPVOID, LPVOID, DWORD, DWORD, HPROTOCOL, DWORD, DWORD); DWORD WINAPI JoinVersion_FormatProperties(HFRAME, LPVOID, LPVOID, DWORD, LPPROPERTYINST);
ENTRYPOINTS JoinVersion_EntryPoints = { JoinVersion_Register, JoinVersion_Deregister, JoinVersion_RecognizeFrame, JoinVersion_AttachProperties, JoinVersion_FormatProperties };
HPROTOCOL hJoinVersion = NULL;
/* ======================================================================== *
* Function DllMain called at loading and unloading time * ======================================================================== */
DWORD Attached = 0;
BOOL WINAPI DLLEntry(HANDLE hInstance, ULONG Command, LPVOID Reserved) { if ( Command == DLL_PROCESS_ATTACH ) { if ( Attached++ == 0 ) { hIntraCluster = CreateProtocol("R_INTRACLUSTER", &IntraCluster_EntryPoints, ENTRYPOINTS_SIZE); hExtroCluster = CreateProtocol("R_EXTROCLUSTER", &ExtroCluster_EntryPoints, ENTRYPOINTS_SIZE); hclusapi = CreateProtocol("R_CLUSAPI", &Clusapi_EntryPoints, ENTRYPOINTS_SIZE); hJoinVersion = CreateProtocol("R_JOINVERSION", &JoinVersion_EntryPoints, ENTRYPOINTS_SIZE); } }
if ( Command == DLL_PROCESS_DETACH ) { if ( --Attached == 0 ) { DestroyProtocol(hIntraCluster); DestroyProtocol(hExtroCluster); DestroyProtocol(hclusapi); DestroyProtocol(hJoinVersion); } } return TRUE; }
/* ======================================================================== *
* Implementation of the entry point functions for each interface * ======================================================================== */
/*
* Interface IntraCluster, protocol RPC_IntraCluster: */
VOID WINAPI IntraCluster_Register(HPROTOCOL hProtocol) { register DWORD i;
CreatePropertyDatabase(hProtocol, nIntraClusterGenProps + nIntraClusterPrivProps);
for (i = 0; i < nIntraClusterGenProps; ++i) { AddProperty(hProtocol, &IntraCluster_GenProps[i]); }
for (i = 0; i < nIntraClusterPrivProps; ++i) { AddProperty(hProtocol, &IntraCluster_PrivProps[i]); } }
VOID WINAPI IntraCluster_Deregister(HPROTOCOL hProtocol) { DestroyPropertyDatabase(hProtocol); }
LPBYTE WINAPI IntraCluster_RecognizeFrame(HFRAME hFrame, LPBYTE MacFrame, LPBYTE lpFrame, DWORD MacType, DWORD FrameLength, HPROTOCOL hPreviousProtocol, DWORD hPreviousProtocolOffset, LPDWORD ProtocolStatusCode, LPHPROTOCOL hNextProtocol, LPDWORD InstData) { HPROTOCOL hNext=NULL; // next protocol to hand off to...
WORD nStubLength;
*ProtocolStatusCode = PROTOCOL_STATUS_CLAIMED;
#ifdef SSP_DECODE
// IF MSRPC VERSION == 4 AND AUTHPROTID !=0 THEN PASS OFF TO SSP
if((*(MacFrame + hPreviousProtocolOffset) == 4) && (*(MacFrame + hPreviousProtocolOffset + 78))) {
hNext = GetProtocolFromName("SSP"); if(hNext) {
*ProtocolStatusCode = PROTOCOL_STATUS_NEXT_PROTOCOL; *hNextProtocol = hNext; nStubLength = *((LPWORD)(MacFrame + hPreviousProtocolOffset + 74)); return(lpFrame + nStubLength); } } #endif
return(NULL); }
DWORD WINAPI IntraCluster_FormatProperties(HFRAME hFrame, LPBYTE MacFrame, LPBYTE lpFrame, DWORD nPropertyInsts, LPPROPERTYINST lpInst) { while (nPropertyInsts--) { ((FORMAT)lpInst->lpPropertyInfo->InstanceData)(lpInst); lpInst++; }
return(NMERR_SUCCESS); }
LPBYTE WINAPI IntraCluster_AttachProperties(HFRAME hFrame, LPBYTE MacFrame, LPBYTE lpFrame, DWORD MacType, DWORD FrameLength, HPROTOCOL hPreviousProtocol, DWORD hPreviousProtocolOffset, DWORD InstData) { CHAR AuthenticationProtocolID = 0; WORD nRPCLength; CHAR AuthenticationLevel; DWORD procedureNum = InstData & PROCNUM_MASK;
// IF THE MSRPC VERSION IS 4 LOOK FOR SECURITY TRAILER
if(*(MacFrame + hPreviousProtocolOffset) == 4) { AuthenticationProtocolID = *(MacFrame + hPreviousProtocolOffset + 78); nRPCLength = *((LPWORD)(MacFrame + hPreviousProtocolOffset + 74)); AuthenticationLevel = *(lpFrame + nRPCLength); }
// CHECK FOR ENCRYPTION
if(AuthenticationProtocolID && (AuthenticationLevel == 6)) { AttachPropertyInstance(hFrame, IntraCluster_GenProps[GENPROP_ENCRYPTED].hProperty, nRPCLength, lpFrame, 0, 0, 0); } else if ( procedureNum < NUM_INTRACLUSTERPROCS ) { BOOL isRequest = ((InstData & RPC_REQUEST_MASK) != 0); DWORD summaryDataSize = sizeof(DWORD); PDWORD frameData = (PDWORD)lpFrame; DWORD summaryData[2]; LPSTR callNameString;
dprintf("INTRA: procNum = %d, isReq = %d, instdata = %08X\n", procedureNum, isRequest, InstData );
InstData &= ( RPC_REQUEST_MASK | PROCNUM_MASK ); InstData |= ( INTRACLUSTER_INDEX << INTERFACE_INDEX_SHIFT ); summaryData[0] = InstData;
//
// mild hack to get Gum sequence number into summary data
//
switch ( procedureNum ) { case GUMQUEUELOCKINGUPDATE_PROC: if ( !isRequest ) { dprintf("GumQueueLockingUpdate resp: %d\n", frameData[0]); summaryData[1] = frameData[0]; summaryDataSize += sizeof( DWORD ); } break;
case GUMATTEMPTJOINUPDATE_PROC: if ( isRequest ) { dprintf("GumAttemptJoinUpdate req: %d\n", frameData[3]); summaryData[1] = frameData[3]; summaryDataSize += sizeof( DWORD ); } break;
case GUMUNLOCKUPDATE_PROC: if ( isRequest ) { dprintf("GumUnlockUpdate req: %d\n", frameData[1]); summaryData[1] = frameData[1]; summaryDataSize += sizeof( DWORD ); } break;
case GUMUPDATENODE_PROC: if ( isRequest ) { dprintf("GumUpdateNode req: %d\n", frameData[2]); summaryData[1] = frameData[2]; summaryDataSize += sizeof( DWORD ); } break;
case GUMJOINUPDATENODE_PROC: if ( isRequest ) { dprintf("GumJoinUpdateNode req: %d\n", frameData[3]); summaryData[1] = frameData[3]; summaryDataSize += sizeof( DWORD ); } break;
case GUMGETNODESEQUENCE_PROC: if ( !isRequest ) { dprintf("GumGetNodeSequence resp: %d\n", frameData[0]); summaryData[1] = frameData[0]; summaryDataSize += sizeof( DWORD ); } break;
case GUMATTEMPTLOCKINGUPDATE_PROC: if ( isRequest ) { dprintf("GumAttemptLockingUpdate req: %d\n", frameData[3]); summaryData[1] = frameData[3]; summaryDataSize += sizeof( DWORD ); } break; }
AttachPropertyInstanceEx(hFrame, IntraCluster_GenProps[GENPROP_SUMMARY].hProperty, FrameLength, lpFrame, summaryDataSize, &summaryData, 0, 0, 0);
//
// get the name of the interface and attach it as a hidden property
//
callNameString = GET_PROCEDURE_NAME( INTRACLUSTER_INDEX, procedureNum ); AttachPropertyInstanceEx(hFrame, IntraCluster_GenProps[GENPROP_CALLNAME].hProperty, FrameLength, lpFrame, strlen( callNameString ), callNameString, 0, 15, 0);
if ( summaryDataSize > sizeof( DWORD )) { AttachPropertyInstanceEx(hFrame, IntraCluster_PrivProps[INTRACLUS_PROP_SEQNUMBER].hProperty, FrameLength, lpFrame, sizeof( DWORD ), &summaryData[1], 0, 1, 0); } } else { AttachPropertyInstance(hFrame, IntraCluster_GenProps[GENPROP_ERROR_BAD_OPCODE].hProperty, FrameLength, lpFrame, 0, 0, 0); } return(NULL); }
/*
* Interface ExtroCluster, protocol RPC_ExtroCluster: */
VOID WINAPI ExtroCluster_Register(HPROTOCOL hProtocol) { register DWORD i;
CreatePropertyDatabase(hProtocol, nExtroClusterGenProps);
for (i = 0; i < nExtroClusterGenProps; ++i) { AddProperty(hProtocol, &ExtroCluster_GenProps[i]); } }
VOID WINAPI ExtroCluster_Deregister(HPROTOCOL hProtocol) { DestroyPropertyDatabase(hProtocol); }
LPBYTE WINAPI ExtroCluster_RecognizeFrame(HFRAME hFrame, LPBYTE MacFrame, LPBYTE lpFrame, DWORD MacType, DWORD FrameLength, HPROTOCOL hPreviousProtocol, DWORD hPreviousProtocolOffset, LPDWORD ProtocolStatusCode, LPHPROTOCOL hNextProtocol, LPDWORD InstData) { HPROTOCOL hNext=NULL; // next protocol to hand off to...
WORD nStubLength;
*ProtocolStatusCode = PROTOCOL_STATUS_CLAIMED;
#ifdef SSP_DECODE
// IF MSRPC VERSION == 4 AND AUTHPROTID !=0 THEN PASS OFF TO SSP
if((*(MacFrame + hPreviousProtocolOffset) == 4) && (*(MacFrame + hPreviousProtocolOffset + 78))) {
hNext = GetProtocolFromName("SSP");
if(hNext) { *ProtocolStatusCode = PROTOCOL_STATUS_NEXT_PROTOCOL; *hNextProtocol = hNext; nStubLength = *((LPWORD)(MacFrame + hPreviousProtocolOffset + 74)); return(lpFrame + nStubLength); } } #endif
return(NULL); }
DWORD WINAPI ExtroCluster_FormatProperties(HFRAME hFrame, LPBYTE MacFrame, LPBYTE lpFrame, DWORD nPropertyInsts, LPPROPERTYINST lpInst) { while (nPropertyInsts--) { ((FORMAT)lpInst->lpPropertyInfo->InstanceData)(lpInst); lpInst++; }
return(NMERR_SUCCESS); }
LPBYTE WINAPI ExtroCluster_AttachProperties(HFRAME hFrame, LPBYTE MacFrame, LPBYTE lpFrame, DWORD MacType, DWORD FrameLength, HPROTOCOL hPreviousProtocol, DWORD hPreviousProtocolOffset, DWORD InstData) { CHAR AuthenticationProtocolID = 0; WORD nRPCLength; CHAR AuthenticationLevel; DWORD procedureNum = InstData & PROCNUM_MASK;
// IF THE MSRPC VERSION IS 4 LOOK FOR SECURITY TRAILER
if(*(MacFrame + hPreviousProtocolOffset) == 4) {
AuthenticationProtocolID = *(MacFrame + hPreviousProtocolOffset + 78); nRPCLength = *((LPWORD)(MacFrame + hPreviousProtocolOffset + 74)); AuthenticationLevel = *(lpFrame + nRPCLength); }
// CHECK FOR ENCRYPTION
if(AuthenticationProtocolID && (AuthenticationLevel == 6)) {
AttachPropertyInstance(hFrame, ExtroCluster_GenProps[GENPROP_ENCRYPTED].hProperty, nRPCLength, lpFrame, 0, 0, 0); } else if ( procedureNum < NUM_EXTROCLUSTERPROCS ) { LPSTR callNameString;
InstData &= ( RPC_REQUEST_MASK | PROCNUM_MASK ); InstData |= ( EXTROCLUSTER_INDEX << INTERFACE_INDEX_SHIFT );
dprintf("EXTRO: procNum = %d, instdata = %08X\n", procedureNum, InstData );
AttachPropertyInstanceEx(hFrame, ExtroCluster_GenProps[GENPROP_SUMMARY].hProperty, FrameLength, lpFrame, sizeof(DWORD), &InstData, 0, 0, 0);
//
// get the name of the interface and attach it as a hidden property
//
callNameString = GET_PROCEDURE_NAME( EXTROCLUSTER_INDEX, procedureNum ); AttachPropertyInstanceEx(hFrame, ExtroCluster_GenProps[GENPROP_CALLNAME].hProperty, FrameLength, lpFrame, strlen( callNameString ), callNameString, 0, 15, 0); } else { AttachPropertyInstance(hFrame, ExtroCluster_GenProps[GENPROP_ERROR_BAD_OPCODE].hProperty, FrameLength, lpFrame, 0, 0, 0); } return(NULL); }
/*
* Interface clusapi, protocol RPC_clusapi: */
VOID WINAPI Clusapi_Register( HPROTOCOL hProtocol ) { register DWORD i;
CreatePropertyDatabase(hProtocol, nClusapiGenProps);
for (i = 0; i < nClusapiGenProps; ++i) { AddProperty(hProtocol, &Clusapi_GenProps[i]); } }
VOID WINAPI Clusapi_Deregister( HPROTOCOL hProtocol ) { DestroyPropertyDatabase(hProtocol); }
LPBYTE WINAPI Clusapi_RecognizeFrame( HFRAME hFrame, LPBYTE MacFrame, LPBYTE lpFrame, DWORD MacType, DWORD FrameLength, HPROTOCOL hPreviousProtocol, DWORD hPreviousProtocolOffset, LPDWORD ProtocolStatusCode, LPHPROTOCOL hNextProtocol, LPDWORD InstData ) { HPROTOCOL hNext=NULL; // next protocol to hand off to...
WORD nStubLength;
*ProtocolStatusCode = PROTOCOL_STATUS_CLAIMED;
#ifdef SSP_DECODE
// IF MSRPC VERSION == 4 AND AUTHPROTID !=0 THEN PASS OFF TO SSP
if((*(MacFrame + hPreviousProtocolOffset) == 4) && (*(MacFrame + hPreviousProtocolOffset + 78))) {
hNext = GetProtocolFromName("SSP");
if(hNext) { *ProtocolStatusCode = PROTOCOL_STATUS_NEXT_PROTOCOL; *hNextProtocol = hNext; nStubLength = *((LPWORD)(MacFrame + hPreviousProtocolOffset + 74)); return(lpFrame + nStubLength); } } #endif
return(NULL); }
DWORD WINAPI Clusapi_FormatProperties( HFRAME hFrame, LPBYTE MacFrame, LPBYTE lpFrame, DWORD nPropertyInsts, LPPROPERTYINST lpInst ) { while (nPropertyInsts--) { ((FORMAT)lpInst->lpPropertyInfo->InstanceData)(lpInst); lpInst++; }
return(NMERR_SUCCESS); }
LPBYTE WINAPI Clusapi_AttachProperties( HFRAME hFrame, LPBYTE MacFrame, LPBYTE lpFrame, DWORD MacType, DWORD FrameLength, HPROTOCOL hPreviousProtocol, DWORD hPreviousProtocolOffset, DWORD InstData ) { CHAR AuthenticationProtocolID = 0; WORD nRPCLength; CHAR AuthenticationLevel; DWORD procedureNum = InstData & PROCNUM_MASK;
// IF THE MSRPC VERSION IS 4 LOOK FOR SECURITY TRAILER
if(*(MacFrame + hPreviousProtocolOffset) == 4) {
AuthenticationProtocolID = *(MacFrame + hPreviousProtocolOffset + 78); nRPCLength = *((LPWORD)(MacFrame + hPreviousProtocolOffset + 74)); AuthenticationLevel = *(lpFrame + nRPCLength); }
// CHECK FOR ENCRYPTION
if(AuthenticationProtocolID && (AuthenticationLevel == 6)) {
AttachPropertyInstance(hFrame, Clusapi_GenProps[GENPROP_ENCRYPTED].hProperty, nRPCLength, lpFrame, 0, 0, 0); } else if ( procedureNum < NUM_CLUSAPIPROCS ) { LPSTR callNameString;
InstData &= ( RPC_REQUEST_MASK | PROCNUM_MASK ); InstData |= ( CLUSAPI_INDEX << INTERFACE_INDEX_SHIFT );
dprintf("CLUSAPI: procNum = %d, instdata = %08X\n", procedureNum, InstData );
AttachPropertyInstanceEx(hFrame, Clusapi_GenProps[GENPROP_SUMMARY].hProperty, FrameLength, lpFrame, sizeof(DWORD), &InstData, 0, 0, 0);
//
// get the name of the interface and attach it as a hidden property
//
callNameString = GET_PROCEDURE_NAME( CLUSAPI_INDEX, procedureNum ); AttachPropertyInstanceEx(hFrame, Clusapi_GenProps[GENPROP_CALLNAME].hProperty, FrameLength, lpFrame, strlen( callNameString ), callNameString, 0, 15, 0); } else { AttachPropertyInstance(hFrame, Clusapi_GenProps[GENPROP_ERROR_BAD_OPCODE].hProperty, FrameLength, lpFrame, 0, 0, 0); } return(NULL); }
/*
* Interface JoinVersion, protocol RPC_JoinVersion: */
VOID WINAPI JoinVersion_Register(HPROTOCOL hProtocol) { register DWORD i;
CreatePropertyDatabase(hProtocol, nJoinVersionGenProps);
for (i = 0; i < nJoinVersionGenProps; ++i) { AddProperty(hProtocol, &JoinVersion_GenProps[i]); } }
VOID WINAPI JoinVersion_Deregister(HPROTOCOL hProtocol) { DestroyPropertyDatabase(hProtocol); }
LPBYTE WINAPI JoinVersion_RecognizeFrame( HFRAME hFrame, LPBYTE MacFrame, LPBYTE lpFrame, DWORD MacType, DWORD FrameLength, HPROTOCOL hPreviousProtocol, DWORD hPreviousProtocolOffset, LPDWORD ProtocolStatusCode, LPHPROTOCOL hNextProtocol, LPDWORD InstData ) { HPROTOCOL hNext=NULL; // next protocol to hand off to...
WORD nStubLength;
*ProtocolStatusCode = PROTOCOL_STATUS_CLAIMED;
#ifdef SSP_DECODE
// IF MSRPC VERSION == 4 AND AUTHPROTID !=0 THEN PASS OFF TO SSP
if((*(MacFrame + hPreviousProtocolOffset) == 4) && (*(MacFrame + hPreviousProtocolOffset + 78))) {
hNext = GetProtocolFromName("SSP");
if(hNext) { *ProtocolStatusCode = PROTOCOL_STATUS_NEXT_PROTOCOL; *hNextProtocol = hNext; nStubLength = *((LPWORD)(MacFrame + hPreviousProtocolOffset + 74)); return(lpFrame + nStubLength); } } #endif
return(NULL); }
DWORD WINAPI JoinVersion_FormatProperties( HFRAME hFrame, LPBYTE MacFrame, LPBYTE lpFrame, DWORD nPropertyInsts, LPPROPERTYINST lpInst ) { while (nPropertyInsts--) { ((FORMAT)lpInst->lpPropertyInfo->InstanceData)(lpInst); lpInst++; }
return(NMERR_SUCCESS); }
LPBYTE WINAPI JoinVersion_AttachProperties( HFRAME hFrame, LPBYTE MacFrame, LPBYTE lpFrame, DWORD MacType, DWORD FrameLength, HPROTOCOL hPreviousProtocol, DWORD hPreviousProtocolOffset, DWORD InstData ) { CHAR AuthenticationProtocolID = 0; WORD nRPCLength; CHAR AuthenticationLevel; DWORD procedureNum = InstData & PROCNUM_MASK;
// IF THE MSRPC VERSION IS 4 LOOK FOR SECURITY TRAILER
if(*(MacFrame + hPreviousProtocolOffset) == 4) {
AuthenticationProtocolID = *(MacFrame + hPreviousProtocolOffset + 78); nRPCLength = *((LPWORD)(MacFrame + hPreviousProtocolOffset + 74)); AuthenticationLevel = *(lpFrame + nRPCLength); }
// CHECK FOR ENCRYPTION
if(AuthenticationProtocolID && (AuthenticationLevel == 6)) {
AttachPropertyInstance(hFrame, JoinVersion_GenProps[GENPROP_ENCRYPTED].hProperty, nRPCLength, lpFrame, 0, 0, 0); } else if ( procedureNum < NUM_JOINVERSIONPROCS ) { LPSTR callNameString;
InstData &= ( RPC_REQUEST_MASK | PROCNUM_MASK ); InstData |= ( JOINVERSION_INDEX << INTERFACE_INDEX_SHIFT );
dprintf("JOINVERSION: procNum = %d, instdata = %08X\n", procedureNum, InstData );
AttachPropertyInstanceEx(hFrame, JoinVersion_GenProps[GENPROP_SUMMARY].hProperty, FrameLength, lpFrame, sizeof(DWORD), &InstData, 0, 0, 0); //
// get the name of the interface and attach it as a hidden property
//
callNameString = GET_PROCEDURE_NAME( JOINVERSION_INDEX, procedureNum ); AttachPropertyInstanceEx(hFrame, JoinVersion_GenProps[GENPROP_CALLNAME].hProperty, FrameLength, lpFrame, strlen( callNameString ), callNameString, 0, 15, 0); } else { AttachPropertyInstance(hFrame, JoinVersion_GenProps[GENPROP_ERROR_BAD_OPCODE].hProperty, FrameLength, lpFrame, 0, 0, 0); } return(NULL); }
|