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。 可能的錯誤碼如下:
傳回碼 | 描述 |
---|---|
STATUS_INVALID_DEVICE_STATE | 當此 IOCTL 在具有 SEEvents 以外的檔名的裝置句柄上呼叫此 IOCTL 時,或已經有另一個尚未完成的擱置要求時,就會傳回此程式代碼。 |
STATUS_INVALID_PARAMETER | 當輸出緩衝區為非零,或當安全專案的 GUID 不符合任何列舉標識符時,就會傳回此程序代碼。 |
言論
以下是驅動程序必須遵循的需求。
- 這個 IOCTL 必須在具有 SEEvents 相對檔名的句柄上呼叫;否則,驅動程式會傳回STATUS_INVALID_DEVICE_STATE
- 此驅動程式必須針對這個擱置的IOCTL支援 CancelIO。
- 此驅動程式必須維護已接收的安全專案事件佇列,且符合訂用帳戶類型。
-
在驅動程式中收到此 IOCTL 時,必須符合下列條件:
- 如果收到的佇列是空的,則驅動程式必須畫上 IOCTL 才能稍後完成。
- 如果接收的佇列不是空的,則驅動程式必須取消佇列一個事件,將訊息緩衝區複製到 IOCTL 的輸出緩衝區,然後立即完成具有 STATUS_SUCCESS 的 IOCTL。
- 如果驅動程式使用 STATUS_SUCCESS 完成此 IOCTL,輸出緩衝區的第一個 DWORD [4 個字節] 必須包含SECURE_ELEMENT_EVENT_INFO結構的大小加上其承載。
- 如果收到的安全元素事件資訊太大而無法複製到這個 IOCTL 的緩衝區,驅動程式必須將所需的緩衝區大小複製到輸出緩衝區的前 4 個字節,將 IOCTL 的資訊欄位設定為 sizeof(DWORD),並使用 STATUS_BUFFER_OVERFLOW完成 IOCTL。 然後,事件必須留在接收的佇列中。
要求
要求 | 價值 |
---|---|
標頭 | nfcsedev.h |