37 PrivateData->CanLoadDriver = TRUE;
41 CopyGuid (&PrivateData->FusionUuid, &SuperBlock->FusionUuid);
42 PrivateData->IsFusion = TRUE;
52 PrivateData->IsFusionMaster = (SuperBlock->FusionUuid.Data4[7] & BIT0) == 0;
56 PrivateData->FusionUuid.Data4[7] &= ~BIT0;
82 PrivateData->FusionSibling = Sibling;
91 PrivateData->FusionMask >>= 1U;
98 PrivateData->FusionSibling->FusionSibling = PrivateData;
99 PrivateData->FusionSibling->CanLoadDriver = TRUE;
100 PrivateData->FusionSibling->FusionMask = PrivateData->FusionMask;
112 BOOLEAN IsFusionMaster;
114 ASSERT (PrivateData->CanLoadDriver);
124 if (!PrivateData->IsFusion) {
125 *Lba = Block * PrivateData->LbaMultiplier;
126 return PrivateData->BlockIo;
129 ASSERT (PrivateData->FusionSibling != NULL);
134 if ((Block & PrivateData->FusionMask) == 0) {
135 IsFusionMaster = TRUE;
137 Block &= ~PrivateData->FusionMask;
138 IsFusionMaster = FALSE;
141 *Lba = Block * PrivateData->LbaMultiplier;
143 if (IsFusionMaster == PrivateData->IsFusionMaster) {
144 return PrivateData->BlockIo;
147 return PrivateData->FusionSibling->BlockIo;