Skip to content

Latest commit

 

History

History
138 lines (93 loc) · 6.02 KB

nf-libloaderapi-getmodulefilenamew.md

File metadata and controls

138 lines (93 loc) · 6.02 KB
UID title description helpviewer_keywords old-location tech.root ms.assetid ms.date ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames req.redist ms.custom f1_keywords dev_langs topic_type api_type api_location api_name
NF:libloaderapi.GetModuleFileNameW
GetModuleFileNameW function (libloaderapi.h)
Retrieves the fully qualified path for the file that contains the specified module. The module must have been loaded by the current process. (Unicode)
GetModuleFileName
GetModuleFileName function
GetModuleFileNameW
_win32_getmodulefilename
base.getmodulefilename
libloaderapi/GetModuleFileName
libloaderapi/GetModuleFileNameW
base\getmodulefilename.htm
base
f124c99f-8be1-4a9c-a84c-b1b323921f1a
12/05/2018
GetModuleFileName, GetModuleFileName function, GetModuleFileNameA, GetModuleFileNameW, _win32_getmodulefilename, base.getmodulefilename, libloaderapi/GetModuleFileName, libloaderapi/GetModuleFileNameA, libloaderapi/GetModuleFileNameW, winbase/GetModuleFileName, winbase/GetModuleFileNameA, winbase/GetModuleFileNameW
libloaderapi.h
Windows.h
Windows
Windows XP [desktop apps \| UWP apps]
Windows Server 2003 [desktop apps \| UWP apps]
GetModuleFileNameW (Unicode) and GetModuleFileNameA (ANSI)
Kernel32.lib
Kernel32.dll
Windows
19H1
GetModuleFileNameW
libloaderapi/GetModuleFileNameW
c++
APIRef
kbSyntax
DllExport
Kernel32.dll
API-MS-Win-Core-LibraryLoader-l1-1-0.dll
KernelBase.dll
API-MS-Win-Core-LibraryLoader-l1-1-1.dll
API-MS-Win-Core-LibraryLoader-l1-2-0.dll
API-MS-Win-DownLevel-Kernel32-l1-1-0.dll
MinKernelBase.dll
API-MS-Win-Core-Libraryloader-l1-2-1.dll
API-MS-Win-Core-LibraryLoader-L1-2-2.dll
GetModuleFileName
GetModuleFileNameA
GetModuleFileNameW

GetModuleFileNameW function

-description

Retrieves the fully qualified path for the file that contains the specified module. The module must have been loaded by the current process.

To locate the file for a module that was loaded by another process, use the GetModuleFileNameEx function.

-parameters

-param hModule [in, optional]

A handle to the loaded module whose path is being requested. If this parameter is NULL, GetModuleFileName retrieves the path of the executable file of the current process.

The GetModuleFileName function does not retrieve the path for modules that were loaded using the LOAD_LIBRARY_AS_DATAFILE flag. For more information, see LoadLibraryEx.

-param lpFilename [out]

A pointer to a buffer that receives the fully qualified path of the module. If the length of the path is less than the size that the nSize parameter specifies, the function succeeds and the path is returned as a null-terminated string.

If the length of the path exceeds the size that the nSize parameter specifies, the function succeeds and the string is truncated to nSize characters including the terminating null character.

Windows XP:  The string is truncated to nSize characters and is not null-terminated.

The string returned will use the same format that was specified when the module was loaded. Therefore, the path can be a long or short file name, and can use the prefix "\?". For more information, see Naming a File.

-param nSize [in]

The size of the lpFilename buffer, in WCHARs.

-returns

If the function succeeds, the return value is the length of the string that is copied to the buffer, in characters, not including the terminating null character. If the buffer is too small to hold the module name, the string is truncated to nSize characters including the terminating null character, the function returns nSize, and the function sets the last error to ERROR_INSUFFICIENT_BUFFER.

Windows XP: If the buffer is too small to hold the module name, the function returns nSize and the last error code is not modified. If nSize is zero, the return value is zero and the last error code is not modified.

If the function fails, the return value is 0 (zero). To get extended error information, call GetLastError.

-remarks

If a DLL is loaded in two processes, its file name in one process may differ in case from its file name in the other process.

The global variable _pgmptr is automatically initialized to the full path of the executable file, and can be used to retrieve the full path name of an executable file.

Examples

For an example, see Installing a Service.

Note

The libloaderapi.h header defines GetModuleFileName as an alias that automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that is not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.

-see-also

Dynamic-Link Library Functions

GetModuleFileNameEx

GetModuleHandle

LoadLibrary

LoadLibraryEx