次の方法で共有


NdisAllocateSharedMemory 関数 (ndis.h)

NdisAllocateSharedMemory 関数は、共有メモリ プロバイダーから共有メモリを割り当てます。

構文

NDIS_STATUS NdisAllocateSharedMemory(
  [in]      NDIS_HANDLE                    NdisHandle,
  [in]      PNDIS_SHARED_MEMORY_PARAMETERS SharedMemoryParameters,
  [in, out] PNDIS_HANDLE                   pAllocationHandle
);

パラメーター

[in] NdisHandle

呼び出し元の初期化中に取得された NDIS ドライバーまたはインスタンス ハンドル。 たとえば、ミニポート ドライバーは、から取得した NDIS ハンドルを使用できます。NdisMRegisterMiniportDriver またはミニポートInitializeEx 関数 します。 その他の NDIS ドライバーは、次の関数のハンドルを使用できます。

NdisRegisterProtocolDriver

NdisOpenAdapterEx

[in] SharedMemoryParameters

へのポインター NDIS_SHARED_MEMORY_PARAMETERS 共有メモリの要求された属性を定義する構造体です。

[in, out] pAllocationHandle

割り当てられた共有メモリを識別するハンドルの場所へのポインター。 このハンドルは、関数が戻ったとき、または関数が失敗した場合に NULL 場合に使用できます。 呼び出し元は、このハンドルを使用して、正常に割り当てられた共有メモリを解放する必要があります。

戻り値

NdisAllocateSharedMemory は、次の状態値を返すことができます。

リターン コード 形容
NDIS_STATUS_SUCCESS
操作が正常に完了しました。
NDIS_STATUS_RESOURCES
操作を完了するためのリソースが不足していたため、操作が失敗しました。
NDIS_STATUS_INVALID_PARAMETER
入力パラメーターが無効なため、操作に失敗しました。
NDIS_STATUS_FAILURE
指定されていない理由で操作が失敗しました。

備考

ミニポート ドライバーは、ndisAllocateSharedMemory を呼び出す前に、既に ndisMRegisterScatterGatherDma または NdisMRegisterDmaChannel を呼び出して、散布図を初期化したり DMA チャネル収集したりする必要があります。
 
NDIS ドライバーは、NDIS 共有メモリ プロバイダーから共有メモリのブロックを割り当てるために、NdisAllocateSharedMemory 関数を呼び出します。

SharedMemoryParameters パラメーターには、 へのポインターが含まれています。 NDIS_SHARED_MEMORY_PARAMETERS 共有メモリの要求された属性を定義する構造体です。 NDIS_SHARED_MEM_PARAMETERS_CONTIGUOUS フラグが Flags メンバーで設定されていない場合は、連続していないメモリに含まれる分散収集リストで共有メモリを指定できます。

NDIS は、NdisAllocateSharedMemoryへの呼び出しのコンテキストから共有メモリ プロバイダーの NetAllocateSharedMemory 関数を呼び出します。

ドライバーは、NdisFreeSharedMemory 関数を呼び出して、NdisAllocateSharedMemory 割り当てる共有メモリを解放する必要があります。

必要条件

要件 価値
サポートされる最小クライアント NDIS 6.20 以降でサポートされています。
ターゲット プラットフォーム 万国
ヘッダー ndis.h (Ndis.h を含む)
ライブラリ Ndis.lib
IRQL PASSIVE_LEVEL

関連項目

FilterAttach

ミニポートInitializeEx

NDIS_SHARED_MEMORY_PARAMETERS

NdisFRegisterFilterDriver

NdisFreeSharedMemory

NdisMRegisterDmaChannel

NdisMRegisterMiniportDriver

NdisMRegisterScatterGatherDma

NdisOpenAdapterEx

NdisRegisterProtocolDriver

NetAllocateSharedMemory