디바이스 이벤트(IoEvent.h)

서비스를 포함한 애플리케이션은 등록하여 디바이스 이벤트에 대한 알림을 받을 수 있습니다. 예를 들어 카탈로그 서비스는 볼륨의 파일에 대한 경로를 조정할 수 있도록 탑재 또는 분리되는 볼륨에 대한 알림을 받을 수 있습니다. 시스템은 애플리케이션에 WM_DEVICECHANGE 메시지를 전송하여 디바이스 이벤트가 발생했음을 애플리케이션에 알 보냅니다. 시스템은 서비스의 이벤트 처리기 함수인 HandlerEx를 호출하여 디바이스 이벤트가 발생했음을 서비스에 알합니다.

디바이스 이벤트 알림을 받으려면 DEV_BROADCAST_HANDLE 구조로 RegisterDeviceNotification 함수를 호출합니다. dbch_handle 멤버를 CreateFile 함수에서 가져온 디바이스 핸들로 설정해야 합니다. 또한 dbch_devicetype 멤버를 DBT_DEVTYP_HANDLE 설정합니다. 함수는 디바이스 알림 핸들을 반환합니다. 이는 볼륨 핸들과 동일하지 않습니다.

애플리케이션이 알림을 받으면 이벤트 유형이 DBT_CUSTOMEVENT 경우 IoEvent.h에 정의된 디바이스 이벤트 중 하나를 수신했을 수 있습니다. 이러한 이벤트 중 하나가 발생했는지 확인하려면 다음 단계를 사용합니다.

  1. 이벤트 데이터를 DEV_BROADCAST_HDR 구조로 처리합니다. dbch_devicetype 멤버가 DBT_DEVTYP_HANDLE 설정되었는지 확인합니다.
  2. dbch_devicetypeDBT_DEVTYP_HANDLE 이벤트 데이터는 실제로 DEV_BROADCAST_HANDLE 구조에 대한 포인터입니다.
  3. IsEqualGUID 함수를 사용하여 dbch_eventguid 멤버를 다음 표에 나열된 GUID와 비교합니다.

GUID_IO_CDROM_EXCLUSIVE_LOCK

bc56c139-7a10-47ee-a294-4c6a38f0149a

단독 액세스를 위해 CD-ROM 디바이스가 잠겼습니다.

Windows Server 2003 및 Windows XP: 이 값을 지원하려면 IMAPI 2.0이 필요합니다. 자세한 내용은 이미지 마스터링 API를 참조하세요.

GUID_IO_CDROM_EXCLUSIVE_UNLOCK

a3b6d27d-5e35-4885-81e5-ee18c00ed779

단독 액세스를 위해 잠긴 CD-ROM 디바이스가 잠금 해제되었습니다.

Windows Server 2003 및 Windows XP: 이 값을 지원하려면 IMAPI 2.0이 필요합니다. 자세한 내용은 이미지 마스터링 API를 참조하세요.

GUID_IO_DEVICE_BECOMING_READY

d07433f0-a98e-11d2-917a-00a0c9068ff3

미디어 스핀업이 진행 중입니다.

GUID_IO_DEVICE_EXTERNAL_REQUEST

d07433d0-a98e-11d2-917a-00a0c9068ff3

이 이벤트에는 몇 가지 가능한 원인이 있습니다. 자세한 내용은 GET EVENT STATUS NOTIFICATION 명령의 T10 MMC 사양을 참조하세요.

GUID_IO_MEDIA_ARRIVAL

d07433c0-a98e-11d2-917a-00a0c9068ff3

이동식 미디어가 디바이스에 추가되었습니다. dbch_data 멤버는 CLASS_MEDIA_CHANGE_CONTEXT 구조체에 대한 포인터입니다. NewState 멤버는 상태 정보를 제공합니다. 예를 들어 MediaUnavailable 값은 미디어를 사용할 수 없음을 나타냅니다(예: 활성 녹음 세션으로 인해).

Windows XP:dbch_data 멤버는 시스템 시작 이후 미디어가 변경된 횟수를 나타내는 ULONG 값입니다.

GUID_IO_MEDIA_EJECT_REQUEST

d07433d1-a98e-11d2-917a-00a0c9068ff3

이동식 미디어의 드라이브는 사용자가 지정된 슬롯 또는 미디어를 꺼내라는 요청을 받았습니다.

GUID_IO_MEDIA_REMOVAL

d07433c1-a98e-11d2-917a-00a0c9068ff3

이동식 미디어가 디바이스에서 제거되었거나 사용할 수 없습니다. dbch_data 멤버는 CLASS_MEDIA_CHANGE_CONTEXT 구조체에 대한 포인터입니다. NewState 멤버는 상태 정보를 제공합니다. 예를 들어 MediaUnavailable 값은 미디어를 사용할 수 없음을 나타냅니다(예: 활성 녹음 세션으로 인해).

Windows XP:dbch_data 멤버는 시스템 시작 이후 미디어가 변경된 횟수를 나타내는 ULONG 값입니다.

GUID_IO_VOLUME_CHANGE

7373654a-812a-11d0-bec7-08002be2092f

볼륨 레이블이 변경되었습니다.

GUID_IO_VOLUME_CHANGE_SIZE

3a1625be-ad03-49f1-8ef8-6bbac182d1fd

볼륨의 파일 시스템 크기가 변경되었습니다.

Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

GUID_IO_VOLUME_DISMOUNT

d16a55e8-1059-11d2-8ffd-00a0c9a06d32

볼륨을 분리하려는 시도가 진행 중입니다. 볼륨의 파일 및 디렉터리에 대한 모든 핸들을 닫아야 합니다. 이 이벤트가 반드시 GUID_IO_VOLUME_LOCK 이벤트 앞에 오는 것은 아닙니다.

GUID_IO_VOLUME_DISMOUNT_FAILED

e3c5b178-105d-11d2-8ffd-00a0c9a06d32

볼륨을 분리하려는 시도가 실패했습니다. 다른 프로세스가 미해결 핸들을 닫아 GUID_IO_VOLUME_DISMOUNT 알림에 응답하지 못했기 때문에 이 작업이 자주 발생합니다. 분리에 실패했기 때문에 영향을 받는 볼륨에 대한 핸들을 다시 열 수 있습니다.

GUID_IO_VOLUME_FVE_STATUS_CHANGE

062998b2-ee1f-4b6a-b857-e76cbbe9a6da

볼륨의 BitLocker 드라이브 암호화 상태 변경되었습니다. 이 이벤트는 BitLocker를 사용하거나 사용하지 않도록 설정하거나 암호화가 시작, 종료, 일시 중지 또는 다시 시작될 때 신호를 보냅니다.

Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

GUID_IO_VOLUME_LOCK

50708874-c9af-11d1-8fef-00a0c9a06d32

또 다른 프로세스는 볼륨을 잠그려고 시도합니다. 볼륨의 파일 및 디렉터리에 대한 모든 핸들을 닫아야 합니다.

GUID_IO_VOLUME_LOCK_FAILED

ae2eed10-0ba8-11d2-8ffb-00a0c9a06d32

볼륨을 잠그려는 시도가 실패했습니다. 다른 프로세스가 미해결 핸들을 닫아 GUID_IO_VOLUME_LOCK 이벤트에 응답하지 못했기 때문에 이 작업이 자주 발생합니다. 잠금이 실패했기 때문에 영향을 받는 볼륨에 대한 핸들을 다시 열 수 있습니다.

GUID_IO_VOLUME_MOUNT

b5804878-1a96-11d2-8ffd-00a0c9a06d32

볼륨이 다른 프로세스에 의해 탑재되었습니다. 하나 이상의 핸들을 열 수 있습니다.

GUID_IO_VOLUME_NAME_CHANGE

2de97f83-4c06-11d2-a532-00609713055a

볼륨 이름이 변경되었습니다.

GUID_IO_VOLUME_NEED_CHKDSK

799a0960-0a0b-4e03-ad88-2fa7c6ce748a

파일 시스템에서 볼륨의 손상을 감지했습니다. 애플리케이션은 볼륨에서 CHKDSK를 실행하거나 사용자에게 이를 알려야 합니다.

Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

GUID_IO_VOLUME_PHYSICAL_CONFIGURATION_CHANGE

2de97f84-4c06-11d2-a532-00609713055a

볼륨의 실제 메이크업 또는 현재 물리적 상태가 변경되었습니다.

GUID_IO_VOLUME_PREPARING_EJECT

c79eb16e-0dac-4e7a-a86c-b25ceeaa88f6

파일 시스템에서 디스크를 배출할 준비를 하고 있습니다. 예를 들어 파일 시스템은 백그라운드 서식 지정 작업을 중지하거나 쓰기-한 번 미디어에서 세션을 닫습니다.

Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

GUID_IO_VOLUME_UNIQUE_ID_CHANGE

af39da42-6622-41f5-970b-139d092fa3d9

볼륨의 고유 식별자가 변경되었습니다. 고유 식별자에 대한 자세한 내용은 IOCTL_MOUNTDEV_QUERY_UNIQUE_ID 참조하세요.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 Windows Server 2008 R2 및 Windows 7까지 지원되지 않습니다.

GUID_IO_VOLUME_UNLOCK

9a8c3d68-d0cb-11d1-8fef-00a0c9a06d32

볼륨이 다른 프로세스에 의해 잠금 해제되었습니다. 하나 이상의 핸들을 열 수 있습니다.

GUID_IO_VOLUME_WEARING_OUT

873113ca-1486-4508-82ac-c3b2e5297aaa

언론은 입을 열고 있다. 이 이벤트는 파일 시스템에서 볼륨의 오류 비율이 너무 높거나 결함 교체 공간이 거의 소진된 경우 전송됩니다.

Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

설명

GUID_IO_VOLUME_DISMOUNTGUID_IO_VOLUME_DISMOUNT_FAILED 이벤트는 GUID_IO_VOLUME_LOCKGUID_IO_VOLUME_LOCK_FAILED 이벤트와 관련이 있습니다. GUID_IO_VOLUME_DISMOUNTGUID_IO_VOLUME_LOCK 이벤트는 작업이 시도되고 있음을 나타냅니다. 이벤트 알림에 대해 작업하고 수행된 작업을 기록해야 합니다. GUID_IO_VOLUME_DISMOUNT_FAILEDGUID_IO_VOLUME_LOCK_FAILED 이벤트는 시도된 작업이 실패했음을 나타냅니다. 그런 다음 레코드를 사용하여 작업에 대한 응답으로 수행한 작업을 실행 취소할 수 있습니다.

DEV_BROADCAST_HANDLE 구조의 dbch_hdevnotify 멤버는 영향을 받는 디바이스를 나타냅니다. 볼륨 핸들이 아니라 RegisterDeviceNotification에서 반환된 디바이스 알림 핸들입니다. 볼륨에 대한 작업을 수행하려면 이 핸들을 해당 볼륨 핸들에 매핑합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows XP
지원되는 최소 서버
Windows Server 2003
헤더
IoEvent.h