DevHelp AttachDD

This service returns the address of the inter-device-driver communication (IDC) entry point to a specified device.

C
 USHORT APIENTRY DevHelp_AttachDD (NPSZ DDName, NPBYTE DDTable) 

Assembler
 MOV  BX,OFFSET DS:ddname      ; Name of other device driver MOV  DI,OFFSET DS:dd@         ; Data area to hold address MOV  DL,DevHlp_AttachDD

CALL [Device_Help] 

C

 * DDName(NPSZ) - input : Name of the device driver


 * DDTable(NPBYTE) Output : Data area to hold address

Assembler
 MOV  BX,OFFSET DS:ddname      ; Name of other device driver MOV  DI,OFFSET DS:dd@         ; Data area to hold address MOV  DL,DevHlp_AttachDD

CALL [Device_Help] 

C
Success Indicator: 0 - The data area is filled in.

Possible errors: This function does not return specific error code. The carry flag if set indicates either Device Driver Not Found or No IDC Entry Point.

Assembler
 'C' Clear if no error. The data area is filled in.

'C' Set if error. AX = Error code. Possible errors: This function does not return specific error code. The carry flag if set indicates either Device Driver Not Found or No IDC Entry Point. 

Remarks
The ddname field contains the ASCII name of the target device driver. If the target device driver is a character device driver, the ddname must match the name in the target device driver's device header.

The dd@ field must be 12 bytes in length. It has the following layout:

Description                                      Length Reserved                                         WORD Reserved                                         WORD Reserved                                         WORD Protect Mode Offset of IDC Entry Point           WORD Protect Mode CS Selector of IDC Entry Point      WORD Protect Mode DS of IDC Device Driver             WORD

The IDC entry point contains a ring 0 selector. Loadable physical device drivers (physical device drivers loaded with DEVICE= statement) initialize at ring 3, and cannot call an IDC entry point from their INIT routine. Base device drivers initialize at ring 0 and can call an IDC entry point from their INIT routine. Any physical device driver can call an IDC entry point when called with the 1Fh strategy command.

Before the physical device driver calls the IDC entry point, the device driver must verify that the entry point it received is nonzero for the CPU mode that calls the IDC entry point. When calling the IDC entry point of the target device driver, the caller must set the DS register for the target device driver. Other registers used in the calling convention must be defined by the target device driver.

The IDC entry point of the target device driver must follow the Far Call/Return model.

Note: See Physical Device Driver Load Module Layout for more information.

C

 * 1) include "dhcalls.h"

USHORT APIENTRY DevHelp_AttachDD (NPSZ DDName, NPBYTE DDTable) 