MCPcopy Create free account
hub / github.com/bobranten/Ext4Fsd / Ext2AutoRemoveDeadLetters

Function Ext2AutoRemoveDeadLetters

Ext2Mgr/enumDisk.cpp:5423–5477  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5421}
5422
5423VOID
5424Ext2AutoRemoveDeadLetters()
5425{
5426 ULONGLONG LetterMask = Ext2DrvLetters[0];
5427 DWORD i, j;
5428 PEXT2_DISK disk;
5429 PEXT2_PARTITION part;
5430 PEXT2_CDROM cdrom;
5431
5432 if (LetterMask != -1) {
5433 AfxMessageBox("Different Mask");
5434 }
5435
5436 for (i = 0; i < g_nDisks; i++) {
5437 disk = &gDisks[i];
5438 if (disk->DataParts == NULL) {
5439 continue;
5440 }
5441 for (j=0; j < disk->NumParts; j++) {
5442 part = &disk->DataParts[j];
5443 if (part) {
5444 LetterMask &= ~(part->DrvLetters);
5445 }
5446 }
5447 }
5448
5449 for (i = 0; i < g_nCdroms; i++) {
5450 cdrom = &gCdroms[i];
5451 LetterMask &= ~(cdrom->DrvLetters);
5452 }
5453
5454 for (i=0; i < 10; i++) {
5455 if (drvDigits[i].bUsed && (drvDigits[i].Extent == NULL) &&
5456 (LetterMask & (((ULONGLONG) 1) << (i + 32)) ) ) {
5457 if (drvDigits[i].bInvalid && drvDigits[i].DrvType == DRIVE_FIXED) {
5458 LetterMask &= (~(((ULONGLONG) 1) << (i + 32)));
5459 Ext2RemoveMountPoint(&drvDigits[i], FALSE);
5460 Ext2RemoveDosSymLink(drvDigits[i].Letter);
5461 }
5462 }
5463 }
5464
5465 for (i=2; i <26; i++) {
5466 if (drvLetters[i].bUsed && (drvLetters[i].Extent == NULL) &&
5467 (LetterMask & (((ULONGLONG) 1) << i)) ) {
5468 if (drvLetters[i].bInvalid && drvLetters[i].DrvType == DRIVE_FIXED) {
5469 LetterMask &= (~(((ULONGLONG) 1) << i));
5470 Ext2RemoveMountPoint(&drvLetters[i], FALSE);
5471 Ext2RemoveDosSymLink(drvLetters[i].Letter);
5472 }
5473 }
5474 }
5475
5476 // Ext2DrvLetters[0] = LetterMask;
5477}
5478
5479BOOL
5480Ext2RemoveDosSymLink(CHAR drvChar)

Callers 2

OnInitDialogMethod · 0.85
OnRefreshMethod · 0.85

Calls 2

Ext2RemoveMountPointFunction · 0.85
Ext2RemoveDosSymLinkFunction · 0.85

Tested by

no test coverage detected