デバイス イベント (IoEvent.h)
サービスを含むアプリケーションは、デバイス イベントの通知を受け取るために登録できます。 たとえば、カタログ サービスは、ボリューム上のファイルへのパスを調整できるように、マウントまたはマウント解除されているボリュームの通知を受け取ることができます。 システムは、アプリケーションに WM_DEVICECHANGE メッセージを送信することによって、デバイス イベントが発生したことをアプリケーションに通知します。 システムは、サービスのイベント ハンドラー関数 HandlerEx を呼び出すことによって、デバイス イベントが発生したことをサービスに通知します。
デバイス イベント通知を受信するには、DEV_BROADCAST_HANDLE構造体を使用して RegisterDeviceNotification 関数を呼び出します。 Dbch_handle メンバーは、CreateFile 関数から取得したデバイス ハンドルに設定してください。 また、 dbch_devicetype メンバーを DBT_DEVTYP_HANDLE に設定 します。 関数は、デバイス通知ハンドルを返します。 これはボリューム ハンドルと同じではないことに注意してください。
アプリケーションが通知を受信したときに、イベントの種類が DBT_CUSTOMEVENTされている場合は、IoEvent.h で定義されているデバイス イベントのいずれかを受信している可能性があります。 これらのイベントのいずれかが発生したかどうかを確認するには、次の手順を使用します。
- イベント データを DEV_BROADCAST_HDR 構造として扱います。 dbch_devicetype メンバーが DBT_DEVTYP_HANDLE に設定されていることを確認 します。
- dbch_devicetypeがDBT_DEVTYP_HANDLE場合、イベント データは実際にはDEV_BROADCAST_HANDLE構造体へのポインターです。
- IsEqualGUID 関数を使用して、dbch_eventguid メンバーを次の表に示す GUIDと比較します。
-
GUID_IO_CDROM_EXCLUSIVE_LOCK
-
-
bc56c139-7a10-47ee-a294-4c6a38f0149a
-
CD-ROM デバイスは排他アクセス用にロックされています。
Windows Server 2003 および Windows XP: この値をサポートするには、IMAPI 2.0 が必要です。 詳細については、「 Image Mastering API」を参照してください。
-
-
GUID_IO_CDROM_EXCLUSIVE_UNLOCK
-
-
a3b6d27d-5e35-4885-81e5-ee18c00ed779
-
排他アクセス用にロックされた CD-ROM デバイスのロックが解除されました。
Windows Server 2003 および Windows XP: この値をサポートするには、IMAPI 2.0 が必要です。 詳細については、「 Image Mastering 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
-
ボリュームは別のプロセスによってマウントされています。 1 つ以上のハンドルを開く場合があります。
-
-
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
-
ファイル システムは、取り出すディスクを準備しています。 たとえば、ファイル システムがバックグラウンドの書式設定操作を停止したり、書き込み 1 回のメディアでセッションを閉じたりしています。
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
-
ボリュームは別のプロセスによってロック解除されています。 1 つ以上のハンドルを開く場合があります。
-
-
GUID_IO_VOLUME_WEARING_OUT
-
-
873113ca-1486-4508-82ac-c3b2e5297aaa
-
メディアが摩耗しています。このイベントは、ファイル システムがボリュームのエラー率が高すぎるか、欠陥交換領域がほとんど使い果たされていると判断した場合に送信されます。
Windows Server 2003 および Windows XP: この値はサポートされていません。
-
注釈
GUID_IO_VOLUME_DISMOUNTイベントとGUID_IO_VOLUME_DISMOUNT_FAILEDイベントは、GUID_IO_VOLUME_LOCKイベントとGUID_IO_VOLUME_LOCK_FAILEDイベントと同様に関連しています。 GUID_IO_VOLUME_DISMOUNTイベントとGUID_IO_VOLUME_LOCK イベントは、操作が試行されていることを示します。 イベント通知に基づいて操作し、実行されたアクションを記録する必要があります。 GUID_IO_VOLUME_DISMOUNT_FAILEDイベントとGUID_IO_VOLUME_LOCK_FAILED イベントは、試行された操作が失敗したことを示します。 その後、レコードを使用して、操作に応答して行った操作を元に戻すことができます。
DEV_BROADCAST_HANDLE構造体のdbch_hdevnotify メンバーは、影響を受けるデバイスを示します。 これは、ボリューム ハンドルではなく、 RegisterDeviceNotification によって返されるデバイス通知ハンドルであることに注意してください。 ボリュームに対して操作を実行するには、このハンドルを対応するボリューム ハンドルにマップします。
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows XP |
サポートされている最小のサーバー |
Windows Server 2003 |
Header |
|