Jump to content

DosPhysicalDisk (FAPI): Difference between revisions

From EDM2
Ak120 (talk | contribs)
Ak120 (talk | contribs)
mNo edit summary
Line 1: Line 1:
[[image:legacy.png]]
This call obtains information about partitionable disks.
This is the legacy function, please visit [[OS2 API:CPI:DosPhysicalDisk|DosPhysicalDisk]] for the current version.  


==Description==
This is the legacy function, please visit [[DosPhysicalDisk]] for the current version.  
This call obtains information about partitionable disks.


==Syntax==
==Syntax==
<PRE>
  DosPhysicalDisk (Function, DataPtr, DataLen, ParmPtr, ParmLen)
  DosPhysicalDisk


    (Function, DataPtr, DataLen, ParmPtr, ParmLen)
</PRE>
==Parameters==
==Parameters==
; Function (USHORT) - input : The functions supported are:
; Function (USHORT) - input : The functions supported are:
 
:1 - Obtain total number of partitionable disks  
    Value        Definition
:2 - Obtain a handle to use with Category 9 IOCTLs
1
:3 - Release a handle for a partitionable disk.
        Obtain total number of partitionable disks  
; DataPtr (PBYTE) - output : Address of the buffer where the returned information is placed.
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.
; DataLen (USHORT) - input : Length of the data buffer. The output data for each function is described below.
 
FUNCTION DATALEN   RETURNED INFORMATION
          FUNCTION   DATALEN         RETURNED INFORMATION
1        2         Total number of partitionable disks in
          1        2               Total number of partitionable disks in
                      the system, 1-based.
                                    the system, 1-based.
   
   
          2        2               Handle for the specified partitionable
2        2         Handle for the specified partitionable
                                    disk for the category 9 IOCTLs.
                      disk for the category 9 IOCTLs.
   
   
          3        0               None.  Pointer must be zero.
3        0         None.  Pointer must be zero.
 
:All lengths are in bytes.
All lengths are in bytes.  
; ParmPtr (PBYTE) - input : Address of the buffer used for input parameters.
 
; ParmLen (USHORT) - input : Length of the parameter buffer.
; ParmPtr (PBYTE) - input : Address of the buffer used for input parameters.  
:The input parameters required for each function are:
 
FUNCTION  PARMLEN        INPUT PARAMETERS
; ParmLen (USHORT) - input : Length of the parameter buffer.  
1        0              None.  Must be set to zero.


The input parameters required for each function are:
2        String length  ASCIIZ string that specifies the
                          partitionable disk.


          FUNCTION  PARMLEN        INPUT PARAMETERS
  3        2              Handle obtained from function 2.
 
:Note: All lengths are in bytes.
          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==
==Return Code==
  rc (USHORT) - return
  rc (USHORT) - return
Return code descriptions are:
Return code descriptions are:
 
* 0 NO_ERROR
* 0     NO_ERROR
*   ERROR_INVALID_FUNCTION
*     ERROR_INVALID_FUNCTION
*   ERROR_ACCESS_DENIED
*     ERROR_ACCESS_DENIED
*   ERROR_INVALID_HANDLE
*     ERROR_INVALID_HANDLE
* 33 ERROR_LOCK_VIOLATION  
* 33       ERROR_LOCK_VIOLATION  
* 87 ERROR_INVALID_PARAMETER
* 87       ERROR_INVALID_PARAMETER


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


Line 118: Line 88:
</PRE>
</PRE>
==Related Functions==
==Related Functions==
*


[[Category:The OS/2 API Project]]
[[Category:Dos]]

Revision as of 17:19, 5 March 2017

This call obtains information about partitionable disks.

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

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.
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