Jump to content

DosPhysicalDisk (FAPI): Difference between revisions

From EDM2
No edit summary
Ak120 (talk | contribs)
(No difference)

Revision as of 00:59, 27 February 2017

This is the legacy function, please visit DosPhysicalDisk for the current version.

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