다음을 통해 공유


SerCx2PioTransmitCreate 함수(sercx.h)

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

통사론

NTSTATUS SerCx2PioTransmitCreate(
  [in]           WDFDEVICE                   Device,
  [in]           PSERCX2_PIO_TRANSMIT_CONFIG PioTransmitConfig,
  [in, optional] PWDF_OBJECT_ATTRIBUTES      Attributes,
  [out]          SERCX2PIOTRANSMIT           *PioTransmit
);

매개 변수

[in] Device

직렬 컨트롤러를 나타내는 프레임워크 디바이스 개체에 대한 WDFDEVICE 핸들입니다. 직렬 컨트롤러 드라이버는 EvtDriverDeviceAdd 콜백 함수에서 이 개체를 만들었습니다. 자세한 내용은 SerCx2InitializeDevice참조하세요.

[in] PioTransmitConfig

SERCX2_PIO_TRANSMIT_CONFIG 구조체에 대한 포인터입니다. 이 메서드를 호출하기 전에 호출자는 SERCX2_PIO_TRANSMIT_CONFIG_INIT 함수를 호출하여 구조를 초기화해야 합니다. 이 구조에는 직렬 컨트롤러 드라이버에서 구현하는 이벤트 콜백 루틴 집합에 대한 포인터가 포함됩니다. SerCx2는 이러한 함수를 호출하여 PIO 전송 트랜잭션을 수행합니다.

[in, optional] Attributes

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

[out] PioTransmit

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

반환 값

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

반환 코드 묘사
STATUS_INVALID_DEVICE_REQUEST
PIO 전송 개체는 이전 SerCx2PioTransmitCreate 호출에서 이미 존재합니다.
STATUS_INFO_LENGTH_MISMATCH
구성크기 값이(SERCX2_PIO_TRANSMIT_CONFIG)의 크기와 같지 않습니다.
STATUS_INVALID_PARAMETER
구현된 콜백 함수의 지정된 조합이 잘못되었습니다. 드라이버는 EvtSerCx2PioTransmitWriteBuffer, EvtSerCx2PioTransmitEnableReadyNotificationEvtSerCx2PioTransmitCancelReadyNotification 함수를 구현해야 합니다. 드라이버는 EvtSerCx2PioTransmitDrainFifo, EvtSerCx2PioTransmitCancelDrainFifoEvtSerCx2PioTransmitPurgeFifo 함수를 모두 구현해야 합니다.
STATUS_INSUFFICIENT_RESOURCES
요청된 작업을 수행할 수 있는 리소스가 부족합니다.

발언

직렬 컨트롤러 드라이버는 이 메서드를 호출하여 PIO 전송 개체를 만듭니다. SerCx2는 이 개체를 사용하여 PIO(프로그래밍된 I/O)를 사용하여 전송할 직렬 컨트롤러에 데이터를 쓰는 트랜잭션인 PIO 전송 트랜잭션을 수행합니다.

일반적으로 직렬 컨트롤러 드라이버는 EvtDriverDeviceAdd 함수에서 SerCx2PioTransmitCreate 호출합니다. 드라이버는 SerCx2InitializeDevice 메서드를 성공적으로 호출한 후에만 이 메서드를 호출해야 합니다.

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

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

PIO 전송 개체를 만드는 방법에 대한 자세한 내용은 SERCX2PIOTRANSMIT참조하세요. PIO 전송 작업에 대한 자세한 내용은 SerCx2 PIO-Transmit 트랜잭션참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Windows 8.1 시작해서 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 sercx.h
IRQL <= DISPATCH_LEVEL

참고 항목

EvtCleanupCallback

EvtDestroyCallback

EvtDriverDeviceAdd

SERCX2PIOTRANSMIT

SERCX2_PIO_TRANSMIT_CONFIG

SERCX2_PIO_TRANSMIT_CONFIG_INIT

SerCx2InitializeDevice

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT