private void SendControlMessageThread(R_MESSAGE_FORM message) { if (!SendControlMessage(message.Type, message)) { MessageBox.Show(String.Format("Failed to send a control message : 0x{0:4X}", message.Type), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void GetRequiredOffsets(REQUIRED_OFFSET Required) { R_MESSAGE_FORM message = new R_MESSAGE_FORM(); message.Required = new REQUIRED_OFFSET(); message.Type = RESPONSE_REQUIRED_OFFSET; if (Required != null) { message.Required.ObjectName = Required.ObjectName.Trim(); message.Required.FieldName = Required.FieldName.Trim(); // Query to 'KernelObjects' class. if ((message.Required.ObjectName.Length > 0) && (message.Required.FieldName.Length > 0)) { int tmp = KernelObjects.IndexOfThisObject(KernelObjects.Registered, message.Required.ObjectName); if (tmp != -1) { tmp = KernelObjects.Registered[tmp].GetFieldOffset(message.Required.FieldName); if (tmp != -1) { message.Required.Offset = (uint)tmp; } } } } if (message.Required.Offset == 0) { message.Res = 0xFFFF; // Signal for Failure. //MessageBox.Show("Failed to get offset required by Driver : " + Required.ObjectName + "!" + Required.FieldName); Thread messageThread = new Thread(() => MessageBox.Show("Failed to get Offset that required by Driver : " + Required.ObjectName + "!" + Required.FieldName)); messageThread.Start(); } SendControlMessage(message.Type, message); }
private static extern bool SendControlMessage(ushort ctlCode, [In, Out] R_MESSAGE_FORM message);