NTGetModulePath(const char *,char *),
NTReportEvent(const char *,const MagickBooleanType);
+extern MagickExport MagickBooleanType
+ NTLongPathsEnabled();
+
extern MagickPrivate struct dirent
*NTReadDirectory(DIR *);
static WSADATA
*wsaData = (WSADATA*) NULL;
-
+static size_t
+ long_paths_enabled = 2;
+\f
struct
{
const HKEY
% %
% %
% %
+% N T L o n g P a t h s E n a b l e d %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% NTLongPathsEnabled() returns a boolean indicating whether long paths are
+$ enabled.
+%
+% The format of the NTLongPathsEnabled method is:
+%
+% MagickBooleanType NTLongPathsEnabled()
+%
+*/
+MagickExport MagickBooleanType NTLongPathsEnabled()
+{
+ if (long_paths_enabled == 2)
+ {
+ DWORD
+ size,
+ type,
+ value;
+
+ HKEY
+ registry_key;
+
+ LONG
+ status;
+
+ registry_key=(HKEY) INVALID_HANDLE_VALUE;
+ status=RegOpenKeyExA(HKEY_LOCAL_MACHINE,
+ "SYSTEM\\CurrentControlSet\\Control\\FileSystem",0,KEY_READ,
+ ®istry_key);
+ if (status != ERROR_SUCCESS)
+ {
+ long_paths_enabled=0;
+ return(MagickFalse);
+ }
+ value=(PVOID) NULL;
+ status=RegQueryValueExA(registry_key,"LongPathsEnabled",0,&type,NULL,
+ NULL);
+ if ((status != ERROR_SUCCESS) || (type != REG_DWORD))
+ {
+ long_paths_enabled=0;
+ return(MagickFalse);
+ }
+ status=RegQueryValueExA(registry_key,"LongPathsEnabled",0,&type,&value,
+ &size);
+ if (status != ERROR_SUCCESS)
+ {
+ long_paths_enabled=0;
+ return(MagickFalse);
+ }
+ long_paths_enabled=(size_t)value;
+ }
+ return(long_paths_enabled == 1 ? MagickTrue : MagickFalse);
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+ N T M a p M e m o r y %
% %
% %