帮我看一下一个函数的语法。。。
就是这个struct里的函数IOReq。。。(不会是构造函数吧。。。)
冒号后面的type(rq), SizeRequested(sr), SizeCopied(sc)这个看不懂。。。
帮我解释一下这种用法。。。
struct IOReq
{
#ifdef DRIVER
LIST_ENTRY entry;
PVOID pData;
#else
DWORD Reserved1;
DWORD Reserved2;
DWORD Reserved3;
#endif
ULONG SizeRequested,SizeCopied;
CHAR type;
#ifdef DRIVER
IOReq(CHAR rq,ULONG sr=NULL,ULONG sc=NULL,PVOID orig=NULL)
: type(rq), SizeRequested(sr), SizeCopied(sc)
{
if (SizeCopied)
{
pData=ExAllocatePool(NonPagedPool,SizeCopied);
RtlCopyMemory(pData,orig,SizeCopied);
}
else
pData=NULL;
}
~IOReq() { if (pData) ExFreePool(pData); };
#endif
};