pszPathName (PSZ) - input

      Address of the ASCIIZ file specification of the file or subdirectory.

      Global file-name characters can be used in the name only for level 5 file information.

      DosQuerySysInfo is called by an application during initialization to determine the maximum path length allowed by the operating system.

    ulInfoLevel (ULONG) - input

      The level of path information required.

      A value of 1, 2, 3, or 5 can be specified, as follows:

    • FIL_STANDARD Level 1 file information

    • FIL_QUERYEASIZE
      Level 2 file information

    • FIL_QUERYEASFROMLIST
      Level 3 file information

    • FIL_QUERYFULLNAME
      Level 5 file information

      Level 4 is reserved.

      The structures described in pInfoBuf indicate the information returned for each of these levels.

    pInfoBuf (PVOID) - output

      Address of the storage area containing the requested level of path information.

      Path information, where applicable, is based on the most recent DosClose, DosResetBuffer, DosSetFileInfo, or DosSetPathInfo.

      Level 1 File Information (ulInfoLevel == FIL_STANDARD)

        pInfoBuf contains the FILESTATUS3 data structure, in which path information is returned.
      Level 2 File Information (ulInfoLevel == FIL_QUERYEASIZE)
        pInfoBuf contains the FILESTATUS4 data structure. This is similar to the Level 1 structure, with the addition of the cbList field after the attrFile field.

        The cbList field is an unsigned ULONG On output, this field contains the size, in bytes, of the file's entire extended attribute (EA) set on disk. You can use this value to calculate the size of the buffer required to hold the EA information returned when a value of 3 is specified for ulInfoLevel. The buffer size is less than or equal to twice the size of the file's entire EA set on disk.

      Level 3 File Information (ulInfoLevel == FIL_QUERYEASFROMLIST)
        This is a subset of the EA information of the file.

        Input

          ulInfoLevel contains an EAOP2 data structure. fpGEA2List points to a GEA2 that defines the attribute names whose values are returned. The GEA2 data structures must be aligned on a doubleword boundary. Each oNextEntryOffset field must contain the number of bytes from the beginning of the current entry to the beginning of the next entry in the GEA2 list. The oNextEntryOffset field in the last entry of the GEA2 list must be zero. fpFEA2List points to a data area where the relevant FEA2 list is returned. The length field of this FEA2 list is valid, giving the size of the FEA2 list buffer. oError is ignored.
        Output
          pInfoBuf is unchanged. If an error occurs, oError points to the GEA2 entry that caused the error. The buffer pointed to by fpFEA2List is filled in with the returned information. If the buffer that fpFEA2List points to is not large enough to hold the returned information (the return code is ERROR_BUFFER_OVERFLOW), cbList is still valid, assuming there is at least enough space for it. Its value is the size, in bytes, of the file's entire EA set on disk, even though only a subset of attributes was requested. The size of the buffer required to hold the EA information is less than or equal to twice the size of the file's entire EA set on disk.
        Level 5 File Information (ulInfoLevel == FIL_QUERYFULLNAME)
          Level 5 returns the fully qualified ASCIIZ name of pszPathName in pInfoBuf. pszPathName may contain global file-name characters.

        cbInfoBuf (ULONG) - input

          The length, in bytes, of pInfoBuf.

        ulrc (APIRET) - returns

          Return Code.

          DosQueryPathInfo returns one of the following values:

        • NO_ERROR 3
            ERROR_PATH_NOT_FOUND
          32
            ERROR_SHARING_VIOLATION
          111
            ERROR_BUFFER_OVERFLOW
          124
            ERROR_INVALID_LEVEL
          206
            ERROR_FILENAME_EXCED_RANGE
          254
            ERROR_INVALID_EA_NAME
          255
            ERROR_EA_LIST_INCONSISTENT
          For a full list of error codes, see Errors.


        [Back] [Next]