GPIO_CLX_ProcessAddDevicePreDeviceCreate関数 (gpioclx.h)

GPIO_CLX_ProcessAddDevicePreDeviceCreate メソッドは、WdfDeviceCreate メソッドに入力パラメーターとして渡される 2 つの構造体に初期化情報を読み込みます。

構文

NTSTATUS GPIO_CLX_ProcessAddDevicePreDeviceCreate(
  [in]      WDFDRIVER              Driver,
  [in, out] PWDFDEVICE_INIT        DeviceInit,
  [out]     PWDF_OBJECT_ATTRIBUTES FdoAttributes
);

パラメーター

[in] Driver

GPIO コントローラー ドライバーのフレームワーク ドライバー オブジェクトに対する WDFDRIVER ハンドル。

[in, out] DeviceInit

フレームワークによって割り当てられた WDFDEVICE_INIT 構造体へのポインター。 このメソッドは、初期化情報をこの構造体に読み込みます。 返されると、この構造体を WdfDeviceCreate メソッドの入力パラメーターとして使用する準備が整います。

[out] FdoAttributes

呼び出し元によって割り当てられた WDF_OBJECT_ATTRIBUTES 構造体へのポインター。 このメソッドは、初期化情報をこの構造体に読み込みます。 返されると、この構造体を WdfDeviceCreate メソッドの入力パラメーターとして使用する準備が整います。

戻り値

GPIO_CLX_ProcessAddDevicePreDeviceCreateは 、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 可能な戻り値には、次のエラー コードが含まれます。

リターン コード 説明
STATUS_INVALID_PARAMETER
呼び出し元は、GpioClx の登録済みクライアントではありません。
STATUS_INSUFFICIENT_RESOURCES
メモリが不足しています。

注釈

GPIO コントローラー ドライバーは、GPIO コントローラーを表すデバイス オブジェクト (FDO) を作成する WdfDeviceCreate メソッドを呼び出す前に、EvtDriverDeviceAdd コールバック関数でこのメソッドを呼び出す必要があります。 それ以外の場合、GPIO フレームワーク拡張機能 (GpioClx) は、I/O 要求を処理したり、新しいフレームワーク デバイス オブジェクトの割り込みを処理したりできません。

次のコード例は、"XYZ" GPIO コントローラー デバイスの GPIO コントローラー ドライバーの EvtDriverDeviceAdd コールバック関数を示しています。

NTSTATUS
  XyzEvtDriverDeviceAdd(
    _In_ WDFDRIVER Driver,
    _Inout_ PWDFDEVICE_INIT DeviceInit
    )
{
    WDFDEVICE Device;
    WDF_OBJECT_ATTRIBUTES FdoAttributes;
    NTSTATUS Status;

    Status = GPIO_CLX_ProcessAddDevicePreDeviceCreate(Driver,
                                                      DeviceInit,
                                                      &FdoAttributes);
    if (!NT_SUCCESS(Status)) {
        goto ExitDeviceAdd;
    }

    //
    // Call the framework to create the device and attach it to the lower stack.
    //

    Status = WdfDeviceCreate(&DeviceInit, &FdoAttributes, &Device);
    if (!NT_SUCCESS(Status)) {
        goto ExitDeviceAdd;
    }

    Status = GPIO_CLX_ProcessAddDevicePostDeviceCreate(Driver, Device);
    if (!NT_SUCCESS(Status)) {
        goto ExitDeviceAdd;
    }

ExitDeviceAdd:
    return Status;
}

前のコード例では、 WdfDeviceCreate 呼び出しによって、GPIO コントローラー デバイスを表すフレームワーク デバイス オブジェクトが作成されます。 この呼び出しの 2 つの入力パラメーターは、 構造体のWDFDEVICE_INITWDF_OBJECT_ATTRIBUTES を指します。 これらの構造体は、WdfDeviceCreate 呼び出しの前にある GPIO_CLX_ProcessAddDevicePreDeviceCreate 呼び出しによって変更されます。 WdfDeviceCreate 呼び出しの出力パラメーター Device は、WdfDeviceCreate 呼び出しに続くGPIO_CLX_ProcessAddDevicePostDeviceCreate呼び出しへの入力パラメーターです。

要件

要件
サポートされている最小のクライアント Windows 8以降で使用できます。
対象プラットフォーム ユニバーサル
Header gpioclx.h
Library Msgpioclxstub.lib
IRQL PASSIVE_LEVEL

こちらもご覧ください

EvtDriverDeviceAdd

GPIO_CLX_ProcessAddDevicePostDeviceCreate

WDFDEVICE_INIT

WDF_OBJECT_ATTRIBUTES

WdfDeviceCreate