다음을 통해 공유


AVC_FUNCTION_SEND_RESPONSE

AVC_FUNCTION_SEND_RESPONSE 함수 코드는 AV/C 단위 및 하위 단위 요청에 응답하는 데 사용됩니다.

I/O 상태 블록

성공하면 AV/C 프로토콜 드라이버가 Irp-IoStatus.Status>를 다음 중 하나로 설정할 수 있습니다.

  • STATUS_SUCCESS 원래 요청 이후 하나 이상의 버스 재설정으로 인해 응답이 삭제되는 경우 또는

  • 응답이61883.sys성공적으로 전달되었는지 STATUS_PENDING (요청 초기자에 대한 성공적인 배달을 의미)

가능한 다른 반환 값은 다음과 같습니다.

반환 값 Description
STATUS_INSUFFICIENT_RESOURCES 내부 버퍼 할당에 실패했습니다.

의견

이 함수는 아래와 같이 AVC_COMMAND_IRB 구조를 사용합니다.

typedef struct _AVC_COMMAND_IRB {
  AVC_IRB  Common;
  UCHAR  SubunitAddrFlag : 1;
  UCHAR  AlternateOpcodesFlag : 1;
  UCHAR  TimeoutFlag : 1;
  UCHAR  RetryFlag : 1;
  union {
    UCHAR  CommandType;
    UCHAR  ResponseCode;
  };
  PUCHAR  SubunitAddr;
  PUCHAR  AlternateOpcodes;
  LARGE_INTEGER  Timeout;
  UCHAR  Retries;
  UCHAR  Opcode;
  ULONG  OperandLength;
  UCHAR  Operands[MAX_AVC_OPERAND_BYTES];
  NODE_ADDRESS  NodeAddress;
  ULONG  Generation;
} AVC_COMMAND_IRB, *PAVC_COMMAND_IRB;

요구 사항

헤더: Avc.h(Avc.h 포함)

AVC_COMMAND_IRB 입력

일반
이 멤버의 함수 하위 멤버는 AVC_FUNCTION 열거형에서 AVC_FUNCTION_SEND_RESPONSE 설정해야 합니다.

SubunitAddrFlag
AVC_FUNCTION_GET_REQUEST 완료에서 가져온 값으로 설정합니다.

AlternateOpcodesFlag
무시됩니다.

TimeoutFlag
무시됩니다.

RetryFlag
무시됩니다.

CommandType
응답에 대해 무시됩니다.

ResponseCode
이 멤버는 AvcResponseCode 열거형의 값 중 하나로 설정해야 합니다.

SubunitAddr
AVC_FUNCTION_GET_REQUEST 완료에서 가져온 값으로 설정합니다.

AlternateOpcodes
무시됩니다.

Timeout
무시됩니다.

재시도
무시됩니다.

Opcode
응답에 적합한 AV/C 단위 opcode를 포함해야 합니다(원래 요청에 제공된 opcode와 다를 수 있음).

OperandLength
응답의 피연산자 목록에서 바이트 수로 설정합니다.

피연산자
응답의 피연산자 목록입니다.

NodeAddress
원래 요청 원본의 노드 주소입니다.

생성
원래 요청에서 가져온 생성 ID입니다.

GUID_AVC_CLASS 디바이스 인터페이스의 컨텍스트에서 AVC_FUNCTION_SEND_RESPONSE 함수 코드는 AV/C 단위 요청에만 응답하는 데 사용됩니다.

avc.sys가상 인스턴스(즉, GUID_VIRTUAL_AVC_CLASS 디바이스 인터페이스를 등록하는 인스턴스)의 경우 AVC_FUNCTION_SEND_RESPONSE 함수 코드는 AV/C 단위 하위 단위 요청에 응답하는 데 사용됩니다.

첫 번째 응답이 AvcResponseType 열거형에서 AVC_RESPONSE_INTERIM 응답 코드를 사용하는 경우 후속 처리가 필요합니다. AVC_FUNCTION_GET_REQUEST 원래 함수를 완료하여 얻은 NodeAddressGeneration 멤버는 후속 응답에 사용해야 합니다. 어떤 경우든 다음 AVC_FUNCTION_GET_REQUEST 함수는 초기 AVC_FUNCTION_SEND_RESPONSE 완료 루틴에서 반환하기 전에 제출하여 다음 단위 요청을 받을 수 있도록 해야 합니다.

이 구조체의 권장 사용은 원래 요청의 내용을 사용하고 응답에 맞게 Opcode, OperandLengthOperands 멤버를 업데이트하는 것입니다.

이 함수 코드는 IRQL >= DISPATCH_LEVEL 호출할 수 있습니다.

참고 항목

AVC_FUNCTION_GET_REQUEST

AvcResponseCode

AVC_FUNCTION