212{
223
225
227
229
231
232 ErrorOccurred =
FALSE;
233
235
237
238 if (
Irp->IoStatus.Information)
239 {
240
241
242 DPRINT1(
"FIXME: leaking old bus relations\n");
243 }
244
248 if (!Relations)
250
252
256 {
258
259 PdoDeviceExtension =
NULL;
260
262 {
263
264
273 {
274 DPRINT(
"IoCreateDevice() failed with status 0x%X\n",
Status);
276 ErrorOccurred =
TRUE;
277 break;
278 }
279
280 Device->Pdo->Flags &= ~DO_DEVICE_INITIALIZING;
281
282
283
285
287
289
291
293
295
297
298
301 {
303 ErrorOccurred =
TRUE;
304 break;
305 }
306
308
309
312 {
314 ErrorOccurred =
TRUE;
315 break;
316 }
317
318
321 {
323 ErrorOccurred =
TRUE;
324 break;
325 }
326
327
330 {
332 ErrorOccurred =
TRUE;
333 break;
334 }
335
336
339 {
341 ErrorOccurred =
TRUE;
342 break;
343 }
344
345
348 {
350 ErrorOccurred =
TRUE;
351 break;
352 }
353 }
354
355
356
358
360
362
363 CurrentEntry = CurrentEntry->
Flink;
364 }
365
366 if (ErrorOccurred)
367 {
368
369
370 if (PdoDeviceExtension)
371 {
378 }
379
381 return ErrorStatus;
382 }
383
385
387
389}
static NTSTATUS FdoEnumerateDevices(PDEVICE_OBJECT DeviceObject)
struct _PDO_DEVICE_EXTENSION * PPDO_DEVICE_EXTENSION
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define ExFreePoolWithTag(_P, _T)
#define FILE_AUTOGENERATED_DEVICE_NAME
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define UNREFERENCED_PARAMETER(P)
NTSTATUS NTAPI IoCreateDevice(IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject)
NTSTATUS PciCreateInstanceIDString(PUNICODE_STRING InstanceID, PPCI_DEVICE Device)
NTSTATUS PciCreateDeviceDescriptionString(PUNICODE_STRING DeviceDescription, PPCI_DEVICE Device)
NTSTATUS PciCreateDeviceIDString(PUNICODE_STRING DeviceID, PPCI_DEVICE Device)
NTSTATUS PciCreateCompatibleIDsString(PUNICODE_STRING CompatibleIDs, PPCI_DEVICE Device)
NTSTATUS PciCreateHardwareIDsString(PUNICODE_STRING HardwareIDs, PPCI_DEVICE Device)
NTSTATUS PciCreateDeviceLocationString(PUNICODE_STRING DeviceLocation, PPCI_DEVICE Device)
#define FILE_DEVICE_CONTROLLER
PDEVICE_OBJECT DeviceObject
PDEVICE_OBJECT Objects[1]
UNICODE_STRING DeviceDescription
UNICODE_STRING CompatibleIDs
UNICODE_STRING InstanceID
UNICODE_STRING HardwareIDs
UNICODE_STRING DeviceLocation
COMMON_DEVICE_EXTENSION Common
struct _DEVICE_RELATIONS DEVICE_RELATIONS
#define ObReferenceObject