|
|
/*
* This file is generated by the automatic RPC Parser generator. (Version 0.21) * * Created on 04/09/97 at 00:00:13. */
#include <stdio.h>
#include "funcs.h"
/*
* The following functions are generated by default and used by * the AttachProperties functions below. */
void WINAPIV GenericFormatSummary(LPPROPERTYINST lpPropertyInst) { DWORD Data = lpPropertyInst->lpPropertyInstEx->Dword[0]; BOOL fIsRequest = ((Data & 0x80000000) != 0); WORD nProcedure = (WORD)(Data & 0xffff); WORD nInterface = ((WORD)(Data & 0x7fff) >> 16);
wsprintf(lpPropertyInst->szPropertyText, "RPC %s %s:%s(..)", (fIsRequest)?"Client call":"Server response", InterfaceNames[nInterface], ProcedureNames[ProcedureNameIndex[nInterface] + nProcedure - FirstProcedureNumber[nInterface]]); }
void GenericAttachByte(HPROPERTY hProperty, HFRAME hFrame, LPBYTE lpData, DWORD IndentLevel) { if (IndentLevel > 14) IndentLevel = 14; AttachPropertyInstance(hFrame, hProperty, sizeof(BYTE), lpData, 0, IndentLevel, 0); }
void GenericAttachWord(HPROPERTY hProperty, HFRAME hFrame, LPBYTE lpData, DWORD IndentLevel) { if (IndentLevel > 14) IndentLevel = 14; AttachPropertyInstance(hFrame, hProperty, sizeof(WORD), lpData, 0, IndentLevel, (fIsFlipped)?IFLAG_SWAPPED:0); }
void GenericAttachDword(HPROPERTY hProperty, HFRAME hFrame, LPBYTE lpData, DWORD IndentLevel) { if (IndentLevel > 14) IndentLevel = 14; AttachPropertyInstance(hFrame, hProperty, sizeof(DWORD), lpData, 0, IndentLevel, (fIsFlipped)?IFLAG_SWAPPED:0); }
void GenericAttachLargeint(HPROPERTY hProperty, HFRAME hFrame, LPBYTE lpData, DWORD IndentLevel) { if (IndentLevel > 14) IndentLevel = 14; AttachPropertyInstance(hFrame, hProperty, 8, lpData, 0, IndentLevel, (fIsFlipped)?IFLAG_SWAPPED:0); }
void GenericAttachString(HPROPERTY hProperty, HFRAME hFrame, LPBYTE lpData, DWORD nLength, DWORD IndentLevel) { if (IndentLevel > 14) IndentLevel = 14; AttachPropertyInstance(hFrame, hProperty, nLength, lpData, 0, IndentLevel, 0); }
void GenericAttachUnicodeString(HPROPERTY hProperty, HFRAME hFrame, LPBYTE lpData, DWORD nLength, DWORD IndentLevel) { TYPED_STRING ts;
ts.StringType = TYPED_STRING_UNICODE; ts.lpString = lpData; if (IndentLevel > 14) IndentLevel = 14; if (nLength) AttachPropertyInstanceEx(hFrame, hProperty, nLength, lpData, nLength, &ts, 0, IndentLevel, 0); }
void GenericAttachAnything(HPROPERTY hProperty, HFRAME hFrame, LPBYTE lpData, DWORD nLength, DWORD IndentLevel) { if (IndentLevel > 14) IndentLevel = 14; AttachPropertyInstance(hFrame, hProperty, nLength, lpData, 0, IndentLevel, 0); }
void GenericAttachStruct(HPROPERTY hProperty, HFRAME hFrame, LPBYTE lpData, DWORD nLength, DWORD IndentLevel) { if (IndentLevel > 14) IndentLevel = 14; AttachPropertyInstance(hFrame, hProperty, nLength, lpData, 0, IndentLevel, 0); }
void GenericAttachID(HPROPERTY hProperty, HFRAME hFrame, LPBYTE lpData, DWORD IndentLevel) { if (IndentLevel > 14) IndentLevel = 14; AttachPropertyInstance(hFrame, hProperty, 16, lpData, 0, IndentLevel, 0); }
DWORD WINAPI resmon_RmCreateResource_AttachProperties( HFRAME hFrame, LPBYTE lpData, DWORD FrameLength, DWORD nCurrentInterface, DWORD InstData) { /* Decompose the InstData information. */ BOOL fIsRequest = ((InstData & 0x80000000) != 0); WORD Version = ((WORD)(InstData >> 16) & 0x3fff);
BOOL fExtensions = 0;
DWORD nOffset = 0;
/* These are specifically for calling handler functions */ DWORD PointerDataOffset = nOffset; DWORD *lpdwPointerDataOffset = &PointerDataOffset;
fIsFlipped = ((InstData & 0x40000000) != 0);
nCurrentInterface = (nCurrentInterface & 0x7fff) << 16; InstData &= 0x8000ffff; InstData |= nCurrentInterface; AttachPropertyInstanceEx(hFrame, resmon_Database[I0_SUMMARY].hProperty, FrameLength, lpData, sizeof(DWORD), &InstData, 0, 0, 0);
/* Take different action based on the direction */ /* If fIsRequest is TRUE, the packet originated from the client. */ if (fIsRequest) { fConformanceIsSet = FALSE; nOffset = DllName_Handler_0(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
fConformanceIsSet = FALSE; nOffset = ResourceType_Handler_1(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
fConformanceIsSet = FALSE; nOffset = ResourceName_Handler_2(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_LOOKSALIVEPOLL_3].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_ISALIVEPOLL_4].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_NOTIFYKEY_5].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_PENDINGTIMEOUT_6].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} else { fConformanceIsSet = FALSE; nOffset = Value_Handler_3(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
} return(nOffset); }
DWORD WINAPI resmon_RmCloseResource_AttachProperties( HFRAME hFrame, LPBYTE lpData, DWORD FrameLength, DWORD nCurrentInterface, DWORD InstData) { /* Decompose the InstData information. */ BOOL fIsRequest = ((InstData & 0x80000000) != 0); WORD Version = ((WORD)(InstData >> 16) & 0x3fff);
BOOL fExtensions = 0;
DWORD nOffset = 0;
/* These are specifically for calling handler functions */ DWORD PointerDataOffset = nOffset; DWORD *lpdwPointerDataOffset = &PointerDataOffset;
fIsFlipped = ((InstData & 0x40000000) != 0);
nCurrentInterface = (nCurrentInterface & 0x7fff) << 16; InstData &= 0x8000ffff; InstData |= nCurrentInterface; AttachPropertyInstanceEx(hFrame, resmon_Database[I0_SUMMARY].hProperty, FrameLength, lpData, sizeof(DWORD), &InstData, 0, 0, 0);
/* Take different action based on the direction */ /* If fIsRequest is TRUE, the packet originated from the client. */ if (fIsRequest) { fConformanceIsSet = FALSE; nOffset = ResourceId_Handler_4(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
} else { fConformanceIsSet = FALSE; nOffset = ResourceId_Handler_4(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
} return(nOffset); }
DWORD WINAPI resmon_RmChangeResourceParams_AttachProperties( HFRAME hFrame, LPBYTE lpData, DWORD FrameLength, DWORD nCurrentInterface, DWORD InstData) { /* Decompose the InstData information. */ BOOL fIsRequest = ((InstData & 0x80000000) != 0); WORD Version = ((WORD)(InstData >> 16) & 0x3fff);
BOOL fExtensions = 0;
DWORD nOffset = 0;
/* These are specifically for calling handler functions */ DWORD PointerDataOffset = nOffset; DWORD *lpdwPointerDataOffset = &PointerDataOffset;
fIsFlipped = ((InstData & 0x40000000) != 0);
nCurrentInterface = (nCurrentInterface & 0x7fff) << 16; InstData &= 0x8000ffff; InstData |= nCurrentInterface; AttachPropertyInstanceEx(hFrame, resmon_Database[I0_SUMMARY].hProperty, FrameLength, lpData, sizeof(DWORD), &InstData, 0, 0, 0);
/* Take different action based on the direction */ /* If fIsRequest is TRUE, the packet originated from the client. */ if (fIsRequest) { fConformanceIsSet = FALSE; nOffset = ResourceId_Handler_5(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_LOOKSALIVEPOLL_3].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_ISALIVEPOLL_4].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_PENDINGTIMEOUT_6].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} else { ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_RETURN_VALUE_9].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} return(nOffset); }
DWORD WINAPI resmon_RmOnlineResource_AttachProperties( HFRAME hFrame, LPBYTE lpData, DWORD FrameLength, DWORD nCurrentInterface, DWORD InstData) { /* Decompose the InstData information. */ BOOL fIsRequest = ((InstData & 0x80000000) != 0); WORD Version = ((WORD)(InstData >> 16) & 0x3fff);
BOOL fExtensions = 0;
DWORD nOffset = 0;
/* These are specifically for calling handler functions */ DWORD PointerDataOffset = nOffset; DWORD *lpdwPointerDataOffset = &PointerDataOffset;
fIsFlipped = ((InstData & 0x40000000) != 0);
nCurrentInterface = (nCurrentInterface & 0x7fff) << 16; InstData &= 0x8000ffff; InstData |= nCurrentInterface; AttachPropertyInstanceEx(hFrame, resmon_Database[I0_SUMMARY].hProperty, FrameLength, lpData, sizeof(DWORD), &InstData, 0, 0, 0);
/* Take different action based on the direction */ /* If fIsRequest is TRUE, the packet originated from the client. */ if (fIsRequest) { fConformanceIsSet = FALSE; nOffset = ResourceId_Handler_5(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
} else { ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_PDWSTATE_10].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_RETURN_VALUE_9].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} return(nOffset); }
DWORD WINAPI resmon_RmOfflineResource_AttachProperties( HFRAME hFrame, LPBYTE lpData, DWORD FrameLength, DWORD nCurrentInterface, DWORD InstData) { /* Decompose the InstData information. */ BOOL fIsRequest = ((InstData & 0x80000000) != 0); WORD Version = ((WORD)(InstData >> 16) & 0x3fff);
BOOL fExtensions = 0;
DWORD nOffset = 0;
/* These are specifically for calling handler functions */ DWORD PointerDataOffset = nOffset; DWORD *lpdwPointerDataOffset = &PointerDataOffset;
fIsFlipped = ((InstData & 0x40000000) != 0);
nCurrentInterface = (nCurrentInterface & 0x7fff) << 16; InstData &= 0x8000ffff; InstData |= nCurrentInterface; AttachPropertyInstanceEx(hFrame, resmon_Database[I0_SUMMARY].hProperty, FrameLength, lpData, sizeof(DWORD), &InstData, 0, 0, 0);
/* Take different action based on the direction */ /* If fIsRequest is TRUE, the packet originated from the client. */ if (fIsRequest) { fConformanceIsSet = FALSE; nOffset = ResourceId_Handler_5(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
} else { ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_PDWSTATE_10].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_RETURN_VALUE_9].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} return(nOffset); }
DWORD WINAPI resmon_RmTerminateResource_AttachProperties( HFRAME hFrame, LPBYTE lpData, DWORD FrameLength, DWORD nCurrentInterface, DWORD InstData) { /* Decompose the InstData information. */ BOOL fIsRequest = ((InstData & 0x80000000) != 0); WORD Version = ((WORD)(InstData >> 16) & 0x3fff);
BOOL fExtensions = 0;
DWORD nOffset = 0;
/* These are specifically for calling handler functions */ DWORD PointerDataOffset = nOffset; DWORD *lpdwPointerDataOffset = &PointerDataOffset;
fIsFlipped = ((InstData & 0x40000000) != 0);
nCurrentInterface = (nCurrentInterface & 0x7fff) << 16; InstData &= 0x8000ffff; InstData |= nCurrentInterface; AttachPropertyInstanceEx(hFrame, resmon_Database[I0_SUMMARY].hProperty, FrameLength, lpData, sizeof(DWORD), &InstData, 0, 0, 0);
/* Take different action based on the direction */ /* If fIsRequest is TRUE, the packet originated from the client. */ if (fIsRequest) { fConformanceIsSet = FALSE; nOffset = ResourceId_Handler_5(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
} else { } return(nOffset); }
DWORD WINAPI resmon_RmArbitrateResource_AttachProperties( HFRAME hFrame, LPBYTE lpData, DWORD FrameLength, DWORD nCurrentInterface, DWORD InstData) { /* Decompose the InstData information. */ BOOL fIsRequest = ((InstData & 0x80000000) != 0); WORD Version = ((WORD)(InstData >> 16) & 0x3fff);
BOOL fExtensions = 0;
DWORD nOffset = 0;
/* These are specifically for calling handler functions */ DWORD PointerDataOffset = nOffset; DWORD *lpdwPointerDataOffset = &PointerDataOffset;
fIsFlipped = ((InstData & 0x40000000) != 0);
nCurrentInterface = (nCurrentInterface & 0x7fff) << 16; InstData &= 0x8000ffff; InstData |= nCurrentInterface; AttachPropertyInstanceEx(hFrame, resmon_Database[I0_SUMMARY].hProperty, FrameLength, lpData, sizeof(DWORD), &InstData, 0, 0, 0);
/* Take different action based on the direction */ /* If fIsRequest is TRUE, the packet originated from the client. */ if (fIsRequest) { fConformanceIsSet = FALSE; nOffset = ResourceId_Handler_5(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
} else { ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_RETURN_VALUE_9].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} return(nOffset); }
DWORD WINAPI resmon_RmReleaseResource_AttachProperties( HFRAME hFrame, LPBYTE lpData, DWORD FrameLength, DWORD nCurrentInterface, DWORD InstData) { /* Decompose the InstData information. */ BOOL fIsRequest = ((InstData & 0x80000000) != 0); WORD Version = ((WORD)(InstData >> 16) & 0x3fff);
BOOL fExtensions = 0;
DWORD nOffset = 0;
/* These are specifically for calling handler functions */ DWORD PointerDataOffset = nOffset; DWORD *lpdwPointerDataOffset = &PointerDataOffset;
fIsFlipped = ((InstData & 0x40000000) != 0);
nCurrentInterface = (nCurrentInterface & 0x7fff) << 16; InstData &= 0x8000ffff; InstData |= nCurrentInterface; AttachPropertyInstanceEx(hFrame, resmon_Database[I0_SUMMARY].hProperty, FrameLength, lpData, sizeof(DWORD), &InstData, 0, 0, 0);
/* Take different action based on the direction */ /* If fIsRequest is TRUE, the packet originated from the client. */ if (fIsRequest) { fConformanceIsSet = FALSE; nOffset = ResourceId_Handler_5(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
} else { ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_RETURN_VALUE_9].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} return(nOffset); }
DWORD WINAPI resmon_RmNotifyChanges_AttachProperties( HFRAME hFrame, LPBYTE lpData, DWORD FrameLength, DWORD nCurrentInterface, DWORD InstData) { /* Decompose the InstData information. */ BOOL fIsRequest = ((InstData & 0x80000000) != 0); WORD Version = ((WORD)(InstData >> 16) & 0x3fff);
BOOL fExtensions = 0;
DWORD nOffset = 0;
/* These are specifically for calling handler functions */ DWORD PointerDataOffset = nOffset; DWORD *lpdwPointerDataOffset = &PointerDataOffset;
fIsFlipped = ((InstData & 0x40000000) != 0);
nCurrentInterface = (nCurrentInterface & 0x7fff) << 16; InstData &= 0x8000ffff; InstData |= nCurrentInterface; AttachPropertyInstanceEx(hFrame, resmon_Database[I0_SUMMARY].hProperty, FrameLength, lpData, sizeof(DWORD), &InstData, 0, 0, 0);
/* Take different action based on the direction */ /* If fIsRequest is TRUE, the packet originated from the client. */ if (fIsRequest) { } else { ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_LPNOTIFYKEY_11].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_LPNOTIFYEVENT_12].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_LPCURRENTSTATE_13].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_RETURN_VALUE_9].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} return(nOffset); }
DWORD WINAPI resmon_RmFailResource_AttachProperties( HFRAME hFrame, LPBYTE lpData, DWORD FrameLength, DWORD nCurrentInterface, DWORD InstData) { /* Decompose the InstData information. */ BOOL fIsRequest = ((InstData & 0x80000000) != 0); WORD Version = ((WORD)(InstData >> 16) & 0x3fff);
BOOL fExtensions = 0;
DWORD nOffset = 0;
/* These are specifically for calling handler functions */ DWORD PointerDataOffset = nOffset; DWORD *lpdwPointerDataOffset = &PointerDataOffset;
fIsFlipped = ((InstData & 0x40000000) != 0);
nCurrentInterface = (nCurrentInterface & 0x7fff) << 16; InstData &= 0x8000ffff; InstData |= nCurrentInterface; AttachPropertyInstanceEx(hFrame, resmon_Database[I0_SUMMARY].hProperty, FrameLength, lpData, sizeof(DWORD), &InstData, 0, 0, 0);
/* Take different action based on the direction */ /* If fIsRequest is TRUE, the packet originated from the client. */ if (fIsRequest) { fConformanceIsSet = FALSE; nOffset = ResourceId_Handler_5(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
} else { ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_RETURN_VALUE_9].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} return(nOffset); }
DWORD WINAPI resmon_RmShutdownProcess_AttachProperties( HFRAME hFrame, LPBYTE lpData, DWORD FrameLength, DWORD nCurrentInterface, DWORD InstData) { /* Decompose the InstData information. */ BOOL fIsRequest = ((InstData & 0x80000000) != 0); WORD Version = ((WORD)(InstData >> 16) & 0x3fff);
BOOL fExtensions = 0;
DWORD nOffset = 0;
/* These are specifically for calling handler functions */ DWORD PointerDataOffset = nOffset; DWORD *lpdwPointerDataOffset = &PointerDataOffset;
fIsFlipped = ((InstData & 0x40000000) != 0);
nCurrentInterface = (nCurrentInterface & 0x7fff) << 16; InstData &= 0x8000ffff; InstData |= nCurrentInterface; AttachPropertyInstanceEx(hFrame, resmon_Database[I0_SUMMARY].hProperty, FrameLength, lpData, sizeof(DWORD), &InstData, 0, 0, 0);
/* Take different action based on the direction */ /* If fIsRequest is TRUE, the packet originated from the client. */ if (fIsRequest) { } else { ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_RETURN_VALUE_9].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} return(nOffset); }
DWORD WINAPI resmon_RmResourceControl_AttachProperties( HFRAME hFrame, LPBYTE lpData, DWORD FrameLength, DWORD nCurrentInterface, DWORD InstData) { /* Decompose the InstData information. */ BOOL fIsRequest = ((InstData & 0x80000000) != 0); WORD Version = ((WORD)(InstData >> 16) & 0x3fff);
BOOL fExtensions = 0;
DWORD nOffset = 0;
/* These are specifically for calling handler functions */ DWORD PointerDataOffset = nOffset; DWORD *lpdwPointerDataOffset = &PointerDataOffset;
fIsFlipped = ((InstData & 0x40000000) != 0);
nCurrentInterface = (nCurrentInterface & 0x7fff) << 16; InstData &= 0x8000ffff; InstData |= nCurrentInterface; AttachPropertyInstanceEx(hFrame, resmon_Database[I0_SUMMARY].hProperty, FrameLength, lpData, sizeof(DWORD), &InstData, 0, 0, 0);
/* Take different action based on the direction */ /* If fIsRequest is TRUE, the packet originated from the client. */ if (fIsRequest) { fConformanceIsSet = FALSE; nOffset = ResourceId_Handler_5(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_CONTROLCODE_14].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
fConformanceIsSet = FALSE; nOffset = InBuffer_Handler_6(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_INBUFFERSIZE_16].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_OUTBUFFERSIZE_17].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} else { fConformanceIsSet = FALSE; nOffset = OutBuffer_Handler_7(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_LPDWORD_BYTESREFURNED_19].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_LPDWORD_REQUIRED_20].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_RETURN_VALUE_9].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} return(nOffset); }
DWORD WINAPI resmon_RmResourceTypeControl_AttachProperties( HFRAME hFrame, LPBYTE lpData, DWORD FrameLength, DWORD nCurrentInterface, DWORD InstData) { /* Decompose the InstData information. */ BOOL fIsRequest = ((InstData & 0x80000000) != 0); WORD Version = ((WORD)(InstData >> 16) & 0x3fff);
BOOL fExtensions = 0;
DWORD nOffset = 0;
/* These are specifically for calling handler functions */ DWORD PointerDataOffset = nOffset; DWORD *lpdwPointerDataOffset = &PointerDataOffset;
fIsFlipped = ((InstData & 0x40000000) != 0);
nCurrentInterface = (nCurrentInterface & 0x7fff) << 16; InstData &= 0x8000ffff; InstData |= nCurrentInterface; AttachPropertyInstanceEx(hFrame, resmon_Database[I0_SUMMARY].hProperty, FrameLength, lpData, sizeof(DWORD), &InstData, 0, 0, 0);
/* Take different action based on the direction */ /* If fIsRequest is TRUE, the packet originated from the client. */ if (fIsRequest) { fConformanceIsSet = FALSE; nOffset = ResourceTypeName_Handler_8(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
fConformanceIsSet = FALSE; nOffset = DllName_Handler_0(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_CONTROLCODE_14].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
fConformanceIsSet = FALSE; nOffset = InBuffer_Handler_9(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_INBUFFERSIZE_16].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_DWORD_OUTBUFFERSIZE_17].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} else { fConformanceIsSet = FALSE; nOffset = OutBuffer_Handler_10(hFrame, lpData, nOffset, FrameLength, lpdwPointerDataOffset);
if (*lpdwPointerDataOffset > nOffset) nOffset = *lpdwPointerDataOffset;
if ((*lpdwPointerDataOffset == 0xffffffff) || (*lpdwPointerDataOffset > FrameLength)) nOffset = FrameLength;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_LPDWORD_BYTESREFURNED_19].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_LPDWORD_REQUIRED_20].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
ALIGN(nOffset, 3); if ((nOffset+4) > FrameLength) return(FrameLength); GenericAttachDword(resmon_Database[I0_RETURN_VALUE_9].hProperty, hFrame, lpData + nOffset, nPropertyLevel); nOffset += 4;
} return(nOffset); }
DWORD DllName_Handler_0( HFRAME hFrame, LPBYTE lpData, DWORD nOffset, DWORD FrameLength, LPDWORD lpdwPointerDataOffset) { DWORD nStartOffset = nOffset; DWORD Iterations = 0;
/* LPCWSTR DllName [FC_C_WSTRING] at offset 2 */
ALIGN(nOffset, 3); nOffset += 8;
{ DWORD Length;
Length = DWORDAT(lpData + nOffset) * sizeof(wchar_t); nOffset += 4;
if ((nOffset+Length) > FrameLength) return(FrameLength);
GenericAttachUnicodeString(resmon_Database[I0_LPCWSTR_DLLNAME_22].hProperty, hFrame, lpData + nOffset, Length, nPropertyLevel); nOffset += Length; } return(nOffset); }
DWORD ResourceType_Handler_1( HFRAME hFrame, LPBYTE lpData, DWORD nOffset, DWORD FrameLength, LPDWORD lpdwPointerDataOffset) { DWORD nStartOffset = nOffset; DWORD Iterations = 0;
/* LPCWSTR ResourceType [FC_C_WSTRING] at offset 2 */
ALIGN(nOffset, 3); nOffset += 8;
{ DWORD Length;
Length = DWORDAT(lpData + nOffset) * sizeof(wchar_t); nOffset += 4;
if ((nOffset+Length) > FrameLength) return(FrameLength);
GenericAttachUnicodeString(resmon_Database[I0_LPCWSTR_RESOURCETYPE_23].hProperty, hFrame, lpData + nOffset, Length, nPropertyLevel); nOffset += Length; } return(nOffset); }
DWORD ResourceName_Handler_2( HFRAME hFrame, LPBYTE lpData, DWORD nOffset, DWORD FrameLength, LPDWORD lpdwPointerDataOffset) { DWORD nStartOffset = nOffset; DWORD Iterations = 0;
/* LPCWSTR ResourceName [FC_C_WSTRING] at offset 2 */
ALIGN(nOffset, 3); nOffset += 8;
{ DWORD Length;
Length = DWORDAT(lpData + nOffset) * sizeof(wchar_t); nOffset += 4;
if ((nOffset+Length) > FrameLength) return(FrameLength);
GenericAttachUnicodeString(resmon_Database[I0_LPCWSTR_RESOURCENAME_24].hProperty, hFrame, lpData + nOffset, Length, nPropertyLevel); nOffset += Length; } return(nOffset); }
DWORD Value_Handler_3( HFRAME hFrame, LPBYTE lpData, DWORD nOffset, DWORD FrameLength, LPDWORD lpdwPointerDataOffset) { DWORD nStartOffset = nOffset; DWORD Iterations = 0;
/* Return Value [FC_BIND_CONTEXT] at offset 4 */
ALIGN(nOffset, 3); GenericAttachStruct(resmon_Database[I0_RETURN_VALUE_25].hProperty, hFrame, lpData + nOffset, 20, nPropertyLevel);
nOffset += 20;
return(nOffset); }
DWORD ResourceId_Handler_4( HFRAME hFrame, LPBYTE lpData, DWORD nOffset, DWORD FrameLength, LPDWORD lpdwPointerDataOffset) { DWORD nStartOffset = nOffset; DWORD Iterations = 0;
/* RPC_RESID ResourceId [FC_BIND_CONTEXT] at offset 12 */
ALIGN(nOffset, 3); GenericAttachStruct(resmon_Database[I0_RPC_RESID_RESOURCEID_8].hProperty, hFrame, lpData + nOffset, 20, nPropertyLevel);
nOffset += 20;
return(nOffset); }
DWORD ResourceId_Handler_5( HFRAME hFrame, LPBYTE lpData, DWORD nOffset, DWORD FrameLength, LPDWORD lpdwPointerDataOffset) { DWORD nStartOffset = nOffset; DWORD Iterations = 0;
/* RPC_RESID ResourceId [FC_BIND_CONTEXT] at offset 16 */
ALIGN(nOffset, 3); GenericAttachStruct(resmon_Database[I0_RPC_RESID_RESOURCEID_8].hProperty, hFrame, lpData + nOffset, 20, nPropertyLevel);
nOffset += 20;
return(nOffset); }
DWORD InBuffer_Handler_6( HFRAME hFrame, LPBYTE lpData, DWORD nOffset, DWORD FrameLength, LPDWORD lpdwPointerDataOffset) { DWORD nStartOffset = nOffset; DWORD Iterations = 0;
*lpdwPointerDataOffset = nOffset + 4; /* UCHAR InBuffer [unique ptr] at offset 24 */
if (!fIgnorePointers) { { BOOL OldfIgnoreFlatPart;
OldfIgnoreFlatPart = fIgnoreFlatPart; fIgnoreFlatPart = FALSE;
ALIGN(nOffset, 3); nOffset += 4; nOffset -= 4; if (DWORDAT(lpData + nOffset) != 0) { nOffset = InBuffer_Handler_11(hFrame, lpData, *lpdwPointerDataOffset, FrameLength, lpdwPointerDataOffset);
}
fIgnoreFlatPart = OldfIgnoreFlatPart;
} } else { nOffset += 4;
}
return(nOffset); }
DWORD OutBuffer_Handler_7( HFRAME hFrame, LPBYTE lpData, DWORD nOffset, DWORD FrameLength, LPDWORD lpdwPointerDataOffset) { DWORD nStartOffset = nOffset; DWORD Iterations = 0;
/* UCHAR OutBuffer [FC_CVARRAY] at offset 42 */
if (!fConformanceIsSet) { ALIGN(nOffset, 3); Conformance = DWORDAT(lpData + nOffset); fConformanceIsSet = TRUE; nOffset += 4;
} { DWORD i = 0, OldfIgnorePointers = FALSE, ElementSize, OldOffset, FlatSize;
nOffset += 4;
Conformance = DWORDAT(lpData + nOffset); nOffset += 4;
Iterations = Conformance; ElementSize = 1; FlatSize = Conformance * ElementSize; OldOffset = nOffset; if (!fIgnoreFlatPart) { if (!fIgnorePointers) { *lpdwPointerDataOffset = nOffset + FlatSize; ALIGN(*lpdwPointerDataOffset, 3); }
ALIGN(nOffset, 0); if ((nOffset+FlatSize) > FrameLength) FlatSize = FrameLength - nOffset; GenericAttachAnything(resmon_Database[I0_UCHAR_OUTBUFFER______26].hProperty, hFrame, lpData + nOffset, FlatSize, nPropertyLevel); nOffset += FlatSize;
nOffset = OldOffset; }
nOffset = OldOffset + FlatSize; } return(nOffset); }
DWORD ResourceTypeName_Handler_8( HFRAME hFrame, LPBYTE lpData, DWORD nOffset, DWORD FrameLength, LPDWORD lpdwPointerDataOffset) { DWORD nStartOffset = nOffset; DWORD Iterations = 0;
/* LPCWSTR ResourceTypeName [FC_C_WSTRING] at offset 2 */
ALIGN(nOffset, 3); nOffset += 8;
{ DWORD Length;
Length = DWORDAT(lpData + nOffset) * sizeof(wchar_t); nOffset += 4;
if ((nOffset+Length) > FrameLength) return(FrameLength);
GenericAttachUnicodeString(resmon_Database[I0_LPCWSTR_RESOURCETYPENAME_27].hProperty, hFrame, lpData + nOffset, Length, nPropertyLevel); nOffset += Length; } return(nOffset); }
DWORD InBuffer_Handler_9( HFRAME hFrame, LPBYTE lpData, DWORD nOffset, DWORD FrameLength, LPDWORD lpdwPointerDataOffset) { DWORD nStartOffset = nOffset; DWORD Iterations = 0;
*lpdwPointerDataOffset = nOffset + 4; /* UCHAR InBuffer [unique ptr] at offset 56 */
if (!fIgnorePointers) { { BOOL OldfIgnoreFlatPart;
OldfIgnoreFlatPart = fIgnoreFlatPart; fIgnoreFlatPart = FALSE;
ALIGN(nOffset, 3); nOffset += 4; nOffset -= 4; if (DWORDAT(lpData + nOffset) != 0) { nOffset = InBuffer_Handler_12(hFrame, lpData, *lpdwPointerDataOffset, FrameLength, lpdwPointerDataOffset);
}
fIgnoreFlatPart = OldfIgnoreFlatPart;
} } else { nOffset += 4;
}
return(nOffset); }
DWORD OutBuffer_Handler_10( HFRAME hFrame, LPBYTE lpData, DWORD nOffset, DWORD FrameLength, LPDWORD lpdwPointerDataOffset) { DWORD nStartOffset = nOffset; DWORD Iterations = 0;
/* UCHAR OutBuffer [FC_CVARRAY] at offset 74 */
if (!fConformanceIsSet) { ALIGN(nOffset, 3); Conformance = DWORDAT(lpData + nOffset); fConformanceIsSet = TRUE; nOffset += 4;
} { DWORD i = 0, OldfIgnorePointers = FALSE, ElementSize, OldOffset, FlatSize;
nOffset += 4;
Conformance = DWORDAT(lpData + nOffset); nOffset += 4;
Iterations = Conformance; ElementSize = 1; FlatSize = Conformance * ElementSize; OldOffset = nOffset; if (!fIgnoreFlatPart) { if (!fIgnorePointers) { *lpdwPointerDataOffset = nOffset + FlatSize; ALIGN(*lpdwPointerDataOffset, 3); }
ALIGN(nOffset, 0); if ((nOffset+FlatSize) > FrameLength) FlatSize = FrameLength - nOffset; GenericAttachAnything(resmon_Database[I0_UCHAR_OUTBUFFER______26].hProperty, hFrame, lpData + nOffset, FlatSize, nPropertyLevel); nOffset += FlatSize;
nOffset = OldOffset; }
nOffset = OldOffset + FlatSize; } return(nOffset); }
DWORD InBuffer_Handler_11( HFRAME hFrame, LPBYTE lpData, DWORD nOffset, DWORD FrameLength, LPDWORD lpdwPointerDataOffset) { DWORD nStartOffset = nOffset; DWORD Iterations = 0;
/* UCHAR InBuffer [FC_CARRAY] at offset 28 */
if (!fConformanceIsSet) { ALIGN(nOffset, 3); Conformance = DWORDAT(lpData + nOffset); fConformanceIsSet = TRUE; nOffset += 4;
} { DWORD i = 0, OldfIgnorePointers = FALSE, ElementSize, OldOffset, FlatSize;
Iterations = Conformance; ElementSize = 1; FlatSize = Conformance * ElementSize; OldOffset = nOffset; if (!fIgnoreFlatPart) { if (!fIgnorePointers) { *lpdwPointerDataOffset = nOffset + FlatSize; ALIGN(*lpdwPointerDataOffset, 3); }
ALIGN(nOffset, 0); if ((nOffset+FlatSize) > FrameLength) FlatSize = FrameLength - nOffset; GenericAttachAnything(resmon_Database[I0_UCHAR_INBUFFER______28].hProperty, hFrame, lpData + nOffset, FlatSize, nPropertyLevel); nOffset += FlatSize;
nOffset = OldOffset; }
nOffset = OldOffset + FlatSize; } return(nOffset); }
DWORD InBuffer_Handler_12( HFRAME hFrame, LPBYTE lpData, DWORD nOffset, DWORD FrameLength, LPDWORD lpdwPointerDataOffset) { DWORD nStartOffset = nOffset; DWORD Iterations = 0;
/* UCHAR InBuffer [FC_CARRAY] at offset 60 */
if (!fConformanceIsSet) { ALIGN(nOffset, 3); Conformance = DWORDAT(lpData + nOffset); fConformanceIsSet = TRUE; nOffset += 4;
} { DWORD i = 0, OldfIgnorePointers = FALSE, ElementSize, OldOffset, FlatSize;
Iterations = Conformance; ElementSize = 1; FlatSize = Conformance * ElementSize; OldOffset = nOffset; if (!fIgnoreFlatPart) { if (!fIgnorePointers) { *lpdwPointerDataOffset = nOffset + FlatSize; ALIGN(*lpdwPointerDataOffset, 3); }
ALIGN(nOffset, 0); if ((nOffset+FlatSize) > FrameLength) FlatSize = FrameLength - nOffset; GenericAttachAnything(resmon_Database[I0_UCHAR_INBUFFER______28].hProperty, hFrame, lpData + nOffset, FlatSize, nPropertyLevel); nOffset += FlatSize;
nOffset = OldOffset; }
nOffset = OldOffset + FlatSize; } return(nOffset); }
|