大侠看一下 函数有错误
swprintf(tmpVolName,128,L"\\Device\\%s%8X_%16X_%8X %8X",OSNSS_LB_PREFIX,
snapshotID.m_VolumeID.MBP_VolumeID.m_DiskSignature,
snapshotID.m_VolumeID.MBP_VolumeID.m_VolumeBlockOffset,
snapshotTime.dwHighDateTime,snapshotTime.dwLowDateTime);
其中
#defineOSNSS_LB_PREFIXL"OSNSSLB_"
snapshotID.m_VolumeID.MBP_VolumeID.m_DiskSignature 是ULONG
snapshotID.m_VolumeID.MBP_VolumeID.m_VolumeBlockOffset 是ULONGLONG
dwHighDateTime 是DWORD
[解决办法]
swprintf(tmpVolName,128,L"\\Device\\%s%8X_%16LLX_%8X %8X",OSNSS_LB_PREFIX,
snapshotID.m_VolumeID.MBP_VolumeID.m_DiskSignature,
snapshotID.m_VolumeID.MBP_VolumeID.m_VolumeBlockOffset,
snapshotTime.dwHighDateTime,snapshotTime.dwLowDateTime);
主要是 ULONGLONG 改 %16llX 看看