4.1 LnkSearchMachine

The following example shows an example LnkSearchMachine call, similar to the example in section 1.3 with the IDs set as follows:

On machine M1:

  • VolumeID: 8e7e9c15f59b4cf9952b03616aa51ebe

  • ObjectID: 6479f083cfb245c29c713f586d6e038f

On machine M2:

  • VolumeID: 20aaf9f7e0f0154f7681dd8a7a8872f5

  • ObjectID: 73c7a25fbb1cdc1189ad00123f7ad5f3

In this example, the DLT Workstation client successfully contacts the named pipe "\\pipe\trkwks" with the following LnkSearchMachine call.

 HRESULT 
 LnkSearchMachine (
     [in] unsigned long Restrictions = 0,
     [in] const CDomainRelativeObjId *pdroidBirthLast= { 
         8e7e9c15f59b4cf9952b03616aa51ebe
         6479f083cfb245c29c713f586d6e038f },
     [in] const CDomainRelativeObjId *pdroidLast = { 
         8e7e9c15f59b4cf9952b03616aa51ebe,
         6479f083cfb245c29c713f586d6e038f },
     [out] CDomainRelativeObjId *pdroidBirthNext= {
         irrelevant, filled in by server},
     [out] CDomainRelativeObjId *pdroidNext= {
         irrelevant, filled in by server},
     [out] CMachineId *pmcidNext = {
         irrelevant, filled in by server},
     [out, max_is(261), string] WCHAR* ptszPath = {
         irrelevant, filled in by server}
 );
  

The server receives this call, verifies that the client is authorized to send it requests, consults its list of file objects, and finds that the file is indeed at that location, with a UNC of "\\M2\share2\F2.txt", and that the client is authorized to obtain its information.

The server responds with the following.

  
 HRESULT = S_OK
 LnkSearchMachine (
     [in] unsigned long Restrictions = {unmodified},
     [in] const CDomainRelativeObjId *pdroidBirthLast = 
         {unmodified},
     [in] const CDomainRelativeObjId *pdroidLast= {unmodified],
     [out] CDomainRelativeObjId *pdroidBirthNext = { 
         8e7e9c15f59b4cf9952b03616aa51ebe,
         6479f083cfb245c29c713f586d6e038f },
     [out] CDomainRelativeObjId *pdroidNext = { 
         20aaf9f7e0f0154f7681dd8a7a8872f5,
         73c7a25fbb1cdc1189ad00123f7ad5f3 },
     [out] CMachineId *pmcidNext = "M2",
     [out, max_is(261), string] WCHAR* ptszPath =
         "\\M2\share2\F2.txt"
 );
  

The client sees the successful completion and updates its FileLinkInformation state with the new location.