We require the ability to disconnect from and reconnect to VMBus; if we don't have this then there is no (viable) way for a loaded operating system to continue to use any VMBus devices. (There is also a small but non-zero risk that the host will continue to write to our interrupt and monitor pages, since the VMBUS_UNLOAD message in earlier versions is essentially a no-op.) This requires us to ensure that the host supports protocol version 3.0 (VMBUS_VERSION_WIN8_1). However, we can't actually _use_ protocol version 3.0, since doing so causes an iSCSI-booted Windows Server 2012 R2 VM to crash due to a NULL pointer dereference in vmbus.sys. To work around this problem, we first ensure that we can connect using protocol v3.0, then disconnect and reconnect using the oldest known protocol. This deliberately prevents the use of the iPXE native Hyper-V drivers on older versions of Hyper-V, where we could use our drivers but in so doing would break the loaded operating system. Signed-off-by: Michael Brown <mcb30@ipxe.org>tags/v1.20.1
|
|
||
42 |
|
42 |
|
43 |
|
43 |
|
44 |
|
44 |
|
45 |
|
|
|
46 |
|
|
|
|
45 |
|
|
|
46 |
|
|
|
47 |
|
|
|
48 |
|
|
|
49 |
|
|
|
50 |
|
|
|
51 |
|
|
|
52 |
|
|
|
53 |
|
|
|
54 |
|
|
|
55 |
|
|
47 |
|
56 |
|
48 |
|
57 |
|
49 |
|
58 |
|
|
|
||
82 |
|
91 |
|
83 |
|
92 |
|
84 |
|
93 |
|
|
94 |
|
|
85 |
|
95 |
|
86 |
|
96 |
|
87 |
|
97 |
|
|
|
||
38 |
|
38 |
|
39 |
|
39 |
|
40 |
|
40 |
|
41 |
|
|
|
42 |
|
|
|
43 |
|
|
|
44 |
|
|
|
45 |
|
|
|
46 |
|
|
|
47 |
|
|
|
48 |
|
41 |
|
49 |
|
42 |
|
50 |
|
43 |
|
|
|
||
122 |
|
115 |
|
123 |
|
116 |
|
124 |
|
117 |
|
|
118 |
|
|
125 |
|
119 |
|
126 |
|
120 |
|
127 |
|
|
|
|
121 |
|
|
|
122 |
|
|
128 |
|
123 |
|
129 |
|
124 |
|
130 |
|
125 |
|
|
|
||
133 |
|
128 |
|
134 |
|
129 |
|
135 |
|
130 |
|
136 |
|
|
|
|
131 |
|
|
137 |
|
132 |
|
138 |
|
133 |
|
139 |
|
134 |
|
|
|
||
158 |
|
153 |
|
159 |
|
154 |
|
160 |
|
155 |
|
161 |
|
|
|
|
156 |
|
|
162 |
|
157 |
|
163 |
|
158 |
|
164 |
|
159 |
|
|
|
||
178 |
|
173 |
|
179 |
|
174 |
|
180 |
|
175 |
|
|
176 |
|
|
|
177 |
|
|
|
178 |
|
|
|
179 |
|
|
|
180 |
|
|
|
181 |
|
|
|
182 |
|
|
|
183 |
|
|
|
184 |
|
|
|
185 |
|
|
|
186 |
|
|
|
187 |
|
|
|
188 |
|
|
|
189 |
|
|
|
190 |
|
|
|
191 |
|
|
|
192 |
|
|
|
193 |
|
|
|
194 |
|
|
|
195 |
|
|
|
196 |
|
|
|
197 |
|
|
|
198 |
|
|
|
199 |
|
|
|
200 |
|
|
|
201 |
|
|
|
202 |
|
|
|
203 |
|
|
|
204 |
|
|
|
205 |
|
|
181 |
|
206 |
|
182 |
|
|
|
|
207 |
|
|
|
208 |
|
|
|
209 |
|
|
|
210 |
|
|
|
211 |
|
|
|
212 |
|
|
|
213 |
|
|
|
214 |
|
|
|
215 |
|
|
|
216 |
|
|
|
217 |
|
|
|
218 |
|
|
|
219 |
|
|
|
220 |
|
|
|
221 |
|
|
|
222 |
|
|
|
223 |
|
|
|
224 |
|
|
|
225 |
|
|
|
226 |
|
|
|
227 |
|
|
|
228 |
|
|
|
229 |
|
|
|
230 |
|
|
|
231 |
|
|
|
232 |
|
|
|
233 |
|
|
|
234 |
|
|
|
235 |
|
|
|
236 |
|
|
|
237 |
|
|
|
238 |
|
|
183 |
|
239 |
|
184 |
|
240 |
|
185 |
|
241 |
|
|
|
||
1232 |
|
1288 |
|
1233 |
|
1289 |
|
1234 |
|
1290 |
|
1235 |
|
|
|
1236 |
|
|
|
1237 |
|
|
|
|
1291 |
|
|
|
1292 |
|
|
|
1293 |
|
|
1238 |
|
1294 |
|
1239 |
|
1295 |
|
1240 |
|
1296 |
|
|
|
||
1245 |
|
1301 |
|
1246 |
|
1302 |
|
1247 |
|
1303 |
|
1248 |
|
|
|
|
1304 |
|
|
1249 |
|
1305 |
|
1250 |
|
1306 |
|
1251 |
|
1307 |
|