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 원래 함수를 완료하여 얻은 NodeAddress 및 Generation 멤버는 후속 응답에 사용해야 합니다. 어떤 경우든 다음 AVC_FUNCTION_GET_REQUEST 함수는 초기 AVC_FUNCTION_SEND_RESPONSE 완료 루틴에서 반환하기 전에 제출하여 다음 단위 요청을 받을 수 있도록 해야 합니다.
이 구조체의 권장 사용은 원래 요청의 내용을 사용하고 응답에 맞게 Opcode, OperandLength 및 Operands 멤버를 업데이트하는 것입니다.
이 함수 코드는 IRQL >= DISPATCH_LEVEL 호출할 수 있습니다.