FSH_DOVOLIO2

Purpose

This function is an FSD call that controls device driver operation independently from I/O operations.

Calling Sequence

int far pascal FSH_DOVOLIO2(hDev, sfn, cat, func, pParm, cbParm, pData, cbData) unsigned long hDev; unsigned short sfn; unsigned short cat; unsigned short func; char far * pParm; unsigned short cbParm; char far * pData; unsigned short cbData;

Where

hDev is the device handle obtained from VPB

sfn is the system file number from the open instance that caused the FSH_DOVOLIO2 call.

This field should be passed unchanged from the sfi-selfsfn field. It no open instance corresponds to this call, this field should be set to 0xFFFF.

cat is the category of IOCTL to perform.

func is the function within the category of IOCTL.

pParm is the long address to the parameter area.

cbParm is the length of the parameter area.

pData is the long address to the data area.

cbData is the length of the data area.

Returns

If no error is detected, a zero error code is returned. If an error is detected, one of the following error codes is returned:

ERROR_INVALID_FUNCTION – indicates the function supplied is incompatible with the category and the device handle supplied.

ERROR_INVALID_CATEGORY – indicates the category supplied is incompatible with the function and the device handle supplied. –

Device-driver/device-manager errors listed /DDERR/

Remarks

This routine supports volume management for IOCTL operations. Any errors are reported to the hard error daemon before returning to the FSD. Any retries indicated by the hard error daemon or actions indicated by DosError are done within the call to FSH_DOVOLIO2.

The purpose of this routine is to enable volume tracking with IOCTLs. It is not available at the API level.

FSH_DOVOLIO2 may block.

System does normal volume checking for this request.

Note: OS/2 does not validate input parameters. An FSD, therefore, should call FSH_PROBEBUF where appropriate.