Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une application en mode utilisateur appelle la fonction RegisterDeviceNotification pour s’inscrire et être avertie lorsqu’un processeur ou un module de mémoire est ajouté dynamiquement à la partition matérielle. Une application appelle la fonction RegisterDeviceNotification deux fois, une fois pour s’inscrire pour la notification des événements du processeur et une deuxième fois pour s’inscrire à la notification des événements de mémoire. L’application spécifie l’un des GUID suivants lorsqu’elle s’inscrit pour la notification de ces événements :
GUID_DEVICE_PROCESSOR
Inscrit l’application à notifier lorsqu’un processeur est ajouté dynamiquement à la partition matérielle.
GUID_DEVICE_MEMORY
Inscrit l’application à notifier lorsque la mémoire est ajoutée dynamiquement à la partition matérielle.
Ces GUID sont définis dans le fichier d’en-tête Poclass.h.
L’exemple de code suivant montre comment s’inscrire aux deux notifications :
HWND hWnd;
DEV_BROADCAST_DEVICEINTERFACE ProcessorFilter;
DEV_BROADCAST_DEVICEINTERFACE MemoryFilter;
HDEVNOTIFY ProcessorNotifyHandle;
HDEVNOTIFY MemoryNotifyHandle;
// The following example assumes that hWnd already
// contains a handle to the application window that
// is to receive the WM_DEVICECHANGE messages.
// Initialize the filter for processor event notification
ZeroMemory(
&ProcessorFilter,
sizeof(ProcessorFilter)
);
ProcessorFilter.dbcc_size =
sizeof(DEV_BROADCAST_DEVICEINTERFACE);
ProcessorFilter.dbcc_devicetype =
DBT_DEVTYP_DEVICEINTERFACE;
ProcessorFilter.dbcc_classguid =
GUID_DEVICE_PROCESSOR;
// Register the application window to receive
// WM_DEVICECHANGE messages for processor events.
ProcessorNotifyHandle =
RegisterDeviceNotification(
hWnd,
&ProcessorFilter,
DEVICE_NOTIFY_WINDOW_HANDLE
);
// Initialize the filter for memory event notification
ZeroMemory(
&MemoryFilter,
sizeof(MemoryFilter)
);
MemoryFilter.dbcc_size =
sizeof(DEV_BROADCAST_DEVICEINTERFACE);
MemoryFilter.dbcc_devicetype =
DBT_DEVTYP_DEVICEINTERFACE;
MemoryFilter.dbcc_classguid =
GUID_DEVICE_MEMORY;
// Register the application's window to receive
// WM_DEVICECHANGE messages for memory events.
MemoryNotifyHandle =
RegisterDeviceNotification(
hWnd,
&MemoryFilter,
DEVICE_NOTIFY_WINDOW_HANDLE
);
Note Si une application doit uniquement être informée des processeurs, elle n’a pas besoin de s’inscrire pour la notification des événements de mémoire. De même, si une application doit uniquement être informée de la mémoire, elle n’a pas besoin de s’inscrire pour la notification des événements du processeur.
Lorsqu’une application n’a plus besoin de recevoir de notification d’événements de processeur ou de mémoire, elle peut annuler l’inscription de la fenêtre de la réception de messages WM_DEVICECHANGE pour ces événements en appelant la fonction UnregisterDeviceNotification . L’exemple de code suivant montre comment annuler l’inscription pour les notifications d’application :
// Unregister the application window from receiving
// WM_DEVICECHANGE messages for processor events.
UnregisterDeviceNotification(ProcessorNotifyHandle);
// Unregister the application window from receiving
// WM_DEVICECHANGE messages for memory events.
UnregisterDeviceNotification(MemoryNotifyHandle);
Pour plus d’informations sur les fonctions RegisterDeviceNotification et UnregisterDeviceNotification, consultez la documentation Microsoft Windows SDK.