NdisAllocateIoWorkItem 関数 (ndis.h)
NDIS ドライバーは、作業項目を割り当てるために NdisAllocateIoWorkItem 関数を呼び出します。 詳細については、「 NDIS I/O 作業項目」を参照してください。
構文
NDIS_HANDLE NdisAllocateIoWorkItem(
[in] NDIS_HANDLE NdisObjectHandle
);
パラメーター
[in] NdisObjectHandle
デバイス オブジェクトまたはドライバー オブジェクトに関連付けられている NDIS オブジェクトのハンドル。
戻り値
NdisAllocateIoWorkItem が作業項目を正常に割り当てた場合、作業項目へのハンドルが返されます。 失敗した場合、 NdisAllocateIoWorkItem はNULL を返します。
注釈
NDIS ミニポート ドライバーは、2 つのハンドルのいずれか NdisAllocateIoWorkItem を 渡す: ミニポート ドライバー が呼び出されたときに NDIS が返すミニポート ドライバー ハンドルまたは NDIS がミニポート ドライバーのハンドルに渡したアダプター ハンドル NdisMRegisterMiniportDriver。
NDIS フィルター ドライバーは、NdisFRegisterFilterDriver というフィルター ドライバーが返したときに NDIS が返したフィルター ドライバー ハンドルを NdisAllocateIoWorkItem に渡すことができます。
NDIS ミニポート ドライバーとフィルター ドライバーは、NdisRegisterDeviceEx ドライバーが呼び出されたときに NDIS が返した NDIS デバイス ハンドル NdisAllocateIoWorkItem を渡すこともできます。 NdisAllocateIoWorkItem は、ハンドルに関連付けられているデバイス オブジェクトまたはドライバー オブジェクトを取得し、デバイス オブジェクトまたはドライバー オブジェクトを IoAllocateWorkItem 関数に渡します。
NDIS ドライバーは、 NdisFreeIoWorkItem 関数を呼び出して、 NdisAllocateIoWorkItem が割り当てた作業項目に関連付けられているリソースを解放する必要があります。
ドライバーは、 NdisQueueIoWorkItem に渡されるコールバック ルーチンで NdisFreeIoWorkItem を呼び出すことができます。
ミニポート ドライバーが NdisAllocateIoWorkItem を呼び出したときに NDIS が MiniportInitializeEx に渡したハンドルを使用している場合は、ドライバーの MiniportHaltEx 関数の呼び出しの前または呼び出しで作業項目を解放する必要があります。
ドライバーが NdisAllocateIoWorkItem を呼び出したときに NdisMRegisterMiniportDriver が返したハンドルをミニポート ドライバーが使用した場合、ドライバーはドライバーのアンロード前に作業項目を解放する必要があります。
一般に、ドライバーは、ドライバーがアンロードする前に作業項目を解放する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.0 以降でサポートされています。 |
対象プラットフォーム | ユニバーサル |
Header | ndis.h (Ndis.h を含む) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 | Init_NdisAllocateIoWorkItem(ndis)、 Irql_Miscellaneous_Function(ndis) |