Funzione IoInvalidateDeviceRelations (wdm.h)
Il IoInvalidateDeviceRelations routine notifica al responsabile PnP che le relazioni per un dispositivo (ad esempio relazioni tra bus, relazioni di esezione, relazioni di rimozione e relazione del dispositivo di destinazione) sono state modificate.
Sintassi
void IoInvalidateDeviceRelations(
[in] PDEVICE_OBJECT DeviceObject,
[in] DEVICE_RELATION_TYPE Type
);
Parametri
[in] DeviceObject
Puntatore al PDO per il dispositivo.
[in] Type
Specifica un valore di enumerazione DEVICE_RELATION_TYPE che descrive il tipo di relazioni modificate. I valori possibili includono BusRelations, EjectionRelations, RemovalRelationse TargetDeviceRelation. A partire da Windows 7, è supportato anche il valore PowerRelations.
Valore restituito
Nessuno
Osservazioni
Per alcuni tipi di relazione, ad esempio BusRelations, questa routine fa sì che il gestore PnP o il risparmio energia raccolgono informazioni sulle relazioni aggiornate inviando una richiesta di IRP_MN_QUERY_DEVICE_RELATIONS ai driver per il dispositivo. Per altri tipi di relazione, ad esempio EjectionRelations, il gestore PnP non deve raccogliere immediatamente nuove informazioni sulle relazioni; Il gestore PnP esegue una query sui driver per le relazioni di eiezione solo quando si prepara a espellere un dispositivo.
Dopo che un autista del bus chiama IoInvalidateDeviceRelations per informare il gestore PnP che un dispositivo è scomparso, il driver del bus deve continuare a gestire i runtime di integrazione PnP per tale dispositivo fino a quando non riceve una richiesta di IRP_MN_REMOVE_DEVICE. In risposta a questo IRP, il conducente del bus restituisce STATUS_NO_SUCH_DEVICE. Fino a quando il driver del bus non completa correttamente la richiesta di IRP_MN_REMOVE_DEVICE, il driver del bus può accedere all'estensione del dispositivo per controllare i flag per il dispositivo.