GPIO_CLX_ProcessAddDevicePreDeviceCreate 함수(gpioclx.h)
GPIO_CLX_ProcessAddDevicePreDeviceCreate 메서드는 WdfDeviceCreate 메서드에 입력 매개 변수로 전달되는 두 구조체로 초기화 정보를 로드합니다.
구문
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 반환합니다. 가능한 반환 값에는 다음 오류 코드가 포함됩니다.
반환 코드 | 설명 |
---|---|
|
호출자는 GpioClx의 등록된 클라이언트가 아닙니다. |
|
메모리가 부족합니다. |
설명
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 컨트롤러 디바이스를 나타내는 프레임워크 디바이스 개체를 만듭니다. 이 호출에 대한 두 개의 입력 매개 변수는 WDFDEVICE_INIT 및 WDF_OBJECT_ATTRIBUTES 구조를 가리킵니다. 이러한 구조는 WdfDeviceCreate 호출 앞에 오는 GPIO_CLX_ProcessAddDevicePreDeviceCreate 호출에 의해 수정됩니다. WdfDeviceCreate 호출의 출력 매개 변수인 Device는 WdfDeviceCreate 호출 뒤에 있는 GPIO_CLX_ProcessAddDevicePostDeviceCreate 호출에 대한 입력 매개 변수입니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 사용하여 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | gpioclx.h |
라이브러리 | Msgpioclxstub.lib |
IRQL | PASSIVE_LEVEL |