internal WaitChainNode(WctObjectType type, WctObjectStatus status, String name, Int64 timeout, Boolean alertable) : this(type, status) { VerifyLock(); m_objectName = name; m_timeout = timeout; m_alertable = alertable; }
internal WaitChainNode(WctObjectType type, WctObjectStatus status, Int32 processId, Int32 threadId, Int32 waitTime, Int32 contextSwitches) : this(type, status) { VerifyThread(); m_processId = processId; m_threadId = threadId; m_waitTime = waitTime; m_contextSwitches = contextSwitches; }
private static unsafe IList <WaitChainNode> BytesToWaitChainNodeInfoList(Byte[] bytes) { List <WaitChainNode> chain = new List <WaitChainNode>(); for (Int32 index = 0; index < bytes.Length; index += c_SizeOfWaitChainNode) { WctObjectType type = (WctObjectType)BitConverter.ToInt32(bytes, index + 0); WctObjectStatus status = (WctObjectStatus)BitConverter.ToInt32(bytes, index + 4); WaitChainNode wcni; switch (type) { case WctObjectType.CriticalSection: case WctObjectType.Mutex: String name = null; fixed(Byte *pb = &bytes[index + 8]) { Char *pc = (Char *)pb; // Find the first 0 character in the name Int32 length = 0; for (; (pc[length] != 0) && (length < c_ObjectNameLength); length++) { ; } if (length > 0) { name = new String(pc, 0, length); } } Int64 timeout = BitConverter.ToInt64(bytes, index + 8 + (c_ObjectNameLength * 2)); Boolean alertable = BitConverter.ToBoolean(bytes, index + 8 + (c_ObjectNameLength * 2) + 8); wcni = new WaitChainNode(type, status, name, timeout, alertable); break; default: Int32 processId = BitConverter.ToInt32(bytes, index + 8); Int32 threadId = BitConverter.ToInt32(bytes, index + 12); // Can be 0 Int32 waitTime = BitConverter.ToInt32(bytes, index + 16); Int32 contextSwitches = BitConverter.ToInt32(bytes, index + 20); wcni = new WaitChainNode(type, status, processId, threadId, waitTime, contextSwitches); break; } chain.Add(wcni); } return(chain); }
internal WaitChainNode(WctObjectType type, WctObjectStatus status, Int32 processId, Int32 threadId, Int32 waitTime, Int32 contextSwitches) : this(type, status) { VerifyThread(); m_processId = processId; m_threadId = threadId; m_waitTime = waitTime; m_contextSwitches = contextSwitches; }
internal WaitChainNode(WctObjectType type, WctObjectStatus status, String name, Int64 timeout, Boolean alertable) : this(type, status) { VerifyLock(); m_objectName = name; m_timeout = timeout; m_alertable = alertable; }
internal WaitChainNode(WctObjectType type, WctObjectStatus status) { m_objectType = type; m_objectStatus = status; }
internal WaitChainNode(WctObjectType type, WctObjectStatus status) { m_objectType = type; m_objectStatus = status; }