次の方法で共有


PsReplaceSiloContext 関数 (ntddk.h)

このルーチンは、サイロにオブジェクトを挿入します。

構文

NTSTATUS PsReplaceSiloContext(
  [in]       PESILO Silo,
  [in]       ULONG  ContextSlot,
  [in]       PVOID  NewSiloContext,
  [optional] PVOID  *OldSiloContext
);

パラメーター

[in] Silo

サイロへのポインター。  このパラメーターは必須であり、NULL することはできません。

[in] ContextSlot

PsAllocSiloContextSlot ルーチンによって割り当てられたスロット。

[in] NewSiloContext

PsCreateSiloContext ルーチンによって作成されたオブジェクトへのポインター。 オブジェクトは、このルーチンで指定されたものと同じサイロ ポインターを使用して作成する必要があります。 このパラメーターは必須であり、NULL することはできません。

[optional] OldSiloContext

既存のオブジェクトのアドレスを受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、NULL できます。 パラメーターが受け取るアドレスは、NULL できます。

戻り値

次の NT 状態コードが返されます。

リターン コード 形容
STATUS_INSUFFICIENT_RESOURCES
挿入を実行するリソースがシステムにありません。 これはエラー コードです。 
STATUS_NOT_SUPPORTED
スロットは読み取り専用であり、変更できません。 これはエラー コードです。
STATUS_SUCCESS
操作が正常に完了しました。

備考

PsReplaceSiloContext 正常に呼び出されると、NewSiloContext 参照カウントがインクリメントされます。 PsReplaceSiloContext 失敗した場合、参照カウントは変更されません。 どちらの場合も、PsReplaceSiloContext の呼び出し元 PsDereferenceSiloContext を呼び出して、PsReplaceSiloContext オブジェクトをデクリメントする必要があります。 PsReplaceSiloContext 失敗し、OldSiloContext パラメーターが NULL されず、NULL を指していない場合、NULL 参照ポインターになります。 ルーチンが完了したら、呼び出し元は PsDereferenceSiloContext を呼び出して、NULL パラメーターが指すオブジェクトをデクリメントする必要があります。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 1607
サポートされる最小サーバー Windows Server 2016
ターゲット プラットフォーム ウィンドウズ
ヘッダー ntddk.h