SerCx2CustomReceiveTransactionCreate 함수(sercx.h)

SerCx2CustomReceiveTransactionCreate 메서드는 사용자 지정 수신 트랜잭션 개체를 만듭니다. 이 개체는 SerCx2(직렬 프레임워크 확장) 버전 2에서 사용자 지정 수신 트랜잭션을 수행하는 데 사용합니다.

구문

NTSTATUS SerCx2CustomReceiveTransactionCreate(
  [in]  SERCX2CUSTOMRECEIVE                       CustomReceive,
  [in]  PSERCX2_CUSTOM_RECEIVE_TRANSACTION_CONFIG CustomReceiveTransactionConfig,
  [in]  PWDF_OBJECT_ATTRIBUTES                    Attributes,
  [out] SERCX2CUSTOMRECEIVETRANSACTION            *CustomReceiveTransaction
);

매개 변수

[in] CustomReceive

사용자 지정 수신 개체에 대한 SERCX2CUSTOMRECEIVE 핸들입니다. 이 개체를 만들기 위해 이전에 SerCx2CustomReceiveCreate 메서드를 호출한 직렬 컨트롤러 드라이버입니다.

[in] CustomReceiveTransactionConfig

SERCX2_CUSTOM_RECEIVE_TRANSACTION_CONFIG 구조체에 대한 포인터입니다. 이 메서드를 호출하기 전에 호출자는 SERCX2_CUSTOM_RECEIVE_TRANSACTION_CONFIG_INIT 함수를 호출하여 구조를 초기화해야 합니다. 이 구조에는 직렬 컨트롤러 드라이버에서 구현하는 이벤트 콜백 루틴 집합에 대한 포인터가 포함됩니다. SerCx2는 이러한 함수를 호출하여 사용자 지정 데이터 전송 메커니즘을 사용하여 직렬 컨트롤러에서 받은 데이터를 읽는 I/O 트랜잭션을 수행합니다.

[in] Attributes

새 custom-receive-transaction 개체에 할당할 특성을 설명하는 WDF_OBJECT_ATTRIBUTES 구조체에 대한 포인터입니다. 이 메서드를 호출하기 전에 호출자는 WDF_OBJECT_ATTRIBUTES_INIT 함수를 호출하여 구조를 초기화해야 합니다. 이 매개 변수는 선택 사항이며 직렬 컨트롤러 드라이버가 개체에 특성을 할당할 필요가 없는 경우 WDF_NO_OBJECT_ATTRIBUTES 지정할 수 있습니다. 자세한 내용은 설명 부분을 참조하세요.

[out] CustomReceiveTransaction

이 메서드가 새로 만든 custom-receive-transaction 개체에 SERCX2CUSTOMRECEIVETRANSACTION 핸들을 쓰는 위치에 대한 포인터입니다. SerCx2 및 직렬 컨트롤러 드라이버는 후속 호출에서 이 핸들을 사용하여 이 개체를 참조합니다.

반환 값

이 메서드는 호출에 성공하면 STATUS_SUCCESS 반환합니다. 가능한 오류 반환 값에는 다음 상태 코드가 포함됩니다.

반환 코드 설명
STATUS_INVALID_DEVICE_REQUEST
사용자 지정-수신-트랜잭션 개체는 이전 SerCx2CustomReceiveTransactionCreate 호출에서 이미 존재합니다.
STATUS_INFO_LENGTH_MISMATCH
CustomReceiveTransactionConfigSize-> 값이 sizeof(SERCX2_CUSTOM_RECEIVE_TRANSACTION_CONFIG)와 같지 않습니다.
STATUS_INVALID_PARAMETER
매개 변수 값이 잘못되었습니다. 호출자는 유효한 EvtSerCx2CustomReceiveTransactionStartEvtSerCx2CustomReceiveTransactionQueryProgress 함수 포인터를 제공해야 합니다.
STATUS_INSUFFICIENT_RESOURCES
사용자 지정 수신-트랜잭션 개체를 만드는 데 사용할 수 있는 리소스가 부족합니다.

설명

직렬 컨트롤러 드라이버는 이 메서드를 호출하여 사용자 지정 수신 트랜잭션 개체를 만들 수 있습니다. SerCx2는 이 개체를 사용하여 직렬 컨트롤러에서 받은 데이터를 읽는 사용자 지정 데이터 전송 메커니즘을 사용하는 I/O 트랜잭션인 사용자 지정 수신 트랜잭션을 관리합니다.

옵션으로 직렬 컨트롤러 드라이버는 Attributes 매개 변수를 사용하여 사용자 지정 수신 개체에 대한 컨텍스트를 만들고 삭제할 개체를 준비하기 위해 호출되는 EvtCleanupCallbackEvtDestroyCallback 함수에 대한 포인터를 제공할 수 있습니다. 자세한 내용은 WDF_OBJECT_ATTRIBUTES 참조하세요.

Attributes 매개 변수가 WDF_OBJECT_ATTRIBUTES 구조를 가리키는 경우 호출자는 WDF_OBJECT_ATTRIBUTES_INIT 초기화 함수가 이 구조체의 ParentObject, ExecutionLevelSynchronizationScope 멤버에 쓰는 값을 덮어쓰지 않아야 합니다.

구현된 콜백 함수의 지정된 조합이 유효하지 않으면 SerCx2CustomReceiveTransactionCreate 호출이 실패하고 STATUS_INVALID_PARAMETER 반환합니다.

사용자 지정 수신 트랜잭션 개체를 만드는 방법에 대한 자세한 내용은 SERCX2CUSTOMRECEIVETRANSACTION을 참조하세요. 사용자 지정 수신 트랜잭션에 대한 자세한 내용은 SerCx2 Custom-Receive 트랜잭션을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 8.1 시작해서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 sercx.h
IRQL PASSIVE_LEVEL

참고 항목

EvtCleanupCallback

EvtDestroyCallback

EvtSerCx2CustomReceiveTransactionQueryProgress

EvtSerCx2CustomReceiveTransactionStart

SERCX2CUSTOMRECEIVE

SERCX2CUSTOMRECEIVETRANSACTION

SERCX2_CUSTOM_RECEIVE_TRANSACTION_CONFIG

SERCX2_CUSTOM_RECEIVE_TRANSACTION_CONFIG_INIT

SerCx2CustomReceiveCreate

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT