다음을 통해 공유


IVdsAdviseSink::OnNotify 메서드(vds.h)

[Windows 8 및 Windows Server 2012 가상 디스크 서비스 COM 인터페이스는 Windows Storage 관리 API로 대체됩니다.]

공급자에서 VDS로, VDS에서 애플리케이션으로 알림을 전달합니다.

구문

HRESULT OnNotify(
  [in] LONG             lNumberOfNotifications,
  [in] VDS_NOTIFICATION *pNotificationArray
);

매개 변수

[in] lNumberOfNotifications

pNotificationArray에 지정된 알림 수입니다.

[in] pNotificationArray

VDS_NOTIFICATION 구조체 배열에 대한 포인터입니다. 공급자는 공급자가 서비스를 호출할 때 배열에 대한 메모리를 할당합니다. 서비스는 배열을 해제합니다. VDS는 서비스가 애플리케이션을 호출할 때 배열을 할당합니다. 이 경우 호출자는 CoTaskMemFree 함수를 사용하여 배열을 해제해야 합니다.

반환 값

이 메서드는 E_INVALIDARG 또는 E_OUTOFMEMORY 같은 표준 HRESULT 값과 VDS별 반환 값을 반환할 수 있습니다. HRESULT_FROM_WIN32 매크로를 사용하여 변환된 시스템 오류 코드를 반환할 수도 있습니다. 오류는 VDS 자체 또는 사용 중인 기본 VDS 공급자 에서 발생할 수 있습니다. 가능한 반환 값은 다음과 같습니다.

반환 코드 설명
S_FALSE
공급자가 이 메서드를 호출할 때 서비스가 완전히 초기화되지 않았거나 서비스에서 일부 알림이 손실된 경우 VDS는 이 값을 공급자에게 반환합니다.

설명

애플리케이션은 이 메서드를 구현하여 VDS에서 알림을 받습니다. 이러한 알림 중 일부는 VDS에서 발생합니다. 다른 항목은 VDS에서 전달되는 공급자 알림입니다.

VDS는 하위 시스템 및 컨트롤러와 같은 모든 VDS 개체의 속성에 대한 정보 캐시를 유지 관리합니다. 알림을 트리거하는 변경이 발생할 때마다 이 캐시가 자동으로 업데이트됩니다. 또한 VDS 알림에 대한 응답으로 IVdsHwProvider::Refresh 또는 IVdsService::Refresh 를 호출하면 끝없는 알림 루프가 전송될 수 있습니다. 이러한 이유로 애플리케이션은 이 메서드의 구현에서 IVdsHwProvider::Refresh 또는 IVdsService::Refresh 를 호출해서는 안 됩니다.

이 메서드를 사용하여 알림을 보내는 공급자의 경우 단일 이벤트에서 시작된 알림을 함께 그룹화하는 것이 좋습니다. 예를 들어 LUN이 삭제되면 영향을 받는 모든 드라이브에 대해 VDS_NF_DRIVE_MODIFY 알림을 함께 보냅니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista[데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003[데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 vds.h
라이브러리 Uuid.lib

추가 정보

IVdsAdviseSink

IVdsHwProvider::Refresh

IVdsService::Advise

IVdsService::Refresh

IVdsService::Unadvise

VDS 알림

VDS_NOTIFICATION