VMWare Vix API FindItems () الطريقة لا تعود أبدا عند الاستعلام عن VMS المسجل

StackOverflow https://stackoverflow.com/questions/383768

  •  23-08-2019
  •  | 
  •  

سؤال

أنا أستخدم VMWare Workstation 6.5 على نظام التشغيل Windows Vista X64. أحاول كتابة بعض رمز C # الذي يستخدم برنامج VMWare VIX V1.6.1 COM API للحصول على قائمة بالآلات الظاهرية المسجلة.

الرمز الذي أستخدمه هو كما يلي:

using System;
using VixCOM;

namespace ConsoleApplication48
{
    internal class Program
    {
        private static void Main()
        {
            var lib = new VixLibClass();
            object results = null;

            var job = lib.Connect(Constants.VIX_API_VERSION, Constants.VIX_SERVICEPROVIDER_VMWARE_WORKSTATION, null, 0,
null, null, 0, null, null);

            var err = job.Wait(new[] {Constants.VIX_PROPERTY_JOB_RESULT_HANDLE}, ref results);

        if (lib.ErrorIndicatesFailure(err))
            Console.WriteLine("Error: " + err);

        var host = (IHost)((object[])results)[0];

        job = host.FindItems(Constants.VIX_FIND_REGISTERED_VMS, null, -1, new DiscoveryCallback(lib));
        job.WaitWithoutResults();

        host.Disconnect();
    }
}

internal class DiscoveryCallback : ICallback
{
    protected VixLibClass lib;

    public DiscoveryCallback(VixLibClass lib)
    {
        this.lib = lib;
    }

    #region ICallback Members

    public void OnVixEvent(IJob job, int eventType, IVixHandle moreEventInfo)
    {
        // this method is never called
    }

    #endregion
    }
}

أنا أدرك أن COM DLL هو 32 بت، لذلك قمت بالتأكد من تجميع تطبيق الاختبار على أنه 32 بت. أيضا لقد قمت بالتأكد من أن جميع خدمات VMware تعمل.

لا توجد استثناءات يتم إلقاؤها، لم يتم إرجاع أي أخطاء (بقدر ما أستطيع أن أرى) ولا توجد أحداث مكتوبة في سجل الأحداث.

بشكل غريب يكفي يعمل الرمز أعلاه عندما أحاول الحصول على قائمة بتشغيل VMS باستخدام Vix_Find_Running_VMS ثابت.

أي أفكار حول ما يمكن أن يسبب هذا؟

شكرا،

ارني

هل كانت مفيدة؟

المحلول

تحديث سريع على الموقف.

كان لدي نظرة فاحصة على الوثائق الرسمية لطريقة FindItems (). غير ثابت VIX_FIND_REGISTERED_VMS غير مدرج كمعلمة مدعومة - ثابت vix_find_running_vms ثابت فقط.

أعتقد أن هذا يعني أن VIX API حاليا يقدم أي طريقة للحصول على قائمة من VMS المسجلة على مثيل محطة عمل VMware.

من شأنه أن يفسر أيضا سبب توفر الأداة المساعدة لسطر الأوامر VMrun.exe طريقة للحصول على VMS المسجلة.

أعتقد أنني سأضطر فقط إلى الانتظار حتى يتم إصدار الإصدار التالي من VIX API.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top