共用方式為


AVC_FUNCTION_SEND_RESPONSE

AVC_FUNCTION_SEND_RESPONSE函式程式碼可用來回應 AV/C 單位和子單位要求。

I/O 狀態欄塊

如果成功,AV/C 通訊協定驅動程式可能會將 Irp-IoStatus.Status > 設定為下列其中一項:

  • STATUS_SUCCESS回應是否因為原始要求而因為一或多個匯流排重設而捨棄,或

  • STATUS_PENDING如果成功將回應傳遞至 61883.sys (表示成功傳遞至要求啟動器)

可能的其他傳回值包括:

傳回值 描述
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輸入

通用
這個成員的 Function 子成員必須設定為 從AVC_FUNCTION列舉AVC_FUNCTION_SEND_RESPONSE

SubunitAddrFlag
設定為從 AVC_FUNCTION_GET_REQUEST 完成取得的值。

AlternateOpcodesFlag
忽略。

TimeoutFlag
忽略。

RetryFlag
忽略。

CommandType
針對回應忽略。

ResponseCode
這個成員必須設定為 AvcResponseCode 列舉中的其中一個值。

SubunitAddr
設定為從 AVC_FUNCTION_GET_REQUEST 完成取得的值。

AlternateOpcodes
忽略。

逾時
忽略。

重試
忽略。

OpCode
這必須包含適用于回應的 AV/C 單位 opcode, (可能與原始要求) 中提供的 opcode 不同。

OperandLength
設定為回應運算元清單中的位元組數目。

運算元
回應的運算元清單。

NodeAddress
原始要求來源的節點位址。

世代
從原始要求取得的產生識別碼。

在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 完成常式傳回,以便收到下一個單元要求。

此結構的建議用法是使用原始要求的內容,並視回應更新 OpcodeOperandLengthOperands 成員。

此函式程式碼可以在 IRQL > = DISPATCH_LEVEL呼叫。

另請參閱

AVC_FUNCTION_GET_REQUEST

AvcResponseCode

AVC_FUNCTION