次の方法で共有


RtmLockRoute 関数 (rtmv2.h)

RtmLockRoute 関数は、ルーティング テーブル内のルートをロックまたはロック解除します。 これにより、クライアントがクライアントが所有する不透明なルート ポインターに必要な変更を加えながら、ルートが保護されます。

構文

DWORD RtmLockRoute(
  [in]  RTM_ENTITY_HANDLE RtmRegHandle,
  [in]  RTM_ROUTE_HANDLE  RouteHandle,
  [in]  BOOL              Exclusive,
  [in]  BOOL              LockRoute,
  [out] PRTM_ROUTE_INFO   *RoutePointer
);

パラメーター

[in] RtmRegHandle

RtmRegisterEntity の以前の呼び出しから取得したクライアントを処理します。

[in] RouteHandle

ロックするルートを処理します。

[in] Exclusive

排他 (TRUE) モードまたは共有 (FALSE) モードでルートをロックまたはロック解除するかどうかを指定します。

[in] LockRoute

ルートをロックまたはロック解除するかどうかを指定します。 TRUE を指定してルートをロックします。FALSE を指定してロックを解除します。

[out] RoutePointer

ポインターを返す必要がある場合: 入力時、 RoutePointerNULL へのポインターです。 出力時に、クライアントがルートを所有している場合、 RoutePointer は 次ホップへのポインターを受け取ります。それ以外の場合、 RoutePointer は変更されません。

ハンドルを返す必要がない場合: 入力時、 RoutePointerNULL です

戻り値

関数が成功した場合、戻り値はNO_ERROR。

関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。

意味
ERROR_ACCESS_DENIED
呼び出し元のクライアントはこのルートを所有していません。
ERROR_INVALID_HANDLE
ハンドルが正しくありません。
 
 

注釈

RtmLockRoute の呼び出しによってルートのロックが解除され、LockRoute パラメーターが FALSE に設定されるか、RtmUpdateAndUnlockRoute の呼び出しが行われるまで、他の RTMv2 関数を呼び出さないでください。

現在、この関数はルートだけでなく、宛先全体をロックします。

クライアントは、RTM_ROUTE_INFO構造体のネイバーPrefInfoBelongsToViewsEntitySpecificInfoNextHopsList の各メンバーのみを変更できます。

これらの値のいずれかが変更された場合、クライアントは RtmUpdateAndUnlockRoute を呼び出して、ルーティング テーブル マネージャーに変更を通知する必要があります。

要件

要件
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー rtmv2.h
Library Rtm.lib
[DLL] Rtm.dll

こちらもご覧ください

RTM_ROUTE_INFO

RtmAddRouteToDest

RtmDeleteRouteToDest

RtmGetRoutePointer

RtmHoldDestination

RtmUpdateAndUnlockRoute