VDS 알림
[Windows 8 및 Windows Server 2012부터 Virtual Disk Service COM 인터페이스는 Windows Storage 관리 API대체됩니다.]
공급자는 VDS에 이벤트 알림을 보낼 수 있으며, VDS는 애플리케이션에 알림을 전달할 수 있습니다. VDS에서 사용되는 알림 모델은 COM 개체에서 사용되는 연결 지점 모델과 유사합니다.
VDS는 드라이브 문자 할당 또는 할당되지 않은 디스크의 도착과 같은 이벤트에 대한 서비스 알림을 생성합니다. VDS가 공급자에게 디스크를 할당하면 공급자는 연결된 알림을 생성해야 합니다. 다음 그림은 VDS 알림 모델에서 사용되는 인터페이스 및 메서드를 보여 줍니다.
애플리케이션, 가상 디스크 서비스 및 V D S 공급자 간의 인터페이스 및 메서드(Advise, OnLoad 및 OnNotify)를 보여 주는
알림을 받기 위해 VDS는 IVdsProviderPrivate::OnLoad 메서드를 호출하고 인터페이스에 포인터를 전달하여 IVdsAdviseSink 인터페이스를 공급자 개체에 등록합니다. 새 볼륨 또는 드라이브의 도착과 같은 알림 이벤트가 발생하면 공급자는 적절한 알림 구조를 IVdsAdviseSink::OnNotify 메서드 매개 변수로 VDS에 전달합니다.
이 프로세스는 애플리케이션과 VDS 간에 유사합니다. 특히 알림을 받기 위해 애플리케이션은 IVdsService::Advise 메서드를 호출하고 인터페이스에 포인터를 전달하여 IVdsAdviseSink 인터페이스를 VDS에 등록합니다. VDS는 공급자로부터 알림을 받으면 등록된 애플리케이션에 적절한 알림 구조를 IVdsAdviseSink::OnNotify 메서드 매개 변수로 전달합니다.
메모
Advise 호출하는 애플리케이션은 결국 IVdsService::Unadvise 메서드를 호출해야 합니다. 이상적으로는 더 이상 알림을 받을 필요가 없는 즉시 Unadvise 호출해야 합니다.
다음 표에는 개체 유형별로 공급자가 생성한 알림이 나열되어 있습니다.
객체 | 통지 | 값 | 이벤트 설명에 연결 |
---|---|---|---|
팩 | VDS_NF_PACK_ARRIVE | 1 | VDS_PACK_NOTIFICATION |
팩 | VDS_NF_PACK_DEPART | 2 | VDS_PACK_NOTIFICATION |
팩 | VDS_NF_PACK_MODIFY | 3 | VDS_PACK_NOTIFICATION |
음량 | VDS_NF_VOLUME_ARRIVE | 4 | VDS_VOLUME_NOTIFICATION |
음량 | VDS_NF_VOLUME_DEPART | 5 | VDS_VOLUME_NOTIFICATION |
음량 | VDS_NF_VOLUME_MODIFY | 6 | VDS_VOLUME_NOTIFICATION |
음량 | VDS_NF_VOLUME_REBUILDING_PROGRESS | 7 | VDS_VOLUME_NOTIFICATION |
디스크 | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
디스크 | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
디스크 | VDS_NF_DISK_MODIFY | 10 | VDS_DISK_NOTIFICATION |
파티션 | VDS_NF_PARTITION_ARRIVE | 11 | VDS_PARTITION_NOTIFICATION |
파티션 | VDS_NF_PARTITION_DEPART | 12 | VDS_PARTITION_NOTIFICATION |
파티션 | VDS_NF_PARTITION_MODIFY | 13 | VDS_PARTITION_NOTIFICATION |
하위 | VDS_NF_SUB_SYSTEM_ARRIVE | 101 | VDS_SUB_SYSTEM_NOTIFICATION |
하위 | VDS_NF_SUB_SYSTEM_DEPART | 102 | VDS_SUB_SYSTEM_NOTIFICATION |
하위 | VDS_NF_SUB_SYSTEM_MODIFY | 151 | VDS_SUB_SYSTEM_NOTIFICATION |
컨트롤러 | VDS_NF_CONTROLLER_ARRIVE | 103 | VDS_CONTROLLER_NOTIFICATION |
컨트롤러 | VDS_NF_CONTROLLER_DEPART | 104 | VDS_CONTROLLER_NOTIFICATION |
컨트롤러 | VDS_NF_CONTROLLER_MODIFY | 350 | VDS_CONTROLLER_NOTIFICATION |
컨트롤러 | VDS_NF_CONTROLLER_REMOVED | 351 | VDS_CONTROLLER_NOTIFICATION |
항구 | VDS_NF_PORT_MODIFY | 352 | VDS_PORT_NOTIFICATION |
항구 | VDS_NF_PORT_REMOVED | 353 | VDS_PORT_NOTIFICATION |
드라이브 | VDS_NF_DRIVE_ARRIVE | 105 | VDS_DRIVE_NOTIFICATION |
드라이브 | VDS_NF_DRIVE_DEPART | 106 | VDS_DRIVE_NOTIFICATION |
드라이브 | VDS_NF_DRIVE_MODIFY | 107 | VDS_DRIVE_NOTIFICATION |
드라이브 | VDS_NF_DRIVE_REMOVED | 354 | VDS_DRIVE_NOTIFICATION |
LUN | VDS_NF_LUN_ARRIVE | 108 | VDS_LUN_NOTIFICATION |
LUN | VDS_NF_LUN_DEPART | 109 | VDS_LUN_NOTIFICATION |
LUN | VDS_NF_LUN_MODIFY | 110 | VDS_LUN_NOTIFICATION |
VDS는 나머지 알림을 생성합니다. 다음 표에서는 범주별 서비스 기반 알림 상수를 나열합니다.
범주 | 통지 | 값 | 이벤트 설명에 연결 |
---|---|---|---|
디스크 | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
디스크 | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
디스크 | VDS_NF_DISK_MODIFY | 10 | VDS_DISK_NOTIFICATION |
드라이브 문자 | VDS_NF_DRIVE_LETTER_FREE | 201 | VDS_DRIVE_LETTER_NOTIFICATION |
드라이브 문자 | VDS_NF_DRIVE_LETTER_ASSIGN | 202 | VDS_DRIVE_LETTER_NOTIFICATION |
파일 시스템 | VDS_NF_FILE_SYSTEM_MODIFY | 203 | VDS_FILE_SYSTEM_NOTIFICATION |
파일 시스템 | VDS_NF_FILE_SYSTEM_FORMAT_PROGRESS | 204 | VDS_FILE_SYSTEM_NOTIFICATION |
음량 | VDS_NF_MOUNT_POINTS_CHANGE | 205 | VDS_MOUNT_POINT_NOTIFICATION |
관련 항목