FS_ConnectNetResource


FS_ConnectNetResource(
 PIOREQ pir
 )

A connection is made to a network resource through FS_ConnectNetResource.

ir_ppath

Supplies a pointer to the canonicalized unicode network resource pathname to connect to. The pathname may contain more than just the network resource address name. Wildcards are not allowed on the pathname.

ir_password

Supplies an optional pointer to the security credentials needed to connect to the network resource, otherwise this is set to NULL. Note that the password is passed in whatever format the user passed to the IFS manager, it is not converted to unicode format.

ir_options

Supplies connection options.

Connection Option Values:

One of the following options will be specified.

Value

Meaning

RESOPT_UNCREQUEST

UNC style path based anonymous connection request.

RESOPT_DEVATTACH

Explicit device redirection.

RESOPT_UNCCONNECT

Explicit UNC style connection.

RESOPT_DISCONNECTED

Connection is to be setup disconnected, without touching the net.

RESOPT_NO_CREATE

Do not create a resource for this connection, just verify the connection exists.

RESOPT_STATIC

This connection is established at startup and disconnected only at shutdown, no user apis can disconnect it.


ir_flags

Supplies resource type.

Connection Resource Type Values:

One of the following resource types will be specified.

Value

Meaning

RESTYPE_WILD

Wild card resource type.

RESTYPE_DISK

Disk resource.

RESTYPE_SPOOL

Spooled printer resource.

RESTYPE_CHARDEV

Character device resource.

RESTYPE_IPC

Interprocess communication resource.


ir_fh

Supplies the IFS system resource handle for the network resource connection. This is passed back in to the IFS manager on certain calls. The FSD should not attempt to interpret this in any fashion, it is provided only for identification purposes.

ir_uFname

Pointer to the case-preserved filename component in unicode.

ir_upath

Pointer to the unparsed user pathname in unicode.

ir_user

Supplies user id for this request.

ir_lananum

Supplies the LAN address number, which is typically used only for mailslots. The ifs manager does not store this value.

ir_conflags

Indicates whether the connect operation was initiated via a user api request or via an FSD directly.

Connection Flag Values:

Value

Meaning

FALSE

The connection has been initiated by a user api request.

TRUE

The connection has been initiated via an FSD request.


ir_pid

Supplies process id for this request.

ir_fh

Returns the previous IFS system resource handle if the specified resource was previously connected. If this is a new connection, then the FSD should leave this field unchanged.

ir_rh

Returns the handle to the network resource that a connection was made to. This handle is used to identify an existing connection and is passed back to the provider during file operations on the network resource. The value of this handle is not interpreted by the Win32 or INT 21h Managers, it is only used to identify the network resource.

ir_pathSkip

Number of path elements consumed by the connect operation. The IFS manager then parses the rest of the path based on this return value. Typically, the network FSD will consume the servername and sharename components of the passed in path.

ir_flags

Returns the correct resource type if the resource type passed in on the request was RESTYPE_WILD. For all other values of the resource type, this field need not be updated by the FSD.

ir_vfunc

Returns a pointer to a function table, in the FSD, containing a list of the FSD name based file I/O entry points.


Function Table Structure:

Value

Meaning

vfn_version

IFS version number.

vfn_revision

IFS interface revision number.

vfn_size

Number of function entry points in table.

vfn_func[NUM_VOLFUNC]

Array of pointers to volume-based functions as described below:


Volume Based Functions:

Value

Meaning

vfn_func[VFN_DELETE]

Pointer to FS_DeleteFile function.

vfn_func[VFN_DIR]

Pointer to FS_Dir function.

vfn_func[VFN_FILEATTRIB]

Pointer to FS_FileAttributes function.

vfn_func[VFN_FLUSH]

Pointer to FS_FlushVolume function.

vfn_func[VFN_GETDISKINFO]

Pointer to FS_GetDiskInfo function.

vfn_func[VFN_OPEN]

Pointer to FS_OpenFile function.

vfn_func[VFN_RENAME]

Pointer to FS_RenameFile function.

vfn_func[VFN_SEARCH]

Pointer to FS_SearchFile function.

vfn_func[VFN_QUERY]

Pointer to FS_QueryResourceInfo function.

vfn_func[VFN_DISCONNECT]

Pointer to FS_DisconnectNetResource function.

vfn_func[VFN_UNCPIPEREQUEST]

Pointer to FS_NamedPipeRequest function for named pipes.

vfn_func[VFN_IOCTL16DRIVE]

Pointer to FS_Ioctl16Drive function.

vfn_func[VFN_GETDISKPARMS]

Function not defined for network resources, FSD must return pointer to error function.

vfn_func[VFN_FINDOPEN]

Pointer to function for FS_FindFirstFile function.

vfn_func[VFN_DASDIO]

Function not supported for network resources, FSD must return pointer to error function.


ir_error

Returns status of the operation ( 0 if no error, errorcode otherwise ).


This function will be called for each connection made to the network resource. The same network resource handle should be returned for multiple connections to a single network resource.