[Toc][Index]

DosFSCtl


Bindings:  C, MASM 

DosFSCtl provides an extended standard interface between an application 
and an FSD. 
 DosFSCtl    (DataArea, DataLengthMax, DataLength, ParmList, 
             ParmLengthMax, ParmLength, FunctionCode, RouteName, 
             FileHandle, RouteMethod, Reserved) 
 
 DataArea (PBYTE) - input 
    Address of the data area. 
 DataLengthMax (USHORT) - input 
    The maximum length in bytes to be returned by the FSD in DataArea. 
    DataLength may be longer than this on input, but not on output. 
 DataLength (PUSHORT) - input/output 
    Address of the length in bytes of data in DataArea. On input, it is 
    the length of data being sent, and on output is the length of the data 
    that was returned by the FSD.   If ERROR_BUFFER_OVERFLOW is returned 
    from the call, then it is the size of the buffer required to hold the 
    data returned by the FSD. 
 ParmList (PBYTE) - input 
    Address of the command specific parameter list. 
 ParmLengthMax (USHORT) - input 
    The maximum length in bytes of the data to be returned by the FSD in 
    ParmList.  ParmLength may be longer than this on input, but not on 
    output. 
 ParmLength (PUSHORT) - input/output 
    Address of, on input, the length in bytes of parameters passed in by 
    the application, and on return it is the length of parameters returned 
    by the FSD.  If ERROR_BUFFER_OVERFLOW is returned from the call, then 
    it is the size of the buffer required to hold the parameters returned 
    by the FSD.  No other data is returned in this case. 
 FunctionCode (USHORT) - input 
    The file system-specific function code. For remote FSDs, there are two 
    kinds of possible FsCtl calls: FsCtl calls that are handled locally, 
    and FsCtl calls that are exported across the network.  If bit 0x4000 
    is set in the function code, then this indicates to the remote FSD 
    that the function should be exported. The range of function codes are 
    split up as follows: Function codes between 0x0000 and 0x7FFF are 
    reserved for use by OS/2. Function codes between 0x8000 and 0xBFFF are 
    FSD defined FsCtl functions handled by the local FSD. Function codes 
    between 0xC000 and 0xFFFF are FSD defined FsCtl functions exported to 
    the server. 
    FunctionCode = 1: returns FSD error code information. Error code is 
    passed to the FSD in the first word of ParmList. On return, the first 
    word of the Data area contains the length of the following ASCIIZ 
    string. The ASCIIZ string begins at the second word and is an 
    explanation of the error code. 
 RouteName (PSZ) - input 
    Address of the ASCIIZ name of the FSD, or the pathname of a file or 
    directory the operation should apply to. 
 FileHandle (HFILE) - input 
    The file or device specific handle. 
 RouteMethod (USHORT) - input 
    Selects how the request is routed. 
    Value     Definition 
    1         FileHandle directs routing. RouteName must be a NUL pointer 
              (0L). The FSD associated with the handle receives the 
              request. 
    2         RouteMethod refers to a pathname, that directs routing. 
              FileHandle must 
              be -1. The FSD associated with the drive that the pathname 
              refers to at the time of the request receives the request. 
              The pathname need not refer to a file or directory that 
              actually exists, only to a drive. A relative pathname may be 
              used, it is processed like any other pathname. 
    3         RouteMethod refers to an FSD name, that directs routing. 
              FileHandle must 
              be -1. The named FSD receives the request. 
 Reserved (ULONG) - input 
    Reserved, must be set to zero. 
 rc (USHORT) - return 
    Return code descriptions are: 
    0         NO_ERROR 
    1         ERROR_INVALID_FUNCTION 
    6         ERROR_INVALID_HANDLE 
    87        ERROR_INVALID_PARAMETER 
    95        ERROR_INTERRUPT 
    111       ERROR_BUFFER_OVERFLOW 
    117       ERROR_INVALID_CATEGORY 
    124       ERROR_INVALID_LEVEL 
    252       ERROR_INVALID_FSD_NAME 
 

Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs