[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH 2/2] Clear unplug requests from co-installer
When XENVBD is uninstalled there is no suitable notification in kernel which can be used to clear any remaining unplug requests. This leads to a certain 0x7B bugcheck on reboot. This patch therefore does the job from the co-installer since this seems to be the only way. Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx> --- src/coinst/coinst.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/src/coinst/coinst.c b/src/coinst/coinst.c index 9069435..7f421c9 100644 --- a/src/coinst/coinst.c +++ b/src/coinst/coinst.c @@ -46,6 +46,9 @@ __user_code; #define SERVICE_KEY(_Driver) \ SERVICES_KEY ## "\\" ## #_Driver +#define UNPLUG_KEY \ + SERVICE_KEY(XEN) ## "\\Unplug" + #define STATUS_KEY \ SERVICE_KEY(XENVBD) ## "\\Status" @@ -183,6 +186,53 @@ __FunctionName( } static BOOLEAN +ClearUnplugRequest( + IN PTCHAR ClassName + ) +{ + HKEY UnplugKey; + HRESULT Error; + + Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE, + UNPLUG_KEY, + 0, + KEY_ALL_ACCESS, + &UnplugKey); + if (Error != ERROR_SUCCESS) { + SetLastError(Error); + goto fail1; + } + + Error = RegDeleteValue(UnplugKey, ClassName); + if (Error != ERROR_SUCCESS) { + SetLastError(Error); + goto fail2; + } + + RegCloseKey(UnplugKey); + + return TRUE; + +fail2: + Log("fail2"); + + RegCloseKey(UnplugKey); + +fail1: + Error = GetLastError(); + + { + PTCHAR Message; + + Message = __GetErrorMessage(Error); + Log("fail1 (%s)", Message); + LocalFree(Message); + } + + return FALSE; +} + +static BOOLEAN OverrideGroupPolicyOptions( ) { @@ -566,7 +616,9 @@ __DifRemovePreProcess( UNREFERENCED_PARAMETER(DeviceInfoData); UNREFERENCED_PARAMETER(Context); - Log("====>"); + Log("<===>"); + + (VOID) ClearUnplugRequest("DISKS"); return NO_ERROR; } -- 2.1.1 _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |