次の方法で共有


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 または MiniportInitializeEx 関数。 他の 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 を呼び出す前に、分散/収集 DMA チャネルを初期化するために、NdisMRegisterScatterGatherDma または NdisMRegisterDmaChannel を既に呼び出している必要があります。
 
NDIS ドライバーは NdisAllocateSharedMemory 関数を呼び出して、NDIS 共有メモリ プロバイダーから共有メモリのブロックを割り当てます。

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

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

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

要件

要件
サポートされている最小のクライアント NDIS 6.20 以降でサポートされています。
対象プラットフォーム ユニバーサル
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL PASSIVE_LEVEL

こちらもご覧ください

FilterAttach

MiniportInitializeEx

NDIS_SHARED_MEMORY_PARAMETERS

NdisFRegisterFilterDriver

NdisFreeSharedMemory

NdisMRegisterDmaChannel

NdisMRegisterMiniportDriver

NdisMRegisterScatterGatherDma

NdisOpenAdapterEx

NdisRegisterProtocolDriver

NetAllocateSharedMemory