/* Base on the prompt string id to find the question. */
UINT8* FindQuestionFromStringId(IN HII_IFR_PACKAGE_INSTANCE *FormPackage, IN EFI_STRING_ID KeywordStrId)
/* Base on the prompt string id to find the question. */
UINT8* FindQuestionFromStringId(IN HII_IFR_PACKAGE_INSTANCE *FormPackage, IN EFI_STRING_ID KeywordStrId)
{
  UINT8                     *OpCodeData;
  UINT32                    Offset;
  EFI_IFR_STATEMENT_HEADER  *StatementHeader;
  EFI_IFR_OP_HEADER         *OpCodeHeader;
  UINT32                    FormDataLen;
  ASSERT (FormPackage != NULL);
  FormDataLen = FormPackage->FormPkgHdr.Length - sizeof (EFI_HII_PACKAGE_HEADER);
  Offset      = 0;
  while (Offset < FormDataLen) {
    OpCodeData   = FormPackage->IfrData + Offset;
    OpCodeHeader = (EFI_IFR_OP_HEADER *)OpCodeData;
    if (IsStatementOpCode (OpCodeHeader->OpCode)) {
      StatementHeader = (EFI_IFR_STATEMENT_HEADER *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER));
      if (StatementHeader->Prompt == KeywordStrId) {
        return OpCodeData;
      }
    }
    Offset += OpCodeHeader->Length;
  }
  return NULL;
}