デバイスの通知
システムは、一連の既定のデバイス変更イベントをすべてのアプリケーションとサービスにブロードキャストします。 これらの既定のイベントの受信を登録する必要はありません。 詳しくは、RegisterDeviceNotification の「解説」セクションを参照してください。 アプリケーションまたはサービスが受け取るその他のイベントを指定するには、RegisterDeviceNotification 関数を使用します。
アプリケーションまたはサービスが RegisterDeviceNotification を呼び出すときに、通知イベントを受け取るウィンドウも指定します。 サービスは、ウィンドウ ハンドルの代わりにサービス ステータス ハンドルを指定できます。 サービスがサービス ステータス ハンドルを指定した場合、サービス制御ハンドラーは通知イベントを受け取ります。 詳しくは、「HandlerEx」をご覧ください。
プラグ アンド プレイ デバイス イベントはできるだけ早く処理してください。 そうしないと、システムが応答しなくなる可能性があります。 実行をブロックする可能性がある操作 (I/O など) をイベント ハンドラーが実行する場合、別のスレッドを開始して操作を非同期的に実行することをお勧めします。
RegisterDeviceNotification によって返されるデバイス通知ハンドルは、必要なくなったら UnregisterDeviceNotification 関数を呼び出して閉じる必要があります。
関連トピック