CHAR VendorName[MAXNAMELEN];
MUTEX Mutex;
+ LIST_ENTRY List;
ULONG References;
PXENBUS_THREAD ScanThread;
Dx = (PXENBUS_DX)DeviceObject->DeviceExtension;
ASSERT3U(Dx->Type, ==, PHYSICAL_DEVICE_OBJECT);
- InsertTailList(&Fdo->Dx->ListEntry, &Dx->ListEntry);
+ InsertTailList(&Fdo->List, &Dx->ListEntry);
ASSERT3U(Fdo->References, !=, 0);
Fdo->References++;
__FdoAcquireMutex(Fdo);
- ListEntry = Fdo->Dx->ListEntry.Flink;
- while (ListEntry != &Fdo->Dx->ListEntry) {
+ ListEntry = Fdo->List.Flink;
+ while (ListEntry != &Fdo->List) {
PLIST_ENTRY Next = ListEntry->Flink;
PXENBUS_DX Dx = CONTAINING_RECORD(ListEntry, XENBUS_DX, ListEntry);
PCHAR Name = Dx->Name;
__FdoAcquireMutex(Fdo);
- for (ListEntry = Fdo->Dx->ListEntry.Flink;
- ListEntry != &Fdo->Dx->ListEntry;
+ for (ListEntry = Fdo->List.Flink;
+ ListEntry != &Fdo->List;
ListEntry = ListEntry->Flink) {
PXENBUS_DX Dx = CONTAINING_RECORD(ListEntry, XENBUS_DX, ListEntry);
PXENBUS_PDO Pdo = Dx->Pdo;
__FdoAcquireMutex(Fdo);
- for (ListEntry = Fdo->Dx->ListEntry.Flink;
- ListEntry != &Fdo->Dx->ListEntry;
+ for (ListEntry = Fdo->List.Flink;
+ ListEntry != &Fdo->List;
ListEntry = ListEntry->Flink) {
PXENBUS_DX Dx = CONTAINING_RECORD(ListEntry, XENBUS_DX, ListEntry);
PXENBUS_PDO Pdo = Dx->Pdo;
__FdoAcquireMutex(Fdo);
- for (ListEntry = Fdo->Dx->ListEntry.Flink;
- ListEntry != &Fdo->Dx->ListEntry;
+ for (ListEntry = Fdo->List.Flink;
+ ListEntry != &Fdo->List;
ListEntry = ListEntry->Flink) {
PXENBUS_DX Dx = CONTAINING_RECORD(ListEntry, XENBUS_DX, ListEntry);
PXENBUS_PDO Pdo = Dx->Pdo;
__FdoAcquireMutex(Fdo);
- ListEntry = Fdo->Dx->ListEntry.Flink;
- while (ListEntry != &Fdo->Dx->ListEntry) {
+ ListEntry = Fdo->List.Flink;
+ while (ListEntry != &Fdo->List) {
PLIST_ENTRY Flink = ListEntry->Flink;
PXENBUS_DX Dx = CONTAINING_RECORD(ListEntry, XENBUS_DX, ListEntry);
PXENBUS_PDO Pdo = Dx->Pdo;
__FdoAcquireMutex(Fdo);
Count = 0;
- for (ListEntry = Fdo->Dx->ListEntry.Flink;
- ListEntry != &Fdo->Dx->ListEntry;
+ for (ListEntry = Fdo->List.Flink;
+ ListEntry != &Fdo->List;
ListEntry = ListEntry->Flink)
Count++;
if (Relations == NULL)
goto fail1;
- for (ListEntry = Fdo->Dx->ListEntry.Flink;
- ListEntry != &Fdo->Dx->ListEntry;
+ for (ListEntry = Fdo->List.Flink;
+ ListEntry != &Fdo->List;
ListEntry = ListEntry->Flink) {
PXENBUS_DX Dx = CONTAINING_RECORD(ListEntry, XENBUS_DX, ListEntry);
PXENBUS_PDO Pdo = Dx->Pdo;
__FdoAcquireMutex(Fdo);
- for (ListEntry = Fdo->Dx->ListEntry.Flink;
- ListEntry != &Fdo->Dx->ListEntry;
+ for (ListEntry = Fdo->List.Flink;
+ ListEntry != &Fdo->List;
ListEntry = ListEntry->Flink) {
PXENBUS_DX Dx = CONTAINING_RECORD(ListEntry, XENBUS_DX, ListEntry);
PXENBUS_PDO Pdo = Dx->Pdo;
done:
InitializeMutex(&Fdo->Mutex);
- InitializeListHead(&Dx->ListEntry);
+ InitializeListHead(&Fdo->List);
Fdo->References = 1;
(VOID) FdoSetFriendlyName(Fdo, Header.DeviceID);
PXENBUS_DX Dx = Fdo->Dx;
PDEVICE_OBJECT FunctionDeviceObject = Dx->DeviceObject;
- ASSERT(IsListEmpty(&Dx->ListEntry));
+ ASSERT(IsListEmpty(&Fdo->List));
ASSERT3U(Fdo->References, ==, 0);
ASSERT3U(__FdoGetDevicePnpState(Fdo), ==, Deleted);
Dx->Fdo = NULL;
+ RtlZeroMemory(&Fdo->List, sizeof (LIST_ENTRY));
RtlZeroMemory(&Fdo->Mutex, sizeof (MUTEX));
if (__FdoIsActive(Fdo)) {