Windows Driver: Add Unicode define to build and enhance tracing in debug mode

This commit is contained in:
Mounir IDRASSI 2024-11-16 18:33:28 +01:00
parent a588b20975
commit b7f6270c0d
No known key found for this signature in database
GPG Key ID: FC1B00364B3FE937
2 changed files with 83 additions and 151 deletions

View File

@ -100,7 +100,7 @@
</DriverSign>
<ClCompile>
<AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;_NO_CRT_STDIO_INLINE;DEBUG;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;_NO_CRT_STDIO_INLINE;UNICODE;_UNICODE;DEBUG;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Inf>
<CatalogFileName>veracrypt.cat</CatalogFileName>
@ -126,7 +126,7 @@ copy $(OutDir)veracrypt.inf "$(SolutionDir)Debug\Setup Files\veracrypt.inf"</Com
</DriverSign>
<ClCompile>
<AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;_NO_CRT_STDIO_INLINE;UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Inf>
<CatalogFileName>veracrypt.cat</CatalogFileName>
@ -151,7 +151,7 @@ copy $(OutDir)veracrypt.inf "$(SolutionDir)Release\Setup Files\veracrypt.inf"</C
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
<ClCompile>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;_NO_CRT_STDIO_INLINE;_ARM64_;ARM64;_USE_DECLSPECS_FOR_SAL=1;STD_CALL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;_NO_CRT_STDIO_INLINE;UNICODE;_UNICODE;_ARM64_;ARM64;_USE_DECLSPECS_FOR_SAL=1;STD_CALL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Inf>
@ -177,7 +177,7 @@ copy $(OutDir)veracrypt.inf "$(SolutionDir)Release\Setup Files\veracrypt.inf"</C
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
<ClCompile>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;_NO_CRT_STDIO_INLINE;DEBUG;_DEBUG;_ARM64_;ARM64;_USE_DECLSPECS_FOR_SAL=1;STD_CALL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;_NO_CRT_STDIO_INLINE;UNICODE;_UNICODE;DEBUG;_DEBUG;_ARM64_;ARM64;_USE_DECLSPECS_FOR_SAL=1;STD_CALL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Inf>

View File

@ -571,8 +571,9 @@ NTSTATUS TCDispatchQueueIRP (PDEVICE_OBJECT DeviceObject, PIRP Irp)
break;
default:
Dump ("%ls (0x%x %d)\n",
Dump ("%ls 0x%.8X (0x%.4X %d)\n",
TCTranslateCode (irpSp->Parameters.DeviceIoControl.IoControlCode),
(int) (irpSp->Parameters.DeviceIoControl.IoControlCode),
(int) (irpSp->Parameters.DeviceIoControl.IoControlCode >> 16),
(int) ((irpSp->Parameters.DeviceIoControl.IoControlCode & 0x1FFF) >> 2));
}
@ -1886,7 +1887,9 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
Irp->IoStatus.Information = 0;
break;
default:
Dump ("ProcessVolumeDeviceControlIrp (unknown code 0x%.8X)\n", irpSp->Parameters.DeviceIoControl.IoControlCode);
Dump ("ProcessVolumeDeviceControlIrp: unknown code 0x%.8X (0x%.4X %d)\n", irpSp->Parameters.DeviceIoControl.IoControlCode,
(int)(irpSp->Parameters.DeviceIoControl.IoControlCode >> 16),
(int)((irpSp->Parameters.DeviceIoControl.IoControlCode & 0x1FFF) >> 2));
return TCCompleteIrp (Irp, STATUS_INVALID_DEVICE_REQUEST, 0);
}
@ -3274,152 +3277,81 @@ LPWSTR TCTranslateCode (ULONG ulCode)
TC_CASE_RET_NAME (IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS);
#undef TC_CASE_RET_NAME
}
TC_CASE_RET_NAME(IOCTL_DISK_GET_DRIVE_GEOMETRY);
TC_CASE_RET_NAME(IOCTL_DISK_GET_DRIVE_GEOMETRY_EX);
TC_CASE_RET_NAME(IOCTL_MOUNTDEV_QUERY_DEVICE_NAME);
TC_CASE_RET_NAME(IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME);
TC_CASE_RET_NAME(IOCTL_MOUNTDEV_QUERY_UNIQUE_ID);
TC_CASE_RET_NAME(IOCTL_VOLUME_ONLINE);
TC_CASE_RET_NAME(IOCTL_MOUNTDEV_LINK_CREATED);
TC_CASE_RET_NAME(IOCTL_MOUNTDEV_LINK_DELETED);
TC_CASE_RET_NAME(IOCTL_MOUNTMGR_QUERY_POINTS);
TC_CASE_RET_NAME(IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_CREATED);
TC_CASE_RET_NAME(IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_DELETED);
TC_CASE_RET_NAME(IOCTL_DISK_GET_LENGTH_INFO);
TC_CASE_RET_NAME(IOCTL_STORAGE_GET_DEVICE_NUMBER);
TC_CASE_RET_NAME(IOCTL_DISK_GET_PARTITION_INFO);
TC_CASE_RET_NAME(IOCTL_DISK_GET_PARTITION_INFO_EX);
TC_CASE_RET_NAME(IOCTL_DISK_SET_PARTITION_INFO);
TC_CASE_RET_NAME(IOCTL_DISK_GET_DRIVE_LAYOUT);
TC_CASE_RET_NAME(IOCTL_DISK_GET_DRIVE_LAYOUT_EX);
TC_CASE_RET_NAME(IOCTL_DISK_SET_DRIVE_LAYOUT_EX);
TC_CASE_RET_NAME(IOCTL_DISK_VERIFY);
TC_CASE_RET_NAME(IOCTL_DISK_FORMAT_TRACKS);
TC_CASE_RET_NAME(IOCTL_DISK_REASSIGN_BLOCKS);
TC_CASE_RET_NAME(IOCTL_DISK_PERFORMANCE);
TC_CASE_RET_NAME(IOCTL_DISK_IS_WRITABLE);
TC_CASE_RET_NAME(IOCTL_DISK_LOGGING);
TC_CASE_RET_NAME(IOCTL_DISK_FORMAT_TRACKS_EX);
TC_CASE_RET_NAME(IOCTL_DISK_HISTOGRAM_STRUCTURE);
TC_CASE_RET_NAME(IOCTL_DISK_HISTOGRAM_DATA);
TC_CASE_RET_NAME(IOCTL_DISK_HISTOGRAM_RESET);
TC_CASE_RET_NAME(IOCTL_DISK_REQUEST_STRUCTURE);
TC_CASE_RET_NAME(IOCTL_DISK_REQUEST_DATA);
TC_CASE_RET_NAME(IOCTL_DISK_CONTROLLER_NUMBER);
TC_CASE_RET_NAME(SMART_GET_VERSION);
TC_CASE_RET_NAME(SMART_SEND_DRIVE_COMMAND);
TC_CASE_RET_NAME(SMART_RCV_DRIVE_DATA);
TC_CASE_RET_NAME(IOCTL_DISK_INTERNAL_SET_VERIFY);
TC_CASE_RET_NAME(IOCTL_DISK_INTERNAL_CLEAR_VERIFY);
TC_CASE_RET_NAME(IOCTL_DISK_CHECK_VERIFY);
TC_CASE_RET_NAME(IOCTL_DISK_MEDIA_REMOVAL);
TC_CASE_RET_NAME(IOCTL_STORAGE_MEDIA_REMOVAL);
TC_CASE_RET_NAME(IOCTL_DISK_EJECT_MEDIA);
TC_CASE_RET_NAME(IOCTL_DISK_LOAD_MEDIA);
TC_CASE_RET_NAME(IOCTL_DISK_RESERVE);
TC_CASE_RET_NAME(IOCTL_DISK_RELEASE);
TC_CASE_RET_NAME(IOCTL_DISK_FIND_NEW_DEVICES);
TC_CASE_RET_NAME(IOCTL_DISK_GET_MEDIA_TYPES);
TC_CASE_RET_NAME(IOCTL_DISK_IS_CLUSTERED);
TC_CASE_RET_NAME(IOCTL_DISK_UPDATE_DRIVE_SIZE);
TC_CASE_RET_NAME(IOCTL_STORAGE_GET_MEDIA_TYPES);
TC_CASE_RET_NAME(IOCTL_STORAGE_GET_HOTPLUG_INFO);
TC_CASE_RET_NAME(IOCTL_STORAGE_SET_HOTPLUG_INFO);
TC_CASE_RET_NAME(IOCTL_STORAGE_QUERY_PROPERTY);
TC_CASE_RET_NAME(IOCTL_VOLUME_GET_GPT_ATTRIBUTES);
TC_CASE_RET_NAME(FT_BALANCED_READ_MODE);
TC_CASE_RET_NAME(IOCTL_VOLUME_QUERY_ALLOCATION_HINT);
TC_CASE_RET_NAME(IOCTL_DISK_GET_CLUSTER_INFO);
TC_CASE_RET_NAME(IOCTL_DISK_ARE_VOLUMES_READY);
TC_CASE_RET_NAME(IOCTL_VOLUME_IS_DYNAMIC);
TC_CASE_RET_NAME(IOCTL_MOUNTDEV_QUERY_STABLE_GUID);
TC_CASE_RET_NAME(IOCTL_VOLUME_POST_ONLINE);
TC_CASE_RET_NAME(IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT);
TC_CASE_RET_NAME(IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES);
TC_CASE_RET_NAME(IOCTL_DISK_GROW_PARTITION);
TC_CASE_RET_NAME(IRP_MJ_READ);
TC_CASE_RET_NAME(IRP_MJ_WRITE);
TC_CASE_RET_NAME(IRP_MJ_CREATE);
TC_CASE_RET_NAME(IRP_MJ_CLOSE);
TC_CASE_RET_NAME(IRP_MJ_CLEANUP);
TC_CASE_RET_NAME(IRP_MJ_FLUSH_BUFFERS);
TC_CASE_RET_NAME(IRP_MJ_SHUTDOWN);
TC_CASE_RET_NAME(IRP_MJ_DEVICE_CONTROL);
default:
return (LPWSTR) L"IOCTL";
if (ulCode == IOCTL_DISK_GET_DRIVE_GEOMETRY)
return (LPWSTR) _T ("IOCTL_DISK_GET_DRIVE_GEOMETRY");
else if (ulCode == IOCTL_DISK_GET_DRIVE_GEOMETRY_EX)
return (LPWSTR) _T ("IOCTL_DISK_GET_DRIVE_GEOMETRY_EX");
else if (ulCode == IOCTL_MOUNTDEV_QUERY_DEVICE_NAME)
return (LPWSTR) _T ("IOCTL_MOUNTDEV_QUERY_DEVICE_NAME");
else if (ulCode == IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME)
return (LPWSTR) _T ("IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME");
else if (ulCode == IOCTL_MOUNTDEV_QUERY_UNIQUE_ID)
return (LPWSTR) _T ("IOCTL_MOUNTDEV_QUERY_UNIQUE_ID");
else if (ulCode == IOCTL_VOLUME_ONLINE)
return (LPWSTR) _T ("IOCTL_VOLUME_ONLINE");
else if (ulCode == IOCTL_MOUNTDEV_LINK_CREATED)
return (LPWSTR) _T ("IOCTL_MOUNTDEV_LINK_CREATED");
else if (ulCode == IOCTL_MOUNTDEV_LINK_DELETED)
return (LPWSTR) _T ("IOCTL_MOUNTDEV_LINK_DELETED");
else if (ulCode == IOCTL_MOUNTMGR_QUERY_POINTS)
return (LPWSTR) _T ("IOCTL_MOUNTMGR_QUERY_POINTS");
else if (ulCode == IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_CREATED)
return (LPWSTR) _T ("IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_CREATED");
else if (ulCode == IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_DELETED)
return (LPWSTR) _T ("IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_DELETED");
else if (ulCode == IOCTL_DISK_GET_LENGTH_INFO)
return (LPWSTR) _T ("IOCTL_DISK_GET_LENGTH_INFO");
else if (ulCode == IOCTL_STORAGE_GET_DEVICE_NUMBER)
return (LPWSTR) _T ("IOCTL_STORAGE_GET_DEVICE_NUMBER");
else if (ulCode == IOCTL_DISK_GET_PARTITION_INFO)
return (LPWSTR) _T ("IOCTL_DISK_GET_PARTITION_INFO");
else if (ulCode == IOCTL_DISK_GET_PARTITION_INFO_EX)
return (LPWSTR) _T ("IOCTL_DISK_GET_PARTITION_INFO_EX");
else if (ulCode == IOCTL_DISK_SET_PARTITION_INFO)
return (LPWSTR) _T ("IOCTL_DISK_SET_PARTITION_INFO");
else if (ulCode == IOCTL_DISK_GET_DRIVE_LAYOUT)
return (LPWSTR) _T ("IOCTL_DISK_GET_DRIVE_LAYOUT");
else if (ulCode == IOCTL_DISK_GET_DRIVE_LAYOUT_EX)
return (LPWSTR) _T ("IOCTL_DISK_GET_DRIVE_LAYOUT_EX");
else if (ulCode == IOCTL_DISK_SET_DRIVE_LAYOUT_EX)
return (LPWSTR) _T ("IOCTL_DISK_SET_DRIVE_LAYOUT_EX");
else if (ulCode == IOCTL_DISK_VERIFY)
return (LPWSTR) _T ("IOCTL_DISK_VERIFY");
else if (ulCode == IOCTL_DISK_FORMAT_TRACKS)
return (LPWSTR) _T ("IOCTL_DISK_FORMAT_TRACKS");
else if (ulCode == IOCTL_DISK_REASSIGN_BLOCKS)
return (LPWSTR) _T ("IOCTL_DISK_REASSIGN_BLOCKS");
else if (ulCode == IOCTL_DISK_PERFORMANCE)
return (LPWSTR) _T ("IOCTL_DISK_PERFORMANCE");
else if (ulCode == IOCTL_DISK_IS_WRITABLE)
return (LPWSTR) _T ("IOCTL_DISK_IS_WRITABLE");
else if (ulCode == IOCTL_DISK_LOGGING)
return (LPWSTR) _T ("IOCTL_DISK_LOGGING");
else if (ulCode == IOCTL_DISK_FORMAT_TRACKS_EX)
return (LPWSTR) _T ("IOCTL_DISK_FORMAT_TRACKS_EX");
else if (ulCode == IOCTL_DISK_HISTOGRAM_STRUCTURE)
return (LPWSTR) _T ("IOCTL_DISK_HISTOGRAM_STRUCTURE");
else if (ulCode == IOCTL_DISK_HISTOGRAM_DATA)
return (LPWSTR) _T ("IOCTL_DISK_HISTOGRAM_DATA");
else if (ulCode == IOCTL_DISK_HISTOGRAM_RESET)
return (LPWSTR) _T ("IOCTL_DISK_HISTOGRAM_RESET");
else if (ulCode == IOCTL_DISK_REQUEST_STRUCTURE)
return (LPWSTR) _T ("IOCTL_DISK_REQUEST_STRUCTURE");
else if (ulCode == IOCTL_DISK_REQUEST_DATA)
return (LPWSTR) _T ("IOCTL_DISK_REQUEST_DATA");
else if (ulCode == IOCTL_DISK_CONTROLLER_NUMBER)
return (LPWSTR) _T ("IOCTL_DISK_CONTROLLER_NUMBER");
else if (ulCode == SMART_GET_VERSION)
return (LPWSTR) _T ("SMART_GET_VERSION");
else if (ulCode == SMART_SEND_DRIVE_COMMAND)
return (LPWSTR) _T ("SMART_SEND_DRIVE_COMMAND");
else if (ulCode == SMART_RCV_DRIVE_DATA)
return (LPWSTR) _T ("SMART_RCV_DRIVE_DATA");
else if (ulCode == IOCTL_DISK_INTERNAL_SET_VERIFY)
return (LPWSTR) _T ("IOCTL_DISK_INTERNAL_SET_VERIFY");
else if (ulCode == IOCTL_DISK_INTERNAL_CLEAR_VERIFY)
return (LPWSTR) _T ("IOCTL_DISK_INTERNAL_CLEAR_VERIFY");
else if (ulCode == IOCTL_DISK_CHECK_VERIFY)
return (LPWSTR) _T ("IOCTL_DISK_CHECK_VERIFY");
else if (ulCode == IOCTL_DISK_MEDIA_REMOVAL)
return (LPWSTR) _T ("IOCTL_DISK_MEDIA_REMOVAL");
else if (ulCode == IOCTL_DISK_EJECT_MEDIA)
return (LPWSTR) _T ("IOCTL_DISK_EJECT_MEDIA");
else if (ulCode == IOCTL_DISK_LOAD_MEDIA)
return (LPWSTR) _T ("IOCTL_DISK_LOAD_MEDIA");
else if (ulCode == IOCTL_DISK_RESERVE)
return (LPWSTR) _T ("IOCTL_DISK_RESERVE");
else if (ulCode == IOCTL_DISK_RELEASE)
return (LPWSTR) _T ("IOCTL_DISK_RELEASE");
else if (ulCode == IOCTL_DISK_FIND_NEW_DEVICES)
return (LPWSTR) _T ("IOCTL_DISK_FIND_NEW_DEVICES");
else if (ulCode == IOCTL_DISK_GET_MEDIA_TYPES)
return (LPWSTR) _T ("IOCTL_DISK_GET_MEDIA_TYPES");
else if (ulCode == IOCTL_DISK_IS_CLUSTERED)
return (LPWSTR) _T ("IOCTL_DISK_IS_CLUSTERED");
else if (ulCode == IOCTL_DISK_UPDATE_DRIVE_SIZE)
return (LPWSTR) _T ("IOCTL_DISK_UPDATE_DRIVE_SIZE");
else if (ulCode == IOCTL_STORAGE_GET_MEDIA_TYPES)
return (LPWSTR) _T ("IOCTL_STORAGE_GET_MEDIA_TYPES");
else if (ulCode == IOCTL_STORAGE_GET_HOTPLUG_INFO)
return (LPWSTR) _T ("IOCTL_STORAGE_GET_HOTPLUG_INFO");
else if (ulCode == IOCTL_STORAGE_SET_HOTPLUG_INFO)
return (LPWSTR) _T ("IOCTL_STORAGE_SET_HOTPLUG_INFO");
else if (ulCode == IOCTL_STORAGE_QUERY_PROPERTY)
return (LPWSTR) _T ("IOCTL_STORAGE_QUERY_PROPERTY");
else if (ulCode == IOCTL_VOLUME_GET_GPT_ATTRIBUTES)
return (LPWSTR) _T ("IOCTL_VOLUME_GET_GPT_ATTRIBUTES");
else if (ulCode == FT_BALANCED_READ_MODE)
return (LPWSTR) _T ("FT_BALANCED_READ_MODE");
else if (ulCode == IOCTL_VOLUME_QUERY_ALLOCATION_HINT)
return (LPWSTR) _T ("IOCTL_VOLUME_QUERY_ALLOCATION_HINT");
else if (ulCode == IOCTL_DISK_GET_CLUSTER_INFO)
return (LPWSTR) _T ("IOCTL_DISK_GET_CLUSTER_INFO");
else if (ulCode == IOCTL_DISK_ARE_VOLUMES_READY)
return (LPWSTR) _T ("IOCTL_DISK_ARE_VOLUMES_READY");
else if (ulCode == IOCTL_VOLUME_IS_DYNAMIC)
return (LPWSTR) _T ("IOCTL_VOLUME_IS_DYNAMIC");
else if (ulCode == IOCTL_MOUNTDEV_QUERY_STABLE_GUID)
return (LPWSTR) _T ("IOCTL_MOUNTDEV_QUERY_STABLE_GUID");
else if (ulCode == IOCTL_VOLUME_POST_ONLINE)
return (LPWSTR) _T ("IOCTL_VOLUME_POST_ONLINE");
else if (ulCode == IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT)
return (LPWSTR) _T ("IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT");
else if (ulCode == IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES)
return (LPWSTR) _T ("IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES");
else if (ulCode == IOCTL_DISK_GROW_PARTITION)
return (LPWSTR) _T ("IOCTL_DISK_GROW_PARTITION");
else if (ulCode == IRP_MJ_READ)
return (LPWSTR) _T ("IRP_MJ_READ");
else if (ulCode == IRP_MJ_WRITE)
return (LPWSTR) _T ("IRP_MJ_WRITE");
else if (ulCode == IRP_MJ_CREATE)
return (LPWSTR) _T ("IRP_MJ_CREATE");
else if (ulCode == IRP_MJ_CLOSE)
return (LPWSTR) _T ("IRP_MJ_CLOSE");
else if (ulCode == IRP_MJ_CLEANUP)
return (LPWSTR) _T ("IRP_MJ_CLEANUP");
else if (ulCode == IRP_MJ_FLUSH_BUFFERS)
return (LPWSTR) _T ("IRP_MJ_FLUSH_BUFFERS");
else if (ulCode == IRP_MJ_SHUTDOWN)
return (LPWSTR) _T ("IRP_MJ_SHUTDOWN");
else if (ulCode == IRP_MJ_DEVICE_CONTROL)
return (LPWSTR) _T ("IRP_MJ_DEVICE_CONTROL");
else
{
return (LPWSTR) _T ("IOCTL");
#undef TC_CASE_RET_NAME
}
}