Поделиться через


Интерфейс IGetClusterResourceInfo (cluadmex.h)

[Этот интерфейс доступен для использования в операционных системах, указанных в разделе Требования. Поддержка этого интерфейса была удалена в Windows Server 2008.]

Интерфейс IGetClusterResourceInfo вызывается расширением администратора отказоустойчивого кластера для получения сведений о ресурсе.

Наследование

Интерфейс IGetClusterResourceInfo наследуется от интерфейса IUnknown . IGetClusterResourceInfo также содержит следующие типы элементов:

Методы

Интерфейс IGetClusterResourceInfo содержит следующие методы.

 
IGetClusterResourceInfo::GetResourceHandle

Возвращает дескриптор для ресурса.
IGetClusterResourceInfo::GetResourceNetworkName

Возвращает имя сети, управляемой ресурсом сетевого имени, от которого зависит ресурс.
IGetClusterResourceInfo::GetResourceTypeName

Возвращает тип ресурса.

Комментарии

Если расширяемый объект не является ресурсом, запросы методов IGetClusterResourceInfo завершатся ошибкой. В противном случае можно использовать интерфейс IGetClusterResourceInfo , когда администратор отказоустойчивого кластера вызывает реализации следующих методов:

Администратор отказоустойчивого кластера передает указатель IUnknownpiData. Используйте piData для вызова QueryInterface для одного из методов IGetClusterResourceInfo .

Используйте интерфейс IGetClusterResourceInfo только в контексте расширения ресурсов. Не получайте другие информационные интерфейсы, такие как IGetClusterGroupInfo, из интерфейса IGetClusterResourceInfo . Хотя QueryInterface возвращает допустимый интерфейс, операция недопустима в контексте кластера, а результатом является интерфейс, который не представляет реальный объект кластера.

Примеры

В следующем коде раздел, заключенный в комментарии В стиле C, завершится ошибкой в предыдущем абзаце.

//
// Context is a resource extension.
//
HRESULT CExtObject::HrGetResourceInfo( IGetClusterResourceInfo *piResInfo )
 {
  HRESULT   hr;
  HRESOURCE hRes;
  HGROUP    hGroup;
  HCLUSTER  hCluster;
  DWORD     cchNameSize = MAX_NAME_SIZE; // 256
  WCHAR     szGroupName[cchNameSize];

  IGetClusterGroupInfo *pGrpInfo;

  hRes = piResInfo->GetResourceHandle();

  //
  // Get group handle
  //
/*******************************************************************
// Incorrect:

  //
  // Obtain an IGetClusterGroupInfo interface from 
  // IGetClusterResourceInfo. By the rules of QueryInterface, this 
  // must return a valid interface. But it is not a valid cluster 
  // operation so the interface won't represent a real object.
  //
  hr = pResInfo->QueryInterface( IID_IGetClusterGroupInfo, 
                                 (LPVOID *) &pGrpInfo );

  //
  // Interface is valid, will pass this test.
  //
  if( FAILED( hr ) )
    goto Error;

  //
  // FAILS!
  // Interface does not represent a real cluster object.
  //    
  hGrp = pGrpInfo->GetGroupHandle( 0 );

*******************************************************************/
// Correct:    
  //
  // Use the valid resource handle to call GetClusterResourceState.
  // This yields the name of the group to which it belongs, which
  // can be used to obtain a group handle.
  //
  dwState = GetClusterResourceState( hRes,
                                     NULL,
                                     0,
                                     szGroupName,
                                     &cchGroupNameSize );

  // Add error check.

  hCluster = OpenCluster( g_szClusterName );

  // Add error check.

  hGrp = OpenClusterGroup( hCluster, szGroupName );

  // After error check, use group handle...

 }

Требования

Требование Значение
Минимальная версия клиента Ни одна версия не поддерживается
Минимальная версия сервера Windows Server 2003 Корпоративная, Windows Server 2003 Datacenter
Целевая платформа Windows
Header cluadmex.h

См. также раздел

Информационные интерфейсы администратора отказоустойчивого кластера

IWEExtendContextMenu::AddContextMenuItems

IWEExtendPropertySheet::CreatePropertySheetPages

IWEExtendWizard97::CreateWizard97Pages

IWEExtendWizard::CreateWizardPages

IWEInvokeCommand::InvokeCommand