IOCTL_NFCSE_GET_NEXT_EVENT IOCTL (nfcsedev.h)

IOCTL_NFCSE_GET_NEXT_EVENT控件程式代碼會傳回緩衝區中可用的下一個事件,或者,如果沒有其他緩衝的事件仍擱置中,直到有安全的元素事件可用為止。 然後,必須將事件詳細數據傳回給呼叫端。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

輸入緩衝區長度

輸出緩衝區

DWORD,指出SECURE_ELEMENT_EVENT_INFO結構的大小加上其承載,緊接著SECURE_ELEMENT_EVENT_INFO結構本身。

狀態區塊

Irp->如果要求成功,IoStatus.Status 會設定為 STATUS_SUCCESS 。 可能的錯誤碼如下:

傳回碼 Description
STATUS_INVALID_DEVICE_STATE 當此 IOCTL 在具有 SEEvents 以外的檔名的裝置句柄上呼叫此 IOCTL 時,或已經有另一個尚未完成的擱置要求時,就會傳回此程式代碼。
STATUS_INVALID_PARAMETER 當輸出緩衝區為非零,或安全元素的 GUID 不符合任何列舉標識符時,就會傳回此程序代碼。

備註

以下是驅動程序必須遵守的需求。

  • 這個 IOCTL 必須在具有 SEEvents 相對檔名的句柄上呼叫;否則,驅動程式會傳回STATUS_INVALID_DEVICE_STATE
  • 此驅動程式必須針對這個擱置的IOCTL支援 CancelIO。
  • 此驅動程式必須維護已接收安全元素事件的已接收佇列,這些事件符合訂用帳戶類型。
  • 在驅動程式中收到此 IOCTL 時,必須符合下列條件:
    • 如果收到的佇列是空的,則驅動程式必須將IOCTL畫筆以供稍後完成。
    • 如果收到的佇列不是空的,則驅動程式必須取消佇列一個事件、將訊息緩衝區複製到 IOCTL 的輸出緩衝區,然後立即完成 IOCTL STATUS_SUCCESS
  • 如果驅動程式使用 STATUS_SUCCESS 完成此 IOCTL,輸出緩衝區的第一個 DWORD [4 個字節] 必須包含SECURE_ELEMENT_EVENT_INFO結構的大小加上其承載。
  • 如果收到的安全元素事件資訊太大而無法複製到此 IOCTL 的緩衝區,驅動程式必須將所需的緩衝區大小複製到輸出緩衝區的前 4 個字節,並將 IOCTL 的資訊欄位設定為 sizeof (DWORD) ,並使用 STATUS_BUFFER_OVERFLOW完成 IOCTL。 然後,事件必須保留在接收的佇列中。

規格需求

需求
標頭 nfcsedev.h