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

Function Ext2QueryDrvVersion

Ext2Mgr/enumDisk.cpp:2656–2701  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2654}
2655
2656INT
2657Ext2QueryDrvVersion(
2658 CHAR * Version,
2659 CHAR * Date,
2660 CHAR * Time
2661 )
2662{
2663 EXT2_VOLUME_PROPERTY_VERSION EVPV;
2664 NT::NTSTATUS status;
2665 HANDLE handle = NULL;
2666 NT::IO_STATUS_BLOCK iosb;
2667 INT rc = 0;
2668
2669 memset(&EVPV, 0, sizeof(EXT2_VOLUME_PROPERTY_VERSION));
2670 EVPV.Magic = EXT2_VOLUME_PROPERTY_MAGIC;
2671 EVPV.Command = APP_CMD_QUERY_VERSION;
2672 EVPV.Flags |= EXT2_FLAG_VP_SET_GLOBAL;
2673
2674 status = Ext2Open("\\DosDevices\\Ext2Fsd",
2675 &handle, EXT2_DESIRED_ACCESS);
2676 if (!NT_SUCCESS(status)) {
2677 rc = -1;
2678 goto errorout;
2679 }
2680
2681 status = NT::ZwDeviceIoControlFile(
2682 handle, NULL, NULL, NULL, &iosb,
2683 IOCTL_APP_VOLUME_PROPERTY,
2684 &EVPV, sizeof(EXT2_VOLUME_PROPERTY_VERSION),
2685 &EVPV, sizeof(EXT2_VOLUME_PROPERTY_VERSION)
2686 );
2687
2688 if (NT_SUCCESS(status)) {
2689 strncpy(Version, EVPV.Version, 0x1B);
2690 strncpy(Date, EVPV.Date, 0x1F);
2691 strncpy(Time, EVPV.Time, 0x1F);
2692 }
2693
2694 rc = NT_SUCCESS(status);
2695
2696errorout:
2697
2698 Ext2Close(&handle);
2699
2700 return rc;
2701}
2702
2703BOOL
2704Ext2SetGlobalProperty (

Callers 1

OnInitDialogMethod · 0.85

Calls 3

Ext2OpenFunction · 0.85
strncpyFunction · 0.85
Ext2CloseFunction · 0.70

Tested by

no test coverage detected