예제 #1
0
 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);
     }
 }
예제 #2
0
        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);
        }
예제 #3
0
 private static extern bool SendControlMessage(ushort ctlCode, [In, Out] R_MESSAGE_FORM message);