8typedef _Return_type_success_(
return >= 0) LONG
NTSTATUS;
25static const NTSTATUS _ebpf_result_mapping[] = {
29 (
NTSTATUS)STATUS_GENERIC_COMMAND_FAILED ,
31 (
NTSTATUS)STATUS_INVALID_DEVICE_REQUEST ,
33 (
NTSTATUS)STATUS_OBJECT_PATH_NOT_FOUND ,
36 (
NTSTATUS)STATUS_OBJECT_NAME_EXISTS ,
37 (
NTSTATUS)STATUS_RESOURCE_NOT_OWNED ,
41 (
NTSTATUS)STATUS_ALREADY_INITIALIZED ,
42 (
NTSTATUS)STATUS_INVALID_IMAGE_FORMAT ,
49 (
NTSTATUS)STATUS_DRIVER_UNABLE_TO_LOAD ,
52 (
NTSTATUS)STATUS_ALREADY_REGISTERED ,
55 (
NTSTATUS)STATUS_INSUFFICIENT_RESOURCES ,
59 (
NTSTATUS)STATUS_INVALID_DEVICE_STATE ,
60 (
NTSTATUS)STATUS_INVALID_STATE_TRANSITION ,
74 return (
NTSTATUS)STATUS_UNSUCCESSFUL;
76 if (result > ARRAYSIZE(_ebpf_result_mapping)) {
77 return (
NTSTATUS)STATUS_UNSUCCESSFUL;
79 return _ebpf_result_mapping[result];
89_ntstatus_to_ebpf_result(
NTSTATUS status)
94 case STATUS_VERIFIER_STOP:
96 case STATUS_NONE_MAPPED:
98 case STATUS_GENERIC_COMMAND_FAILED:
100 case STATUS_INVALID_HANDLE:
102 case STATUS_INVALID_DEVICE_REQUEST:
104 case STATUS_INVALID_PARAMETER:
106 case STATUS_OBJECT_PATH_NOT_FOUND:
108 case STATUS_OBJECTID_EXISTS:
110 case STATUS_NO_SUCH_FILE:
112 case STATUS_OBJECT_NAME_EXISTS:
114 case STATUS_RESOURCE_NOT_OWNED:
116 case STATUS_NO_MEMORY:
118 case STATUS_TOO_MANY_COMMANDS:
120 case RPC_NT_CALL_FAILED:
122 case STATUS_ALREADY_INITIALIZED:
124 case STATUS_INVALID_IMAGE_FORMAT:
126 case STATUS_UNSUCCESSFUL:
128 case STATUS_NOT_SUPPORTED:
130 case STATUS_NOT_FOUND:
132 case STATUS_ACCESS_DENIED:
134 case STATUS_CONTENT_BLOCKED:
136 case STATUS_INTEGER_OVERFLOW:
138 case STATUS_DRIVER_UNABLE_TO_LOAD:
140 case STATUS_BUFFER_OVERFLOW:
142 case STATUS_NO_MORE_MATCHES:
144 case STATUS_ALREADY_REGISTERED:
146 case STATUS_TOO_MANY_NODES:
150 case STATUS_INSUFFICIENT_RESOURCES:
152 case STATUS_CANCELLED:
154 case STATUS_ACCESS_VIOLATION:
158 case STATUS_INVALID_DEVICE_STATE:
160 case STATUS_INVALID_STATE_TRANSITION:
LONG NTSTATUS
Definition ebpf_error.h:8
@ EBPF_KEY_NOT_FOUND
The requested key was not found.
Definition ebpf_result.h:75
@ EBPF_ALREADY_INITIALIZED
The handle was already initialized.
Definition ebpf_result.h:63
@ EBPF_NO_MORE_KEYS
The enumeration found no more keys.
Definition ebpf_result.h:93
@ EBPF_INVALID_OBJECT
Invalid object provided (ebpf_object, ebpf_map, ebpf_program).
Definition ebpf_result.h:33
@ EBPF_INSUFFICIENT_BUFFER
A buffer of insufficient size was supplied.
Definition ebpf_result.h:90
@ EBPF_BLOCKED_BY_POLICY
The operation was blocked for all requesters by policy.
Definition ebpf_result.h:81
@ EBPF_FAILED
Generic failure code for all other errors.
Definition ebpf_result.h:69
@ EBPF_OBJECT_NOT_FOUND
No pinned map or program exists for the path provided.
Definition ebpf_result.h:39
@ EBPF_JIT_COMPILATION_FAILED
JIT compilation failed.
Definition ebpf_result.h:24
@ EBPF_EXTENSION_FAILED_TO_LOAD
The eBPF extension failed to load.
Definition ebpf_result.h:87
@ EBPF_INVALID_POINTER
Invalid pointer.
Definition ebpf_result.h:111
@ EBPF_ACCESS_DENIED
Access was denied for the requested operation.
Definition ebpf_result.h:78
@ EBPF_OPERATION_NOT_SUPPORTED
Operation is not supported.
Definition ebpf_result.h:72
@ EBPF_NO_MEMORY
Low memory.
Definition ebpf_result.h:54
@ EBPF_OUT_OF_SPACE
The container can not hold additional elements.
Definition ebpf_result.h:105
@ EBPF_ALREADY_PINNED
The program or map already pinned to a different path.
Definition ebpf_result.h:48
@ EBPF_FILE_NOT_FOUND
Invalid ELF file path.
Definition ebpf_result.h:45
@ EBPF_SUCCESS
The operation was successful.
Definition ebpf_result.h:18
@ EBPF_PROGRAM_TOO_LARGE
The program is too large.
Definition ebpf_result.h:57
@ EBPF_PENDING
Requested action is still pending.
Definition ebpf_result.h:102
@ EBPF_ARITHMETIC_OVERFLOW
Arithmetic overflow occurred.
Definition ebpf_result.h:84
@ EBPF_OBJECT_ALREADY_EXISTS
A program or map is already pinned with the same path.
Definition ebpf_result.h:42
@ EBPF_INVALID_ARGUMENT
An invalid argument was supplied.
Definition ebpf_result.h:36
@ EBPF_RPC_EXCEPTION
An RPC exception occurred.
Definition ebpf_result.h:60
@ EBPF_PROGRAM_LOAD_FAILED
Program load failed.
Definition ebpf_result.h:27
@ EBPF_NO_MORE_TAIL_CALLS
Caller has reached tail call limit.
Definition ebpf_result.h:99
@ EBPF_TIMEOUT
Operation timed out.
Definition ebpf_result.h:114
@ EBPF_STALE_ID
ID is valid, but the object has been deleted.
Definition ebpf_result.h:117
@ EBPF_INVALID_FD
Invalid FD provided.
Definition ebpf_result.h:30
@ EBPF_CANCELED
Operation was canceled.
Definition ebpf_result.h:108
@ EBPF_VERIFICATION_FAILED
Program verification failed.
Definition ebpf_result.h:21
@ EBPF_ELF_PARSING_FAILED
A failure occurred in parsing the ELF file.
Definition ebpf_result.h:66
@ EBPF_INVALID_STATE
The system is in an invalid state for this operation.
Definition ebpf_result.h:120
@ EBPF_NOT_PINNED
The program or map is not pinned.
Definition ebpf_result.h:51
@ EBPF_KEY_ALREADY_EXISTS
The requested key is already present.
Definition ebpf_result.h:96
enum ebpf_result ebpf_result_t