private static unsafe int DoResetRecordTask(IntPtr aPtr, uint aVersion, char *aRecordTaskID) { GCHandle gch = GCHandle.FromIntPtr(aPtr); DvServiceUpnpOrgScheduledRecording1 self = (DvServiceUpnpOrgScheduledRecording1)gch.Target; string recordTaskID = Marshal.PtrToStringAnsi((IntPtr)aRecordTaskID); self.ResetRecordTask(aVersion, recordTaskID); return(0); }