Probleme avec l'hibernation sous vista
-
martedì 13 ottobre 2009 14:45En fait je suis en train de developper un driver qui doit refuser l'hibernation de windows sous certaines conditions.
Lors de la recepetion de l'IRP IRP_MN_SET_POWER, je complete l'IRP avec un status ERROR_UNSUCCESSFUL
Le code que j'utilise est le suivant :
NTSTATUS SrvCore_DispatchPower( __in PDEVICE_OBJECT pDeviceObject, __in PIRP pIrp) { PDEVICE_EXTENSION _pDeviceExtension = NULL; PIO_STACK_LOCATION _pIrpStack = NULL; NTSTATUS _Status = STATUS_SUCCESS; _pDeviceExtension = (PDEVICE_EXTENSION) pDeviceObject->DeviceExtension; _pIrpStack = IoGetCurrentIrpStackLocation(pIrp); if (_pIrpStack->MinorFunction == IRP_MN_SET_POWER) { if (_pIrpStack->Parameters.Power.ShutdownType == PowerActionHibernate) { SrvCore_log(LOG_TRACE,"la demande d'hibernation n'est pas accepté en mode furtif \n"); pIrp->IoStatus.Status = STATUS_UNSUCCESSFUL; PoStartNextPowerIrp(pIrp); IoCompleteRequest (pIrp, IO_NO_INCREMENT); return STATUS_SUCCESS; } } pIrp->IoStatus.Status = STATUS_SUCCESS; PoStartNextPowerIrp(pIrp); IoCompleteRequest (pIrp, IO_NO_INCREMENT); return STATUS_SUCCESS; }Le probleme c'est que ce bout de code marche sur windows XP mais ne marche pas sur Vista.
Comment je pourrai refuser l'hibernation sur vista ?
Merci d'avance

