IOCTL_NFCSE_GET_NEXT_EVENT IOCTL (nfcsedev.h)
IOCTL_NFCSE_GET_NEXT_EVENT控件程式代碼會傳回緩衝區中可用的下一個事件,或者,如果沒有其他緩衝的事件仍擱置中,直到有安全的元素事件可用為止。 然後,必須將事件詳細數據傳回給呼叫端。
主要程序代碼
輸入緩衝區
無
輸入緩衝區長度
無
輸出緩衝區
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 |