DosPhysicalDisk (FAPI)

This call obtains information about partitionable disks.

Syntax
DosPhysicalDisk (Function, DataPtr, DataLen, ParmPtr, ParmLen)

Parameters

 * Function (USHORT) - input : The functions supported are:
 * 1 - Obtain total number of partitionable disks
 * 2 - Obtain a handle to use with Category 9 IOCTLs
 * 3 - Release a handle for a partitionable disk.


 * DataPtr (PBYTE) - output : Address of the buffer where the returned information is placed.
 * DataLen (USHORT) - input : Length of the data buffer. The output data for each function is described below.
 * All lengths are in bytes.


 * ParmPtr (PBYTE) - input : Address of the buffer used for input parameters.
 * ParmLen (USHORT) - input : Length of the parameter buffer.
 * The input parameters required for each function are:


 * Note: All lengths are in bytes.

Return Code

 * rc (USHORT) - return:Return code descriptions are:
 * 0 NO_ERROR
 * 1 ERROR_INVALID_FUNCTION
 * 5 ERROR_ACCESS_DENIED
 * 6 ERROR_INVALID_HANDLE
 * 33 ERROR_LOCK_VIOLATION
 * 87 ERROR_INVALID_PARAMETER

Remarks
The ASCIIZ string used to specify the partitionable disk must be of the following format: number : Where: number specifies the partitionable disk (1-based) number in ASCII : must be present the byte of 0 for the ASCIIZ string

The handle returned for the specified partitionable disk can only be used with the DosDevIOCtl call for the Category 9 Generic IOCTL. Use of the handle for a physical partitionable disk is not permitted for handle-based file system function calls, such as DosRead or DosClose.

C

 * 1) define INCL_DOSDEVICES

USHORT rc = DosPhysicalDisk(Function, DataPtr, DataLen, ParmPtr, ParmLen);

USHORT Function;      /* Type of information */ PBYTE  DataPtr;       /* Pointer to return buffer */ USHORT DataLen;       /* Return buffer length */ PBYTE  ParmPtr;       /* Pointer to user-supplied information */ USHORT ParmLen;       /* Length of user-supplied information */

USHORT rc;            /* return code */ 

MASM
 EXTRN DosPhysicalDisk:FAR INCL_DOSDEVICES    EQU 1

PUSH  WORD    Function      ;Type of information PUSH@ OTHER   DataPtr       ;Return buffer (returned) PUSH  WORD    DataLen       ;Return buffer length PUSH@ OTHER   ParmPtr       ;User-supplied information PUSH  WORD    ParmLen       ;Length of user-supplied information CALL  DosPhysicalDisk

Returns WORD 