Jump to content

DosPhysicalDisk (FAPI)

From EDM2
Revision as of 04:07, 28 June 2016 by Martini (talk | contribs) (Created page with "==Description== This call obtains information about partitionable disks. ==Syntax== <PRE> DosPhysicalDisk (Function, DataPtr, DataLen, ParmPtr, ParmLen) </PRE> ==Parame...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Description

This call obtains information about partitionable disks.

Syntax

 DosPhysicalDisk

    (Function, DataPtr, DataLen, ParmPtr, ParmLen)

Parameters

Function (USHORT) - input
The functions supported are:
   Value        Definition 
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.
         FUNCTION   DATALEN         RETURNED INFORMATION
          1         2               Total number of partitionable disks in
                                    the system, 1-based.

          2         2               Handle for the specified partitionable
                                    disk for the category 9 IOCTLs.

          3         0               None.  Pointer must be zero.

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:

         FUNCTION   PARMLEN         INPUT PARAMETERS
          1         0               None.  Must be set to zero.
          2         String length   ASCIIZ string that specifies the
                                    partitionable disk.
          3         2               Handle obtained from function 2.

Note: All lengths are in bytes.

Return Code

rc (USHORT) - return

Return code descriptions are:

  • 0 NO_ERROR
  • ERROR_INVALID_FUNCTION
  • ERROR_ACCESS_DENIED
  • 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 : <null byte>

Where:

number

specifies the partitionable disk (1-based) number in ASCII

:

must be present

<null byte>

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.

Example Code

C Binding

#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 Binding

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

Related Functions