There are some problems with the declarations of the SDK functions for Pascal/Delphi
See more info in detailed description.
DETAILED DESCRIPTION
The return buffers for the function NWScanPhysicalLocksByFile may look different for 16 bit and 32 bit code, since the 32bit DLLs seem to use 32bit padding. This has to be taken care of in the header declaration. This may also depend on the DLL versions used. The correct padding would change the declarations to
TYPE PHYSICAL_LOCK = Record {$IfDef N_ARCH_32} loggedCount : nuint16; {$else} loggedCount : nuint8; {$EndIf} shareableLockCount : nuint16; recordStart : nuint32; recordEnd : nuint32; connNumber : nuint16; taskNumber : nuint16; lockType : nuint8; {$IfDef N_ARCH_32} filler : nuint8; filler2 : nuint16; {$EndIf} End;
PHYSICAL_LOCKS = Record nextRequest : nuint16; numRecords : nuint16; locks : Array[0..31] Of PHYSICAL_LOCK; curRecord : nuint16; reserved : Array[0..7] Of nuint8 End;
Changes are req'd in NWSYNC.INC and NWSYNC.PAS
The return buffers for the function NWScanConnectionsUsingFile may look different for 16 bit and 32 bit code, since the 32bit DLLs seem to use 32bit padding. This has to be taken care of in the header declaration. The correct padding would change the declarations to
TYPE CONN_USING_FILE = Record connNumber : NWCONN_NUM; taskNumber : nuint16; lockType : nuint8; accessControl : nuint8; lockFlag : nuint8; {$IFDEF N_ARCH_32} filler : nuint8; {$EndIf} End;
CONNS_USING_FILE = Record nextRequest : nuint16; useCount : nuint16; openCount : nuint16; openForReadCount : nuint16; openForWriteCount : nuint16; denyReadCount : nuint16; denyWriteCount : nuint16; locked : nuint8; forkCount : nuint8; connCount : nuint16; connInfo : Array[0..69] Of CONN_USING_FILE End;
Changes affect the NWFILE.INC and NWFILE.H
There are some problems with the declarations of the SDK functions for Pascal/Delphi
See more info in detailed description.
DETAILED DESCRIPTION
* Return structure for NWScanPhysicalLocksByFile
The return buffers for the function NWScanPhysicalLocksByFile may look
different for 16 bit and 32 bit code, since the 32bit DLLs seem to use
32bit padding. This has to be taken care of in the header declaration.
This may also depend on the DLL versions used.
The correct padding would change the declarations to
TYPE
PHYSICAL_LOCK = Record
{$IfDef N_ARCH_32}
loggedCount : nuint16;
{$else}
loggedCount : nuint8;
{$EndIf}
shareableLockCount : nuint16;
recordStart : nuint32;
recordEnd : nuint32;
connNumber : nuint16;
taskNumber : nuint16;
lockType : nuint8;
{$IfDef N_ARCH_32}
filler : nuint8;
filler2 : nuint16;
{$EndIf}
End;
PHYSICAL_LOCKS = Record
nextRequest : nuint16;
numRecords : nuint16;
locks : Array[0..31] Of PHYSICAL_LOCK;
curRecord : nuint16;
reserved : Array[0..7] Of nuint8
End;
Changes are req'd in NWSYNC.INC and NWSYNC.PAS
----------------------------------------------------------------
* Return structure for NWScanConnectionsUsingFile
The return buffers for the function NWScanConnectionsUsingFile may
look different for 16 bit and 32 bit code, since the 32bit DLLs seem
to use 32bit padding. This has to be taken care of in the header declaration.
The correct padding would change the declarations to
TYPE
CONN_USING_FILE = Record
connNumber : NWCONN_NUM;
taskNumber : nuint16;
lockType : nuint8;
accessControl : nuint8;
lockFlag : nuint8;
{$IFDEF N_ARCH_32}
filler : nuint8;
{$EndIf}
End;
CONNS_USING_FILE = Record
nextRequest : nuint16;
useCount : nuint16;
openCount : nuint16;
openForReadCount : nuint16;
openForWriteCount : nuint16;
denyReadCount : nuint16;
denyWriteCount : nuint16;
locked : nuint8;
forkCount : nuint8;
connCount : nuint16;
connInfo : Array[0..69] Of CONN_USING_FILE
End;
Changes affect the NWFILE.INC and NWFILE.H
--devsup
© 2008 Novell, Inc. All Rights Reserved.