NET_DVR_STD_ABILITY myNET_DVR_STD_ABILITY = new NET_DVR_STD_ABILITY();
int XML_ABILITY_OUT_LEN =2 * 1024 * 1024;
IntPtr pOutBuf = Marshal.AllocHGlobal(XML_ABILITY_OUT_LEN);
char* aChar = (char*)System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(1+"").ToPointer();
myNET_DVR_STD_ABILITY.lpCondBuffer =(IntPtr)aChar;
myNET_DVR_STD_ABILITY.dwCondSize = sizeof(int);
myNET_DVR_STD_ABILITY.lpOutBuffer = pOutBuf;
myNET_DVR_STD_ABILITY.dwOutSize =XML_ABILITY_OUT_LEN;
myNET_DVR_STD_ABILITY.lpStatusBuffer = pOutBuf;
myNET_DVR_STD_ABILITY.dwStatusSize = XML_ABILITY_OUT_LEN;
bool bitResult = CHCNetSDK.NET_DVR_GetSTDAbility(m_lUserID, 3621, ref myNET_DVR_STD_ABILITY);
if (!bitResult)
{
uint nError = CHCNetSDK.NET_DVR_GetLastError();
}
string strResult = Marshal.PtrToStringAnsi(pOutBuf, XML_ABILITY_OUT_LEN);