Condividi tramite


Routine DispatchDeviceControl del driver miniclasse della batteria

Il risparmio energia invia irP di controllo del dispositivo (IRP_MJ_DEVICE_CONTROL) ai driver di miniclasse tramite il driver a batteria composito. La routine DispatchDeviceControl del driver miniclasse della batteria gestisce gli IRP contenenti IOCTL della batteria.

Nella routine DispatchDeviceControl il driver miniclasse può chiamare la routine BatteryClassIoctl del driver di classe per eseguire attività di controllo del dispositivo definite dal sistema. BatteryClassIoctl gestisce IOCTL di controllo del dispositivo per le batterie.

La routine DispatchDeviceControl deve:

  1. Determinare se l'IOCTL corrente è un IOCTL privato definito dal driver miniclasse. In tal caso, eseguire l'operazione richiesta, completare l'IRP con IO_NO_INCREMENT e procedere al passaggio 4.

  2. Se IOCTL non è un IOCTL privato, chiamare BatteryClassIoctl con l'IRP e l'handle di classe restituito da BatteryClassInitializeDevice. Ad esempio:

    Status = BatteryClassIoctl (NewBattNP->ClassHandle, Irp);
    

    La routine BatteryClassIoctl del driver di classe controlla se L'IOCTL è destinato alla batteria specificata. In tal caso, chiama la routine BatteryMiniXxx corrispondente per soddisfare la richiesta e completa l'IRP con STATUS_SUCCESS. In caso contrario, restituisce STATUS_NOT_SUPPORTED.

  3. Se BatteryClassIoctl restituisce STATUS_NOT_SUPPORTED, a indicare che non si tratta di un IRP della batteria, passare l'IRP al driver inferiore successivo.

  4. Restituisce lo stato come valore restituito della funzione.