WdfPdoInitAssignRawDevice 関数 (wdfpdo.h)
[KMDF にのみ適用]
WdfPdoInitAssignRawDevice メソッドは、呼び出し元のドライバーが未加工モードで指定されたデバイスをサポートできることを示します。
構文
NTSTATUS WdfPdoInitAssignRawDevice(
[in] PWDFDEVICE_INIT DeviceInit,
[in] const GUID *DeviceClassGuid
);
パラメーター
[in] DeviceInit
WDFDEVICE_INIT構造体へのポインター。
[in] DeviceClassGuid
デバイス セットアップ クラスを識別する GUID へのポインター。
メモ カスタム クラス GUID は常に指定する必要があります。 既存のクラス GUID は指定しないでください。 既存のクラス GUID を指定した場合、既存のクラス GUID を指定しようとする他のドライバーは、インストールに失敗するか、正しくないセキュリティ設定でインストールする可能性があります。
詳細については、「解説」を参照してください。
戻り値
操作が成功した場合、メソッドは STATUS_SUCCESS を返します。 それ以外の場合は、STATUS_INVALID_PARAMETERを返します。
注釈
ドライバーは、WdfDeviceCreate を呼び出す前に WdfPdoInitAssignRawDevice を呼び出す必要があります。 WdfDeviceCreate の呼び出しの詳細については、「Framework デバイス オブジェクトの作成」を参照してください。
レジストリには、ドライバーが WdfDeviceInitAssignSDDLString、WdfDeviceInitSetDeviceType、WdfDeviceInitSetCharacteristics、および WdfDeviceInitSetExclusive を呼び出すときに指定する値をオーバーライドする値を含めることができます。 WdfPdoInitAssignRawDevice メソッドの DeviceClassGuid パラメーターは、オーバーライド値を含むレジストリのセクションを識別する GUID を指定します。 DeviceClassGuid パラメーターはレジストリのセクションのみを識別し、実際にはデバイスのデバイス セットアップ クラスを設定しません。 デバイスとドライバーの INF ファイルの [INF バージョン] セクション では、デバイス セットアップ クラスが設定されます。 通常、 DeviceClassGuid パラメーターの GUID は、 INF バージョン セクション で指定されている GUID と一致する必要があります。
レジストリの使用の詳細については、「 インストール後のデバイス オブジェクト レジストリプロパティの設定」を参照してください。
例
kmdf_enumswitches ドライバー サンプルの次のスニペットは、ドライバーが未加工モードで指定されたデバイスをサポートできることを示しています。
NTSTATUS status;
DEFINE_GUID(GUID_DEVCLASS_MYUNIQUEID,
0xf149fe88, 0x f6cc, 0x47e3, 0x85, 0x94, 0xe2, 0xaa, 0xb6, 0xe0, 0x3b, 0xdf);
status = WdfPdoInitAssignRawDevice(
pDeviceInit,
&GUID_DEVCLASS_MYUNIQUEID
);
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
Header | wdfpdo.h (Wdf.h を含む) |
Library | Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。 |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | ChildDeviceInitAPI(kmdf), DriverCreate(kmdf)、InitFreeDeviceCallback(kmdf)、InitFreeDeviceCreate(kmdf)、InitFreeNull(kmdf)、KmdfIrql(kmdf)、KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)、PdoDeviceInitAPI(kmdf)、PdoInitFreeDeviceCallback(kmdf)、PdoInitFreeDeviceCreate(kmdf) |