WdfControlDeviceInitAllocate 関数 (wdfcontrol.h)
[KMDF にのみ適用]
WdfControlDeviceInitAllocate メソッドは、ドライバーが新しいコントロール デバイス オブジェクトを作成するときに使用する WDFDEVICE_INIT 構造体を割り当てます。
構文
PWDFDEVICE_INIT WdfControlDeviceInitAllocate(
[in] WDFDRIVER Driver,
[in] const UNICODE_STRING *SDDLString
);
パラメーター
[in] Driver
フレームワーク ドライバー オブジェクトへのハンドル。
[in] SDDLString
Unicode 文字列を記述する UNICODE_STRING 構造体へのポインター。 この文字列は、セキュリティ記述子のセキュリティ記述子定義言語 (SDDL) 表現です。 詳細については、次の「解説」セクションを参照してください。
戻り値
WdfControlDeviceInitAllocate は、操作が成功した場合、フレームワークによって割り当てられた WDFDEVICE_INIT 構造体へのポインターを返します。 それ以外の場合、メソッドは NULL 返します。
備考
ドライバーでコントロール デバイス オブジェクトを作成する場合、ドライバーは WdfControlDeviceInitAllocate 呼び出して、WdfDeviceCreate に渡すことができるWDFDEVICE_INIT構造体取得する必要があります。
ドライバーは、SDDL のサブセットを使用してセキュリティ設定を指定できます。 Wdmsec.h ファイルは、使用できる xxx形式の定数SDDL_DEVOBJ_セットを定義します。 セキュリティ記述子と SDDL の詳細については、「デバイス オブジェクトのセキュリティ保護」を参照してください。
WdfDeviceInitAssignSDDLString メソッドは、WdfControlDeviceInitAllocate が指定 セキュリティ設定 (存在する場合) を上書きします。
WdfControlDeviceInitAllocate 呼び出す方法の詳細については、「コントロール デバイス オブジェクトの使用 」を参照してください。
例
次のコード例では、DEVICE_INIT構造体の割り当て、デバイス オブジェクト名の割り当て、シャットダウン通知コールバック関数の登録、コントロール デバイス オブジェクトの作成を行います。 WdfControlDeviceInitAllocateを使用するより複雑な例については、NONPNP サンプル ドライバーまたは NDISProt サンプル ドライバーを参照してください。
PWDFDEVICE_INIT deviceInit = NULL;
NTSTATUS status;
WDF_OBJECT_ATTRIBUTES objectAttribs;
deviceInit = WdfControlDeviceInitAllocate(
hDriver,
&SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RW_RES_R
);
if (deviceInit == NULL) {
status = STATUS_INSUFFICIENT_RESOURCES;
goto Error;
}
status = WdfDeviceInitAssignName(
deviceInit,
&ntDeviceName
);
if (!NT_SUCCESS(status)) {
WdfDeviceInitFree(deviceInit);
deviceInit = NULL;
goto Error;
}
WdfControlDeviceInitSetShutdownNotification(
deviceInit,
EvtShutdownNotification,
WdfDeviceShutdown
);
WDF_OBJECT_ATTRIBUTES_INIT(&objectAttribs);
status = WdfDeviceCreate(
&deviceInit,
&objectAttribs,
&controlDevice
);
if (!NT_SUCCESS(status)) {
WdfDeviceInitFree(deviceInit);
deviceInit = NULL;
goto Error;
}
WdfControlFinishInitializing(controlDevice);
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
最小 KMDF バージョン | 1.0 |
ヘッダー | wdfcontrol.h (Wdf.h を含む) |
ライブラリ | Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。 |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を する | ControlDeviceInitAPI(kmdf), CtlDeviceFinishInitDeviceAdd(kmdf), CtlDeviceFinishInitDrEntry(kmdf), DoubleDeviceInitFree(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf)InitFreeDeviceCreate(kmdf), InitFreeDeviceCreateType2(kmdf), InitFreeDeviceCreateType4(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
関連項目
WdfControlDeviceInitSetShutdownNotification の
WdfDeviceInitAssignSDDLString の