# Function Reference

# _WinAPI_EnumDllProc

Enumerates an exported functions of the specified dynamic-link library (DLL)

#include <WinAPIDiag.au3>
_WinAPI_EnumDllProc ( $sFilePath [, $sMask = '' [, $iFlags = 0]] )

## Parameters

$sFilePath | The path to the library. Although this function searches for a file path when it specified as the relative path or the name without a path, will better to specify a fully qualified path to the library for an unequivocal result.
$sMask | [optional] A wildcard string that indicates the function names to be enumerated. This string can optionally contain the wildcards, "*" and "?". If this parameter is an empty string or omitted (Default), all the exported functions will be enumerated.
$iFlags | [optional] The optional flags. This parameter can be one or more of the following values: $SYMOPT_CASE_INSENSITIVE $SYMOPT_UNDNAME

## Return Value

Success: | The 2D array containing the following information, @extended flag will contain one of the $IMAGE_FILE_MACHINE_* constants. [0][0] - Number of rows in array (n) [0][1] - Unused [n][0] - The function address relative to the library base address (UINT64). [n][1] - The function name.
Failure: | Sets the @error flag to non-zero.

## Remarks

This function works with 32- and 64-bit DLLs regardless of the system (32- or 64-bit), although 64-bit executables cannot load 32-bit DLLs and vice-versa.
Call _WinAPI_GetExtended() to retrieve a fully qualified path to the found DLL that was loaded for enumerating functions.
Note, use the fully qualified path to be sure that the _WinAPI_EnumDllProc() loads the DLL that is of interest.
In addition, this function does not use the file system redirection.
This function requires dbghelp.dll version 5.1 or later.

## Related

_WinAPI_GetExtended

## See Also

Search SymEnumSymbols in MSDN Library.

## Example

    #include <Array.au3>
    #include <WinAPIDiag.au3>
    #include <WinAPIMisc.au3>

    _Example()

    Func _Example()
        Local $aData = _WinAPI_EnumDllProc('ntdll.dll', 'Rtl*', $SYMOPT_CASE_INSENSITIVE)

        If IsArray($aData) Then
            For $i = 1 To $aData[0][0]
                $aData[$i][0] = '0x' & Hex($aData[$i][0])
            Next
        EndIf

        _ArrayDisplay($aData, _WinAPI_GetExtended())
    EndFunc   ;==>_Example